/** Graph scene init */ Dynamic1::Dynamic1() { ROOT=new SceneNode("ROOT_WALK_Strahov"); TransformNode* w_B_TRANSFORM=new TransformNode("NODE_WALK_Strahov_tranf", ROOT); //ArrayModel::createCube("ROOT_WALK_CUBE",1.0f,w_B_ROOT); w_B_TRANSFORM->scale(glm::vec3(4.0f, 4.0f, 4.0f) ); w_B_TRANSFORM->translate(glm::vec3(0.0, 0.35f, 0.0) ); (new MeshNode(StrahovModel::fileName, w_B_TRANSFORM))->setGeometry(StrahovModel::load()); TransformNode* transform =new TransformNode("transform", w_B_TRANSFORM); transform->translate(glm::vec3(5.25f,-0.2f,2.5f)); transform->scale(glm::vec3(3.0f)); RotationAnimNode* rot = new RotationAnimNode("rot",transform); rot->setAxis(glm::vec3(0.0f,1.0f,0.0f)); // rot->setSpeed(M_PI/10); TrashbinModel::setAsChild(rot,10); transform =new TransformNode("transform", w_B_TRANSFORM); transform->translate(glm::vec3(0.2f,-0.18f,0.4f)); transform->scale(glm::vec3(0.85f)); rot = new RotationAnimNode("rot",transform); rot->setAxis(glm::vec3(0.0f,-1.0f,0.0f)); // rot->setSpeed(M_PI/10); SofaModel::setAsChild(rot,20); transform =new TransformNode("transform", w_B_TRANSFORM); transform->translate(glm::vec3(0.2f,-0.18f,0.4f)); transform->scale(glm::vec3(0.85f)); transform->rotate(180, glm::vec3(0.0f, 1.0f, 0.0f)); SofaModel2::setAsChild(transform, 30); transform =new TransformNode("transform", w_B_TRANSFORM); transform->translate(glm::vec3(0.0f,-0.3f,0.0f)); SplineAnimNode* splineAnim = new SplineAnimNode("animacePoKrivce",transform); splineAnim->setSpeed(M_PI/10); CrazyCubeWithBase::make("vlastni objekt",1.0f,splineAnim); transform = new TransformNode("transform", w_B_TRANSFORM ); transform->translate(glm::vec3(-0.59f, -0.05f, -0.1f)); transform->scale(glm::vec3( 0.15f )); transform->rotate(90.0f,glm::vec3(0.0f,1.0f,0.0f)); SplineAnimNode* splineAnim2 = new SplineAnimNode("fireballAnim", transform); splineAnim2->setSpeed(M_PI/8); BillboardNode * billboard = new BillboardNode( "dynamic texture", splineAnim2, BillboardNode::WORLD_ALIGNED ); billboard->initTextures( "../data/dynamic/flame/flame%i.tga", 1, 8 ); billboard->setBlendFunc( GL_ONE, GL_ONE); update(); ROOT->dump(); }
// Function to process the Copy menu command. void copySelectedObjects() { if (!noAncestorDescendantSelections()) return; for (set<TransformNode*>::const_iterator iter = selections.begin(); iter != selections.end(); ++iter) { TransformNode* target = *iter; if (target == sceneRoot) { sceneRoot = new TransformNode(NULL); sceneRoot->addChild(target); target->setParent(sceneRoot); } TransformNode* parent = target->getParent(); TransformNode* newThing = target->clone(); parent->addChild(newThing); newThing->setParent(parent); target->translate(COPY_OFF_X, COPY_OFF_Y); } glutPostRedisplay(); }