Example #1
0
void PlaneModel::MakeGuns(){
	
	//Torrent Model ----------------------------------------
	GroupModel* torrentLayer = new GroupModel();
	if(1){
		vec3 torrentSize = vec3(0.5,0.5,1.4f);
		vec3 boxsize = vec3(0.3f, 0.3f, 0.5f);
		//left gun
		if(1){
			GroupModel* g = new GroupModel();
			if(1){
				GroupModel* m = new TorrentModel();
				m->SetPosition(vec3(0,0,0.5f));
				m->SetRotation(vec3(0.0f,0.0f,1.0f), 0.0f);
				m->SetScaling(torrentSize);		
				m->SetRotationSpeed(2*360.0f);
				g->AddChild(m);
			}
			if(1){
				Model* m = new CubeModel(vec3(mBlack));
				m->SetPosition(vec3(0,0,0.0f));
				m->SetScaling(boxsize);
				g->AddChild(m);
			}
			//g->SetScaling(vec3(2));
			g->SetPosition(vec3(-1.7f,0.2f,0.0f));
			torrentLayer->AddChild(g);
		}

		//right gun
		if(1){
			GroupModel* g = new GroupModel();
			if(1){
				GroupModel* m = new TorrentModel();
				m->SetPosition(vec3(0,0,0.5f));
				m->SetRotation(vec3(0.0f,0.0f,1.0f), 0.0f);
				m->SetScaling(torrentSize);		
				m->SetRotationSpeed(2*360.0f);
				g->AddChild(m);
			}
			if(1){
				Model* m = new CubeModel(vec3(mBlack));
				m->SetPosition(vec3(0,0,0.0f));
				m->SetScaling(boxsize);
				g->AddChild(m);
			}
			//g->SetScaling(vec3(2));
			g->SetPosition(vec3(1.7f,0.2f,0.0f));
			torrentLayer->AddChild(g);
		}
	
		torrentLayer->SetPosition(vec3(0,-0.2f,0.22));
		AddChild("guns", torrentLayer);
	}
}
Example #2
0
void PlaneModel::MakePropeller(){


	//########################################################################################

	
	//--------------------------------------------------
	//* Front Propeller
	if(true){
		GroupModel* propeller = new GroupModel();
		float bladeLength = 0.6f;
		int blades = 8;
		for(int i=0; i<blades;i++){	
			GroupModel* blade = new GroupModel();
				SphereModel* sphere = new SphereModel();
				sphere->SetScaling(vec3(bladeLength, 0.06f, 0.1f));
				sphere->SetPosition(vec3(bladeLength/2, 0.0f, 0.0f));
				sphere->SetRotation(vec3(1.0f, 0.0f, 0.0f), 45.0f);
			blade->AddChild(sphere);
			blade->SetRotation(vec3(0.0f,0.0f,2.0f), i*(360.0f/blades));
			propeller->AddChild(blade);
		}
	
		propeller->SetPosition(vec3(0.0f,0.0f,2.5f));
		propeller->SetRotation(vec3(0.0f,0.0f,1.0f), 0.0f);
		propeller->SetRotationSpeed(5.0f*180.0f);
		AddChild("propeller", propeller);
	}
	//*/
}
Example #3
0
void PlaneModel::MakeWings(){
//########################################################################################
	//wing
	GroupModel* wing = new GroupModel();
	SphereModel* wingbase = new SphereModel();
	wingbase->SetScaling(vec3(4.0f, 0.1f, 0.5f));
	wingbase->SetPosition(vec3(0.0f, 0.0f, 0.0f));
	//sphere->SetRotation(vec3(0.0f, 1.0f, 0.0f), 45.0f);
	wing->AddChild("wing_base", wingbase);
	AddChild("wing", wing);
	//Flaps ---------------------------------------------------------------------------------
	float flapWidth = 0.45f;// z width of flap
	float flapLen = 2.0f;//  3.4 full wing
	float wingAng = 6; // rotate to fit wing
	float zOffset = -0.2;//-0.2;
	float xOffset = 1.78f;//2.3f;
	vec3 flapColor = vec3(0.4f, 0,0);
	//Left Flap -----------------------------------------------------------------------------
	if(1){
		GroupModel* wingside = new GroupModel();					//wingside->AddChild(new CubeModel(vec3(0,0,1), vec3(0.2f))); //marker
			if(1){
				Model* m = new CubeModel(flapColor);	//flap->AddChild(new CubeModel(vec3(1), vec3(0.2f))); //marker
				m->SetPosition(vec3(1.60f,-0.025,-0.42f));
				m->SetScaling(vec3(1.2f,0.05f, flapWidth));
				wingside->AddChild(m);
			}
		
			GroupModel* flap = new GroupModel();
				//flaps cube
				Model* m = new CubeModel(flapColor);	//flap->AddChild(new CubeModel(vec3(1), vec3(0.2f))); //marker
				m->SetPosition(vec3(0,-0.025,-flapWidth/2));
				m->SetScaling(vec3(flapLen,0.05f, flapWidth));
			
			flap->SetRotation(vec3(1,0,0), 0); // angle of flap
			flap->SetPosition(vec3(0,0,zOffset));
			//flap->SetRotationSpeed(60);
			flap->AddChild("flap", m);
		
		wingside->SetRotation(vec3(0,1,0), -wingAng);
		wingside->SetPosition(vec3(xOffset,0,0));
		wingside->AddChild("flap",flap);
		wing->AddChild("left", wingside);
	}
	//Right Flap -----------------------------------------------------------------------------
	if(1){
		GroupModel* wingside = new GroupModel();					//wingside->AddChild(new CubeModel(vec3(0,0,1), vec3(0.2f))); //marker
			if(1){
				Model* m = new CubeModel(flapColor);	//flap->AddChild(new CubeModel(vec3(1), vec3(0.2f))); //marker
				m->SetPosition(vec3(-1.60f,-0.025,-0.42f));
				m->SetScaling(vec3(1.2f,0.05f, flapWidth));
				wingside->AddChild(m);
			}
		
			GroupModel* flap = new GroupModel();
				//flaps cube
				Model* m = new CubeModel(flapColor);	//flap->AddChild(new CubeModel(vec3(1), vec3(0.2f))); //marker
				m->SetPosition(vec3(0,-0.025,-flapWidth/2));
				m->SetScaling(vec3(flapLen,0.05f, flapWidth));
			
			flap->SetRotation(vec3(1,0,0), 0); // angle of flap
			flap->SetPosition(vec3(0,0,zOffset));
			//flap->SetRotationSpeed(60);
			flap->AddChild("flap", m);
		
		wingside->SetRotation(vec3(0,1,0), wingAng);
		wingside->SetPosition(vec3(-xOffset,0,0));
		wingside->AddChild("flap",flap);
		wing->AddChild("right", wingside);
	}
	
	//########################################################################################
}