void SkeletonModel::setJointStates(QVector<JointState> states) { Model::setJointStates(states); // Determine the default eye position for avatar scale = 1.0 int headJointIndex = _geometry->getFBXGeometry().headJointIndex; if (0 <= headJointIndex && headJointIndex < _jointStates.size()) { glm::vec3 leftEyePosition, rightEyePosition; getEyeModelPositions(leftEyePosition, rightEyePosition); glm::vec3 midEyePosition = (leftEyePosition + rightEyePosition) / 2.0f; int rootJointIndex = _geometry->getFBXGeometry().rootJointIndex; glm::vec3 rootModelPosition; getJointPosition(rootJointIndex, rootModelPosition); _defaultEyeModelPosition = midEyePosition - rootModelPosition; _defaultEyeModelPosition.z = -_defaultEyeModelPosition.z; // Skeleton may have already been scaled so unscale it _defaultEyeModelPosition = _defaultEyeModelPosition / _scale; } // the SkeletonModel override of updateJointState() will clear the translation part // of its root joint and we need that done before we try to build shapes hence we // recompute all joint transforms at this time. for (int i = 0; i < _jointStates.size(); i++) { updateJointState(i); } clearShapes(); if (_enableShapes) { buildShapes(); } }
void OgreOpcodeDebugger::clearAll() { clearRadii(); clearContacts(); clearContactNormals(); clearShapes(); clearBBs(); clearAABBs(); }
void PhysicsEntity::setEnableShapes(bool enable) { if (enable != _enableShapes) { clearShapes(); _enableShapes = enable; if (_enableShapes) { buildShapes(); } } }
SkeletonRagdoll* SkeletonModel::buildRagdoll() { if (!_ragdoll) { _ragdoll = new SkeletonRagdoll(this); if (_enableShapes) { clearShapes(); buildShapes(); } } return _ragdoll; }
//-------------------------------------------------------------- void testApp::update() { if( tileSaver.bGoTiling ) return; if( bPause ) return; updateCamera(); if( cameraNewFrame ) { if( bUseCamera ) { updateCv( camera.getPixels() ); } else { updateCv( video.getPixels() ); } opticalField.update( cameraGrayImage.getPixels() ); if( ofGetFrameNum() % 1 == 0 ) { int blobs; blobs = updateContours(); if( blobs > 0 ) { clearShapes(); parseShapes(); scaleShapes(); addCirclesToBox2d(); // updateTriangles(); // addTrianglesToBox2d(); } } } // updateTriangleShapes(); updateCirclePacker(); updateCircles(); box2d.update(); }
void SkeletonModel::initJointStates(QVector<JointState> states) { Model::initJointStates(states); // Determine the default eye position for avatar scale = 1.0 int headJointIndex = _geometry->getFBXGeometry().headJointIndex; if (0 <= headJointIndex && headJointIndex < _jointStates.size()) { glm::vec3 leftEyePosition, rightEyePosition; getEyeModelPositions(leftEyePosition, rightEyePosition); glm::vec3 midEyePosition = (leftEyePosition + rightEyePosition) / 2.0f; int rootJointIndex = _geometry->getFBXGeometry().rootJointIndex; glm::vec3 rootModelPosition; getJointPosition(rootJointIndex, rootModelPosition); _defaultEyeModelPosition = midEyePosition - rootModelPosition; _defaultEyeModelPosition.z = -_defaultEyeModelPosition.z; // Skeleton may have already been scaled so unscale it _defaultEyeModelPosition = _defaultEyeModelPosition / _scale; } // the SkeletonModel override of updateJointState() will clear the translation part // of its root joint and we need that done before we try to build shapes hence we // recompute all joint transforms at this time. for (int i = 0; i < _jointStates.size(); i++) { updateJointState(i); } clearShapes(); if (_enableShapes) { buildShapes(); } Extents meshExtents = getMeshExtents(); _headClipDistance = -(meshExtents.minimum.z / _scale.z - _defaultEyeModelPosition.z); _headClipDistance = std::max(_headClipDistance, DEFAULT_NEAR_CLIP); _owningAvatar->rebuildSkeletonBody(); emit skeletonLoaded(); }
VoxelShapeManager::~VoxelShapeManager() { clearShapes(); }