const CCVector3 CCCameraBase::getDirection() { CCVector3 direction = lookAt; direction.sub( rotatedPosition ); CCVector3Normalize( direction ); return direction; }
void CCTile3D::setPositionXYZ(const float x, const float y, const float z) { if( position.x != x || position.y != y || position.z != z ) { CCVector3 distance = position; super::setPositionXYZ( x, y, z ); distance.sub( position ); for( int i=0; i<attachments.length; ++i ) { CCSceneObject *attachment = attachments.list[i]; attachment->translate( -distance.x, -distance.y, -distance.z ); } CCOctreeRefreshObject( this ); } }
static bool lineCheckGetIntersection(const float dist1, const float dist2, const CCVector3 &point1, const CCVector3 &point2, CCVector3 &hitLocation) { if( ( dist1 * dist2 ) >= 0.0f ) { return false; } if( dist1 == dist2 ) { return false; } // point1 + ( point2 - point1 ) * ( -dst1 / ( dst2 - dst1 ) ); hitLocation = point2; hitLocation.sub( point1 ); hitLocation.mul( -dist1 / ( dist2 - dist1 ) ); hitLocation.add( point1 ); return true; }