This commit is contained in:
James B. Pollack 2015-12-28 13:06:43 -08:00
parent 3f73f83cf1
commit 5e6e2bd11c

View file

@ -1,4 +1,4 @@
var TEST_MODEL_URL = ''; var TEST_MODEL_URL = 'http://hifi-content.s3.amazonaws.com/james/avatars/Jack_Skellington/Jack_Skellington.fbx';
var doppelgangers = []; var doppelgangers = [];
@ -7,7 +7,7 @@ function Doppelganger(avatar) {
name: 'Hifi-Doppelganger', name: 'Hifi-Doppelganger',
type: 'Model', type: 'Model',
modelURL: TEST_MODEL_URL, modelURL: TEST_MODEL_URL,
dimensions: getAvatarDimensions(avatar), // dimensions: getAvatarDimensions(avatar),
position: putDoppelgangerAcrossFromAvatar(this, avatar), position: putDoppelgangerAcrossFromAvatar(this, avatar),
rotation: rotateDoppelgangerTowardAvatar(this, avatar), rotation: rotateDoppelgangerTowardAvatar(this, avatar),
}; };
@ -17,8 +17,17 @@ function Doppelganger(avatar) {
return this; return this;
} }
function getJointData() { function getJointData(avatar) {
return jointData; var allJointData;
var jointNames = MyAvatar.jointNames;
jointNames.forEach(function(joint) {
print('getting info for joint:' + joint);
var jointData = MyAvatar.getJointPosition(joint);
print('joint data:'+JSON.stringify(jointData));
});
return allJointData;
} }
function setJointData(doppelganger, jointData) { function setJointData(doppelganger, jointData) {
@ -34,11 +43,13 @@ function createDoppelganger(avatar) {
} }
function createDoppelgangerEntity(doppelganger) { function createDoppelgangerEntity(doppelganger) {
return Entities.addEntitiy(doppelganger.initialProperties); return Entities.addEntity(doppelganger.initialProperties);
} }
function putDoppelgangerAcrossFromAvatar(doppelganger, avatar) { function putDoppelgangerAcrossFromAvatar(doppelganger, avatar) {
return position; var avatarRot = Quat.fromPitchYawRollDegrees(0, avatar.bodyYaw, 0.0);
var basePosition = Vec3.sum(avatar.position, Vec3.multiply(1.5, Quat.getFront(avatarRot)));
return basePosition;
} }
function getAvatarDimensions(avatar) { function getAvatarDimensions(avatar) {
@ -46,7 +57,9 @@ function getAvatarDimensions(avatar) {
} }
function rotateDoppelgangerTowardAvatar(doppelganger, avatar) { function rotateDoppelgangerTowardAvatar(doppelganger, avatar) {
return rotation; var avatarRot = Quat.fromPitchYawRollDegrees(0, avatar.bodyYaw, 0.0);
avatarRot = Vec3.multiply(-1,avatarRot);
return avatarRot;
} }
function connectDoppelgangerUpdates() { function connectDoppelgangerUpdates() {
@ -59,7 +72,7 @@ function disconnectDoppelgangerUpdates() {
function updateDoppelganger() { function updateDoppelganger() {
doppelgangers.forEach(function(doppelganger) { doppelgangers.forEach(function(doppelganger) {
var joints = getJointData(doppelganger.avatar.id); var joints = getJointData(MyAvatar);
var mirroredJoints = mirrorJointData(joints); var mirroredJoints = mirrorJointData(joints);
setJointData(doppelganger, mirroredJoints); setJointData(doppelganger, mirroredJoints);
}); });
@ -69,9 +82,12 @@ function updateDoppelganger() {
function makeDoppelgangerForMyAvatar() { function makeDoppelgangerForMyAvatar() {
var doppelganger = createDoppelganger(MyAvatar); var doppelganger = createDoppelganger(MyAvatar);
doppelgangers.push(doppelganger); doppelgangers.push(doppelganger);
connectDoppelgangerUpdates(); // connectDoppelgangerUpdates();
} }
makeDoppelgangerForMyAvatar();
function cleanup() { function cleanup() {
disconnectDoppelgangerUpdates(); disconnectDoppelgangerUpdates();
@ -81,4 +97,9 @@ function cleanup() {
} }
Script.scriptEnding.connect(cleanup); Script.scriptEnding.connect(cleanup);
// APPEND_ENTITY_PROPERTY(PROP_JOINT_ROTATIONS_SET, getJointRotationsSet());
// APPEND_ENTITY_PROPERTY(PROP_JOINT_ROTATIONS, getJointRotations());
// APPEND_ENTITY_PROPERTY(PROP_JOINT_TRANSLATIONS_SET, getJointTranslationsSet());
// APPEND_ENTITY_PROPERTY(PROP_JOINT_TRANSLATIONS, getJointTranslations());