removed glm::dvec3 and replaced with glm::vec3 in most of avatar code, except for velocity

This commit is contained in:
Jeffrey Ventrella 2013-04-09 15:23:59 -07:00
parent 09af8d153f
commit 3dae70e665
4 changed files with 91 additions and 92 deletions

View file

@ -30,33 +30,33 @@ public:
void update(); void update();
void setMode ( CameraMode m ) { mode = m; } void setMode ( CameraMode m ) { mode = m; }
void setYaw ( double y ) { yaw = y; } void setYaw ( float y ) { yaw = y; }
void setPitch ( double p ) { pitch = p; } void setPitch ( float p ) { pitch = p; }
void setRoll ( double r ) { roll = r; } void setRoll ( float r ) { roll = r; }
void setUp ( double u ) { up = u; } void setUp ( float u ) { up = u; }
void setDistance ( double d ) { distance = d; } void setDistance ( float d ) { distance = d; }
void setTargetPosition ( glm::dvec3 t ) { targetPosition = t; }; void setTargetPosition ( glm::vec3 t ) { targetPosition = t; };
void setPosition ( glm::dvec3 p ) { position = p; }; void setPosition ( glm::vec3 p ) { position = p; };
void setOrientation ( Orientation o ) { orientation.set(o); } void setOrientation ( Orientation o ) { orientation.set(o); }
double getYaw () { return yaw; } float getYaw () { return yaw; }
double getPitch () { return pitch; } float getPitch () { return pitch; }
double getRoll () { return roll; } float getRoll () { return roll; }
glm::dvec3 getPosition () { return position; } glm::vec3 getPosition () { return position; }
Orientation getOrientation () { return orientation; } Orientation getOrientation () { return orientation; }
CameraMode getMode () { return mode; } CameraMode getMode () { return mode; }
private: private:
CameraMode mode; CameraMode mode;
glm::dvec3 position; glm::vec3 position;
glm::dvec3 targetPosition; glm::vec3 targetPosition;
double fieldOfView; float fieldOfView;
double yaw; float yaw;
double pitch; float pitch;
double roll; float roll;
double up; float up;
double distance; float distance;
Orientation orientation; Orientation orientation;
}; };

View file

@ -239,9 +239,9 @@ void Head::UpdatePos(float frametime, SerialInterface * serialInterface, int hea
//--------------------------------------------------- //---------------------------------------------------
void Head::setAvatarPosition( double x, double y, double z ) void Head::setAvatarPosition( float x, float y, float z )
{ {
avatar.position = glm::dvec3( x, y, z ); avatar.position = glm::vec3( x, y, z );
} }
@ -297,7 +297,7 @@ void Head::simulate(float deltaTime)
const float THRUST_LATERAL_MAG = 10.0; const float THRUST_LATERAL_MAG = 10.0;
const float THRUST_VERTICAL_MAG = 10.0; const float THRUST_VERTICAL_MAG = 10.0;
avatar.thrust = glm::dvec3( 0.0, 0.0, 0.0 ); avatar.thrust = glm::vec3( 0.0, 0.0, 0.0 );
if (driveKeys[FWD]) if (driveKeys[FWD])
{ {
@ -362,9 +362,9 @@ void Head::simulate(float deltaTime)
//avatar.yawDelta *= 0.99; //avatar.yawDelta *= 0.99;
avatar.velocity += avatar.thrust * (double)deltaTime; avatar.velocity += glm::dvec3( avatar.thrust * deltaTime );
position += avatar.velocity * (double)deltaTime; position += (glm::vec3)avatar.velocity * deltaTime;
//avatar.velocity *= 0.9; //avatar.velocity *= 0.9;
@ -673,9 +673,9 @@ void Head::renderHead( int faceToFace, int isMine )
//--------------------------------------------------------- //---------------------------------------------------------
void Head::setHandMovement( glm::dvec3 movement ) void Head::setHandMovement( glm::vec3 movement )
{ {
handOffset = glm::dvec3( movement.x, -movement.y, movement.z ); handOffset = glm::vec3( movement.x, -movement.y, movement.z );
} }
@ -683,9 +683,9 @@ void Head::setHandMovement( glm::dvec3 movement )
//----------------------------------------- //-----------------------------------------
void Head::initializeAvatar() void Head::initializeAvatar()
{ {
avatar.position = glm::dvec3( 0.0, 0.0, 0.0 ); avatar.position = glm::vec3( 0.0, 0.0, 0.0 );
avatar.velocity = glm::dvec3( 0.0, 0.0, 0.0 ); avatar.velocity = glm::vec3( 0.0, 0.0, 0.0 );
avatar.thrust = glm::dvec3( 0.0, 0.0, 0.0 ); avatar.thrust = glm::vec3( 0.0, 0.0, 0.0 );
avatar.orientation.setToIdentity(); avatar.orientation.setToIdentity();
avatar.yaw = 90.0; avatar.yaw = 90.0;
@ -696,9 +696,8 @@ void Head::initializeAvatar()
for (int b=0; b<NUM_AVATAR_BONES; b++) for (int b=0; b<NUM_AVATAR_BONES; b++)
{ {
avatar.bone[b].worldPosition = glm::dvec3( 0.0, 0.0, 0.0 ); avatar.bone[b].worldPosition = glm::vec3( 0.0, 0.0, 0.0 );
//avatar.bone[b].offsetPosition = glm::dvec3( 0.0, 0.0, 0.0 ); avatar.bone[b].velocity = glm::vec3( 0.0, 0.0, 0.0 );
avatar.bone[b].velocity = glm::dvec3( 0.0, 0.0, 0.0 );
avatar.bone[b].worldOrientation.setToIdentity(); avatar.bone[b].worldOrientation.setToIdentity();
} }
@ -753,29 +752,29 @@ void Head::initializeAvatar()
//---------------------------------------------------------- //----------------------------------------------------------
// specify the default pose position // specify the default pose position
//---------------------------------------------------------- //----------------------------------------------------------
avatar.bone[ AVATAR_BONE_PELVIS_SPINE ].defaultPosePosition = glm::dvec3( 0.0, 0.1, 0.0 ); avatar.bone[ AVATAR_BONE_PELVIS_SPINE ].defaultPosePosition = glm::vec3( 0.0, 0.1, 0.0 );
avatar.bone[ AVATAR_BONE_MID_SPINE ].defaultPosePosition = glm::dvec3( 0.0, 0.1, 0.0 ); avatar.bone[ AVATAR_BONE_MID_SPINE ].defaultPosePosition = glm::vec3( 0.0, 0.1, 0.0 );
avatar.bone[ AVATAR_BONE_CHEST_SPINE ].defaultPosePosition = glm::dvec3( 0.0, 0.1, 0.0 ); avatar.bone[ AVATAR_BONE_CHEST_SPINE ].defaultPosePosition = glm::vec3( 0.0, 0.1, 0.0 );
avatar.bone[ AVATAR_BONE_NECK ].defaultPosePosition = glm::dvec3( 0.0, 0.06, 0.0 ); avatar.bone[ AVATAR_BONE_NECK ].defaultPosePosition = glm::vec3( 0.0, 0.06, 0.0 );
avatar.bone[ AVATAR_BONE_HEAD ].defaultPosePosition = glm::dvec3( 0.0, 0.06, 0.0 ); avatar.bone[ AVATAR_BONE_HEAD ].defaultPosePosition = glm::vec3( 0.0, 0.06, 0.0 );
avatar.bone[ AVATAR_BONE_LEFT_CHEST ].defaultPosePosition = glm::dvec3( -0.06, 0.06, 0.0 ); avatar.bone[ AVATAR_BONE_LEFT_CHEST ].defaultPosePosition = glm::vec3( -0.06, 0.06, 0.0 );
avatar.bone[ AVATAR_BONE_LEFT_SHOULDER ].defaultPosePosition = glm::dvec3( -0.03, 0.0, 0.0 ); avatar.bone[ AVATAR_BONE_LEFT_SHOULDER ].defaultPosePosition = glm::vec3( -0.03, 0.0, 0.0 );
avatar.bone[ AVATAR_BONE_LEFT_UPPER_ARM ].defaultPosePosition = glm::dvec3( 0.0, -0.12, 0.0 ); avatar.bone[ AVATAR_BONE_LEFT_UPPER_ARM ].defaultPosePosition = glm::vec3( 0.0, -0.12, 0.0 );
avatar.bone[ AVATAR_BONE_LEFT_FOREARM ].defaultPosePosition = glm::dvec3( 0.0, -0.1, 0.0 ); avatar.bone[ AVATAR_BONE_LEFT_FOREARM ].defaultPosePosition = glm::vec3( 0.0, -0.1, 0.0 );
avatar.bone[ AVATAR_BONE_LEFT_HAND ].defaultPosePosition = glm::dvec3( 0.0, -0.05, 0.0 ); avatar.bone[ AVATAR_BONE_LEFT_HAND ].defaultPosePosition = glm::vec3( 0.0, -0.05, 0.0 );
avatar.bone[ AVATAR_BONE_RIGHT_CHEST ].defaultPosePosition = glm::dvec3( 0.06, 0.06, 0.0 ); avatar.bone[ AVATAR_BONE_RIGHT_CHEST ].defaultPosePosition = glm::vec3( 0.06, 0.06, 0.0 );
avatar.bone[ AVATAR_BONE_RIGHT_SHOULDER ].defaultPosePosition = glm::dvec3( 0.03, 0.0, 0.0 ); avatar.bone[ AVATAR_BONE_RIGHT_SHOULDER ].defaultPosePosition = glm::vec3( 0.03, 0.0, 0.0 );
avatar.bone[ AVATAR_BONE_RIGHT_UPPER_ARM ].defaultPosePosition = glm::dvec3( 0.0, -0.12, 0.0 ); avatar.bone[ AVATAR_BONE_RIGHT_UPPER_ARM ].defaultPosePosition = glm::vec3( 0.0, -0.12, 0.0 );
avatar.bone[ AVATAR_BONE_RIGHT_FOREARM ].defaultPosePosition = glm::dvec3( 0.0, -0.1, 0.0 ); avatar.bone[ AVATAR_BONE_RIGHT_FOREARM ].defaultPosePosition = glm::vec3( 0.0, -0.1, 0.0 );
avatar.bone[ AVATAR_BONE_RIGHT_HAND ].defaultPosePosition = glm::dvec3( 0.0, -0.05, 0.0 ); avatar.bone[ AVATAR_BONE_RIGHT_HAND ].defaultPosePosition = glm::vec3( 0.0, -0.05, 0.0 );
avatar.bone[ AVATAR_BONE_LEFT_PELVIS ].defaultPosePosition = glm::dvec3( -0.05, 0.0, 0.0 ); avatar.bone[ AVATAR_BONE_LEFT_PELVIS ].defaultPosePosition = glm::vec3( -0.05, 0.0, 0.0 );
avatar.bone[ AVATAR_BONE_LEFT_THIGH ].defaultPosePosition = glm::dvec3( 0.0, -0.15, 0.0 ); avatar.bone[ AVATAR_BONE_LEFT_THIGH ].defaultPosePosition = glm::vec3( 0.0, -0.15, 0.0 );
avatar.bone[ AVATAR_BONE_LEFT_SHIN ].defaultPosePosition = glm::dvec3( 0.0, -0.15, 0.0 ); avatar.bone[ AVATAR_BONE_LEFT_SHIN ].defaultPosePosition = glm::vec3( 0.0, -0.15, 0.0 );
avatar.bone[ AVATAR_BONE_LEFT_FOOT ].defaultPosePosition = glm::dvec3( 0.0, 0.0, 0.04 ); avatar.bone[ AVATAR_BONE_LEFT_FOOT ].defaultPosePosition = glm::vec3( 0.0, 0.0, 0.04 );
avatar.bone[ AVATAR_BONE_RIGHT_PELVIS ].defaultPosePosition = glm::dvec3( 0.05, 0.0, 0.0 ); avatar.bone[ AVATAR_BONE_RIGHT_PELVIS ].defaultPosePosition = glm::vec3( 0.05, 0.0, 0.0 );
avatar.bone[ AVATAR_BONE_RIGHT_THIGH ].defaultPosePosition = glm::dvec3( 0.0, -0.15, 0.0 ); avatar.bone[ AVATAR_BONE_RIGHT_THIGH ].defaultPosePosition = glm::vec3( 0.0, -0.15, 0.0 );
avatar.bone[ AVATAR_BONE_RIGHT_SHIN ].defaultPosePosition = glm::dvec3( 0.0, -0.15, 0.0 ); avatar.bone[ AVATAR_BONE_RIGHT_SHIN ].defaultPosePosition = glm::vec3( 0.0, -0.15, 0.0 );
avatar.bone[ AVATAR_BONE_RIGHT_FOOT ].defaultPosePosition = glm::dvec3( 0.0, 0.0, 0.04 ); avatar.bone[ AVATAR_BONE_RIGHT_FOOT ].defaultPosePosition = glm::vec3( 0.0, 0.0, 0.04 );
//---------------------------------------------------------------------------- //----------------------------------------------------------------------------
// calculate bone length // calculate bone length
@ -838,19 +837,19 @@ void Head::updateAvatarSkeleton()
avatar.bone[b].worldPosition = avatar.bone[ avatar.bone[b].parent ].worldPosition; avatar.bone[b].worldPosition = avatar.bone[ avatar.bone[b].parent ].worldPosition;
} }
double xx = glm::dot( avatar.bone[b].defaultPosePosition.x, avatar.bone[b].worldOrientation.getRight ().x ) float xx = glm::dot( avatar.bone[b].defaultPosePosition.x, (float)avatar.bone[b].worldOrientation.getRight ().x )
+ glm::dot( avatar.bone[b].defaultPosePosition.y, avatar.bone[b].worldOrientation.getRight ().y ) + glm::dot( avatar.bone[b].defaultPosePosition.y, (float)avatar.bone[b].worldOrientation.getRight ().y )
+ glm::dot( avatar.bone[b].defaultPosePosition.z, avatar.bone[b].worldOrientation.getRight ().z ); + glm::dot( avatar.bone[b].defaultPosePosition.z, (float)avatar.bone[b].worldOrientation.getRight ().z );
double yy = glm::dot( avatar.bone[b].defaultPosePosition.x, avatar.bone[b].worldOrientation.getUp ().x ) float yy = glm::dot( avatar.bone[b].defaultPosePosition.x, (float)avatar.bone[b].worldOrientation.getUp ().x )
+ glm::dot( avatar.bone[b].defaultPosePosition.y, avatar.bone[b].worldOrientation.getUp ().y ) + glm::dot( avatar.bone[b].defaultPosePosition.y, (float)avatar.bone[b].worldOrientation.getUp ().y )
+ glm::dot( avatar.bone[b].defaultPosePosition.z, avatar.bone[b].worldOrientation.getUp ().z ); + glm::dot( avatar.bone[b].defaultPosePosition.z, (float)avatar.bone[b].worldOrientation.getUp ().z );
double zz = glm::dot( avatar.bone[b].defaultPosePosition.x, avatar.bone[b].worldOrientation.getFront ().x ) float zz = glm::dot( avatar.bone[b].defaultPosePosition.x, (float)avatar.bone[b].worldOrientation.getFront ().x )
+ glm::dot( avatar.bone[b].defaultPosePosition.y, avatar.bone[b].worldOrientation.getFront ().y ) + glm::dot( avatar.bone[b].defaultPosePosition.y, (float)avatar.bone[b].worldOrientation.getFront ().y )
+ glm::dot( avatar.bone[b].defaultPosePosition.z, avatar.bone[b].worldOrientation.getFront ().z ); + glm::dot( avatar.bone[b].defaultPosePosition.z, (float)avatar.bone[b].worldOrientation.getFront ().z );
glm::dvec3 rotatedBoneVector( xx, yy, zz ); glm::vec3 rotatedBoneVector( xx, yy, zz );
//rotatedBonePosition.x = avatar.bone[b].defaultPosePosition.x;// * avatar.bone[b].worldOrientation.getFront().x; //rotatedBonePosition.x = avatar.bone[b].defaultPosePosition.x;// * avatar.bone[b].worldOrientation.getFront().x;
//rotatedBonePosition.y = avatar.bone[b].defaultPosePosition.y;// * avatar.bone[b].worldOrientation.getFront().y; //rotatedBonePosition.y = avatar.bone[b].defaultPosePosition.y;// * avatar.bone[b].worldOrientation.getFront().y;
@ -905,7 +904,7 @@ void Head::updateAvatarSkeleton()
//------------------------------- //-------------------------------
double Head::getAvatarYaw() float Head::getAvatarYaw()
{ {
return avatar.yaw; return avatar.yaw;
} }
@ -949,8 +948,8 @@ void Head::updateHandMovement()
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------
glm::vec3 newElbowPosition = avatar.bone[ AVATAR_BONE_RIGHT_SHOULDER ].worldPosition; glm::vec3 newElbowPosition = avatar.bone[ AVATAR_BONE_RIGHT_SHOULDER ].worldPosition;
newElbowPosition += armVector * (float)ONE_HALF; newElbowPosition += armVector * (float)ONE_HALF;
glm::dvec3 perpendicular = glm::dvec3( -armVector.y, armVector.x, armVector.z ); glm::vec3 perpendicular = glm::vec3( -armVector.y, armVector.x, armVector.z );
newElbowPosition += perpendicular * ( 1.0 - ( avatar.maxArmLength / distance ) ) * ONE_HALF; newElbowPosition += perpendicular * (float)( ( 1.0 - ( avatar.maxArmLength / distance ) ) * ONE_HALF );
avatar.bone[ AVATAR_BONE_RIGHT_UPPER_ARM ].worldPosition = newElbowPosition; avatar.bone[ AVATAR_BONE_RIGHT_UPPER_ARM ].worldPosition = newElbowPosition;
//----------------------------------------------------------------------------- //-----------------------------------------------------------------------------

View file

@ -105,25 +105,25 @@ struct AvatarBone
{ {
AvatarBones parent; AvatarBones parent;
glm::vec3 worldPosition; glm::vec3 worldPosition;
glm::dvec3 defaultPosePosition; glm::vec3 defaultPosePosition;
glm::dvec3 velocity; glm::dvec3 velocity;
double yaw; float yaw;
double pitch; float pitch;
double roll; float roll;
Orientation worldOrientation; Orientation worldOrientation;
double length; float length;
}; };
struct Avatar struct Avatar
{ {
glm::dvec3 position; glm::vec3 position;
glm::dvec3 velocity; glm::dvec3 velocity;
glm::dvec3 thrust; glm::vec3 thrust;
double yaw; float yaw;
double pitch; float pitch;
double roll; float roll;
double yawDelta; float yawDelta;
double maxArmLength; float maxArmLength;
Orientation orientation; Orientation orientation;
AvatarBone bone[ NUM_AVATAR_BONES ]; AvatarBone bone[ NUM_AVATAR_BONES ];
}; };
@ -157,17 +157,17 @@ class Head : public AgentData {
float getYaw() {return Yaw;} float getYaw() {return Yaw;}
float getLastMeasuredYaw() {return YawRate;} float getLastMeasuredYaw() {return YawRate;}
double getAvatarYaw(); float getAvatarYaw();
void render(int faceToFace, int isMine); void render(int faceToFace, int isMine);
void setAvatarPosition( double, double, double ); void setAvatarPosition( float, float, float );
void renderBody(); void renderBody();
void renderHead( int faceToFace, int isMine ); void renderHead( int faceToFace, int isMine );
void simulate(float); void simulate(float);
void setHandMovement( glm::dvec3 movement ); void setHandMovement( glm::vec3 movement );
void updateHandMovement(); void updateHandMovement();
// Send and receive network data // Send and receive network data
@ -233,7 +233,7 @@ class Head : public AgentData {
glm::vec3 velocity; glm::vec3 velocity;
glm::vec3 thrust; glm::vec3 thrust;
glm::dvec3 handOffset; glm::vec3 handOffset;
int driveKeys[MAX_DRIVE_KEYS]; int driveKeys[MAX_DRIVE_KEYS];

View file

@ -385,7 +385,7 @@ void init(void)
} }
myHead.setPos(start_location ); myHead.setPos(start_location );
myCamera.setPosition( glm::dvec3( start_location ) ); myCamera.setPosition( start_location );
#ifdef MARKER_CAPTURE #ifdef MARKER_CAPTURE
if(marker_capture_enabled){ if(marker_capture_enabled){
@ -599,7 +599,7 @@ void display(void)
//-------------------------------------------------------- //--------------------------------------------------------
// camera settings // camera settings
//-------------------------------------------------------- //--------------------------------------------------------
myCamera.setTargetPosition( (glm::dvec3)myHead.getPos() ); myCamera.setTargetPosition( myHead.getPos() );
if ( display_head ) if ( display_head )
{ {
@ -1037,14 +1037,14 @@ void idle(void)
//---------------------------------------------------------------- //----------------------------------------------------------------
if ( mouse_pressed == 1 ) if ( mouse_pressed == 1 )
{ {
double xOffset = ( mouse_x - mouse_start_x ) / (double)WIDTH; float xOffset = ( mouse_x - mouse_start_x ) / (double)WIDTH;
double yOffset = ( mouse_y - mouse_start_y ) / (double)HEIGHT; float yOffset = ( mouse_y - mouse_start_y ) / (double)HEIGHT;
double leftRight = xOffset; float leftRight = xOffset;
double downUp = yOffset; float downUp = yOffset;
double backFront = 0.0; float backFront = 0.0;
glm::dvec3 handMovement( leftRight, downUp, backFront ); glm::vec3 handMovement( leftRight, downUp, backFront );
myHead.setHandMovement( handMovement ); myHead.setHandMovement( handMovement );
} }