Пример #1
0
/**
  
  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();
}
Пример #2
0
// 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();
}