示例#1
0
int main()
{
    ModelerControl controls[NUMCONTROLS ];

	controls[BASE_ROTATION] = ModelerControl("base rotation (theta)", -180.0, 180.0, 0.1, 0.0 );
    controls[LOWER_TILT] = ModelerControl("lower arm tilt (phi)", 15.0, 95.0, 0.1, 55.0 );
    controls[UPPER_TILT] = ModelerControl("upper arm tilt (psi)", 0.0, 135.0, 0.1, 30.0 );
	controls[CLAW_ROTATION] = ModelerControl("claw rotation (cr)", -30.0, 180.0, 0.1, 0.0 );
    controls[BASE_LENGTH] = ModelerControl("base height (h1)", 0.5, 10.0, 0.1, 0.8 );
    controls[LOWER_LENGTH] = ModelerControl("lower arm length (h2)", 1, 10.0, 0.1, 3.0 );
    controls[UPPER_LENGTH] = ModelerControl("upper arm length (h3)", 1, 10.0, 0.1, 2.5 );
    controls[PARTICLE_COUNT] = ModelerControl("particle count (pc)", 0.0, 5.0, 0.1, 5.0 );
    


	// You should create a ParticleSystem object ps here and then
	// call ModelerApplication::Instance()->SetParticleSystem(ps)
	// to hook it up to the animator interface.

    ModelerApplication::Instance()->Init(&createRobotArm, controls, NUMCONTROLS);

    return ModelerApplication::Instance()->Run();
}
int main()
{
	// Initialize the controls
	// Constructor is ModelerControl(name, minimumvalue, maximumvalue, 
	// stepsize, defaultvalue)
    ModelerControl controls[NUMCONTROLS];
	controls[LEVEL_OF_DETAIL] = ModelerControl("Level of Detail", 1, 6, 1, 6);
	controls[MOOD] = ModelerControl("Mood", 0, 3, 1, 0);
	controls[ANIMATE] = ModelerControl("Animate", 0, 1, 1, 0);
    controls[XPOS] = ModelerControl("X Position", -5, 5, 0.1f, 0);
    controls[YPOS] = ModelerControl("Y Position", 0, 5, 0.1f, 0);
    controls[ZPOS] = ModelerControl("Z Position", -5, 5, 0.1f, 0);

	controls[SPIDER_ROTATE_Z] = ModelerControl("Spider Rotate Z", -180, 180, 1, 0);
	controls[BODY_ROTATE_Z] = ModelerControl("Body Rotate Z", 30, -60, 1, 0);

    controls[LEFT_TOOTH_ROTATE_Y] = ModelerControl("Left Tooth Rotate Y", -60, -120, 1, -90);
    controls[RIGHT_TOOTH_ROTATE_Y] = ModelerControl("Right Tooth Rotate Y", -60, -120, 1, -90);

    controls[LEFT_ANTENNA_ROTATE_Y] = ModelerControl("Left Antenna Rotate Y", -60, -90, 1, -75);
    controls[LEFT_ANTENNA_ROTATE_X] = ModelerControl("Left Antenna Rotate X", -0, -60, 1, -30);
    controls[LEFT_ANTENNA_UPPER_ROTATE_Y] = ModelerControl("Left Antenna Upper Rotate Y", -0, -60, 1, -30);
    controls[LEFT_ANTENNA_UPPER_ROTATE_X] = ModelerControl("Left Antenna Upper Rotate X", 30, 60, 1, 45);

    controls[RIGHT_ANTENNA_ROTATE_Y] = ModelerControl("Right Antenna Rotate Y", -90, -120, 1, -105);
    controls[RIGHT_ANTENNA_ROTATE_X] = ModelerControl("Right Antenna Rotate X", -0, -60, 1, -30);
    controls[RIGHT_ANTENNA_UPPER_ROTATE_Y] = ModelerControl("Right Antenna Upper Rotate Y", 0, 60, 1, 30);
    controls[RIGHT_ANTENNA_UPPER_ROTATE_X] = ModelerControl("Right Antenna Upper Rotate X", 30, 60, 1, 45);

    controls[LEFT_LEG_1_1_ROTATE_Y] = ModelerControl("Left Leg 1 First Part Rotate Y", -30, -90, 1, -60);
    controls[LEFT_LEG_1_1_ROTATE_X] = ModelerControl("Left Leg 1 First Part Rotate X", -0, -60, 1, -30);
    controls[LEFT_LEG_1_2_ROTATE_Y] = ModelerControl("Left Leg 1 Second Part Rotate Y", -10, -70, 1, -40);
    controls[LEFT_LEG_1_2_ROTATE_X] = ModelerControl("Left Leg 1 Second Part Rotate X", 20, 80, 1, 50);
    controls[LEFT_LEG_1_3_ROTATE_Y] = ModelerControl("Left Leg 1 Third Part Rotate Y", 10, -50, 1, -20);
    controls[LEFT_LEG_1_3_ROTATE_X] = ModelerControl("Left Leg 1 Third Part Rotate X", -10, 50, 1, 20);

    controls[LEFT_LEG_2_1_ROTATE_Y] = ModelerControl("Left Leg 2 First Part Rotate Y", -0, -60, 1, -30);
    controls[LEFT_LEG_2_1_ROTATE_X] = ModelerControl("Left Leg 2 First Part Rotate X", 5, -55, 1, -25);
    controls[LEFT_LEG_2_2_ROTATE_Y] = ModelerControl("Left Leg 2 Second Part Rotate Y", -0, -60, 1, -30);
    controls[LEFT_LEG_2_2_ROTATE_X] = ModelerControl("Left Leg 2 Second Part Rotate X", 10, 70, 1, 40);
    controls[LEFT_LEG_2_3_ROTATE_Y] = ModelerControl("Left Leg 2 Third Part Rotate Y", 10, -50, 1, -20);
    controls[LEFT_LEG_2_3_ROTATE_X] = ModelerControl("Left Leg 2 Third Part Rotate X", 0, 60, 1, 30);

    controls[LEFT_LEG_3_1_ROTATE_Y] = ModelerControl("Left Leg 3 First Part Rotate Y", -10, 50, 1, 20);
    controls[LEFT_LEG_3_1_ROTATE_X] = ModelerControl("Left Leg 3 First Part Rotate X", 0, -60, 1, -30);
    controls[LEFT_LEG_3_2_ROTATE_Y] = ModelerControl("Left Leg 3 Second Part Rotate Y", -10, 50, 1, 20);
    controls[LEFT_LEG_3_2_ROTATE_X] = ModelerControl("Left Leg 3 Second Part Rotate X", 20, 80, 1, 50);
    controls[LEFT_LEG_3_3_ROTATE_Y] = ModelerControl("Left Leg 3 Third Part Rotate Y", -10, 50, 1, 20);
    controls[LEFT_LEG_3_3_ROTATE_X] = ModelerControl("Left Leg 3 Third Part Rotate X", 10, 70, 1, 40);

    controls[LEFT_LEG_4_1_ROTATE_Y] = ModelerControl("Left Leg 4 First Part Rotate Y", 30, 90, 1, 60);
    controls[LEFT_LEG_4_1_ROTATE_X] = ModelerControl("Left Leg 4 First Part Rotate X", 10, -50, 1, -20);
    controls[LEFT_LEG_4_2_ROTATE_Y] = ModelerControl("Left Leg 4 Second Part Rotate Y", -10, 50, 1, 20);
    controls[LEFT_LEG_4_2_ROTATE_X] = ModelerControl("Left Leg 4 Second Part Rotate X", 10, 70, 1, 40);
    controls[LEFT_LEG_4_3_ROTATE_Y] = ModelerControl("Left Leg 4 Third Part Rotate Y", -10, 50, 1, 20);
    controls[LEFT_LEG_4_3_ROTATE_X] = ModelerControl("Left Leg 4 Third Part Rotate X", -10, 50, 1, 20);

    controls[RIGHT_LEG_1_1_ROTATE_Y] = ModelerControl("Right Leg 1 First Part Rotate Y", -90, -150, 1, -120);
    controls[RIGHT_LEG_1_1_ROTATE_X] = ModelerControl("Right Leg 1 First Part Rotate X", 0, -60, 1, -30);
    controls[RIGHT_LEG_1_2_ROTATE_Y] = ModelerControl("Right Leg 1 Second Part Rotate Y", 10, 70, 1, 40);
    controls[RIGHT_LEG_1_2_ROTATE_X] = ModelerControl("Right Leg 1 Second Part Rotate X", 20, 80, 1, 50);
    controls[RIGHT_LEG_1_3_ROTATE_Y] = ModelerControl("Right Leg 1 Third Part Rotate Y", -10, 50, 1, 20);
    controls[RIGHT_LEG_1_3_ROTATE_X] = ModelerControl("Right Leg 1 Third Part Rotate X", -10, 50, 1, 20);

    controls[RIGHT_LEG_2_1_ROTATE_Y] = ModelerControl("Right Leg 2 First Part Rotate Y", -120, -180, 1, -150);
    controls[RIGHT_LEG_2_1_ROTATE_X] = ModelerControl("Right Leg 2 First Part Rotate X", 5, -55, 1, -25);
    controls[RIGHT_LEG_2_2_ROTATE_Y] = ModelerControl("Right Leg 2 Second Part Rotate Y", 0, 60, 1, 30);
    controls[RIGHT_LEG_2_2_ROTATE_X] = ModelerControl("Right Leg 2 Second Part Rotate X", 10, 70, 1, 40);
    controls[RIGHT_LEG_2_3_ROTATE_Y] = ModelerControl("Right Leg 2 Third Part Rotate Y", -10, 50, 1, 20);
    controls[RIGHT_LEG_2_3_ROTATE_X] = ModelerControl("Right Leg 2 Third Part Rotate X", 0, 60, 1, 30);

    controls[RIGHT_LEG_3_1_ROTATE_Y] = ModelerControl("Right Leg 3 First Part Rotate Y", 130, 190, 1, 160);
    controls[RIGHT_LEG_3_1_ROTATE_X] = ModelerControl("Right Leg 3 First Part Rotate X", 0, -60, 1, -30);
    controls[RIGHT_LEG_3_2_ROTATE_Y] = ModelerControl("Right Leg 3 Second Part Rotate Y", 10, -50, 1, -20);
    controls[RIGHT_LEG_3_2_ROTATE_X] = ModelerControl("Right Leg 3 Second Part Rotate X", 20, 80, 1, 50);
    controls[RIGHT_LEG_3_3_ROTATE_Y] = ModelerControl("Right Leg 3 Third Part Rotate Y", 10, -50, 1, -20);
    controls[RIGHT_LEG_3_3_ROTATE_X] = ModelerControl("Right Leg 3 Third Part Rotate X", 10, 70, 1, 40);

    controls[RIGHT_LEG_4_1_ROTATE_Y] = ModelerControl("Right Leg 4 First Part Rotate Y", 90, 150, 1, 120);
    controls[RIGHT_LEG_4_1_ROTATE_X] = ModelerControl("Right Leg 4 First Part Rotate X", 10, -50, 1, -20);
    controls[RIGHT_LEG_4_2_ROTATE_Y] = ModelerControl("Right Leg 4 Second Part Rotate Y", 10, -50, 1, -20);
    controls[RIGHT_LEG_4_2_ROTATE_X] = ModelerControl("Right Leg 4 Second Part Rotate X", 10, 70, 1, 40);
    controls[RIGHT_LEG_4_3_ROTATE_Y] = ModelerControl("Right Leg 4 Third Part Rotate Y", 10, -50, 1, -20);
    controls[RIGHT_LEG_4_3_ROTATE_X] = ModelerControl("Right Leg 4 Third Part Rotate X", -10, 50, 1, 20);

    controls[SPINNERET_ROTATE_Y] = ModelerControl("Spinneret Rotate Y", 75, 105, 1, 90);
    controls[SPINNERET_ROTATE_X] = ModelerControl("Spinneret Rotate Y", -15, 15, 1, 0);

    ModelerApplication::Instance()->Init(&createSampleModel, controls, NUMCONTROLS);
    return ModelerApplication::Instance()->Run();
}
示例#3
0
int main()
{
    ModelerControl controls[NUMCONTROLS ];

	controls[BASE_ROTATION] = ModelerControl("base rotation (theta)", -180.0, 180.0, 0.1, 0.0 );
    controls[LOWER_TILT] = ModelerControl("lower arm tilt (phi)", 15.0, 95.0, 0.1, 55.0 );
    controls[UPPER_TILT] = ModelerControl("upper arm tilt (psi)", 0.0, 135.0, 0.1, 30.0 );
	controls[CLAW_ROTATION] = ModelerControl("claw rotation (cr)", -30.0, 180.0, 0.1, 0.0 );
    controls[BASE_LENGTH] = ModelerControl("base height (h1)", 0.5, 10.0, 0.1, 0.8 );
    controls[LOWER_LENGTH] = ModelerControl("lower arm length (h2)", 1, 10.0, 0.1, 3.0 );
	controls[UPPER_LENGTH] = ModelerControl("upper arm length (h3)", 1, 10.0, 0.1, 2.5);
	controls[PARTICLE_COUNT] = ModelerControl("particle count (pc)", 0.0, 5.0, 0.1, 5.0);
	controls[X_WIND] = ModelerControl("X_WIND", 0.0, 5.0, 0.1, 0.6);
	controls[Y_WIND] = ModelerControl("Y_WIND", 0.0, 5.0, 0.1, 0.0);
	controls[Z_WIND] = ModelerControl("Z_WIND", 0.0, 5.0, 0.1, 0.2);
	controls[WIND_MAGNITUDE] = ModelerControl("WIND_MAGNITUDE", 0.0, 10.0, 0.1, 2.0);
	controls[GRAVITY] = ModelerControl("GRAVITY", -10.0, 10.0, 1.0, 9.8);
    
    controls[XPOS] = ModelerControl("X Position", -5, 5, 0.1f, 0);
    controls[YPOS] = ModelerControl("Y Position", 0, 5, 0.1f, 0);
    controls[ZPOS] = ModelerControl("Z Position", -5, 5, 0.1f, 0);

    controls[XSCALE] = ModelerControl("X Scale", 0, 3, 0.1f, 1.0f);
    controls[YSCALE] = ModelerControl("Y Scale", 0, 3, 0.1f, 1.0f);
    controls[ZSCALE] = ModelerControl("Z Scale", 0, 3, 0.1f, 1.0f);

    controls[HEIGHT] = ModelerControl("Height", 1, 2.5, 0.1f, 1);
    controls[ROTATE] = ModelerControl("Rotate", -135, 135, 1, 0);

    controls[HEAD_SIZE] = ModelerControl("Head Size", 0.8, 2, 0.1f, 1);
    controls[HEAD_ROTATE] = ModelerControl("Head Rotate", -70, 70, 1, 0);
    controls[EAR_SIZE] = ModelerControl("Ear Size", 0, 2, 0.1f, 1);

    controls[UPPER_ARM_LENGTH] = ModelerControl("Upper Arm Length", 1, 5, 0.1f, 0.8);
    controls[LEFT_UPPER_ARM_ROTATE_X] = ModelerControl("Left Upper Arm Rotate X", 20, 120, 1.0f, 80);
    controls[LEFT_UPPER_ARM_ROTATE_Y] = ModelerControl("Left Upper Arm Rotate Y", -30, 90, 1.0f, 0);
    controls[RIGHT_UPPER_ARM_ROTATE_X] = ModelerControl("Right Upper Arm Rotate X", -90, 100, 1.0f, -40);
    controls[RIGHT_UPPER_ARM_ROTATE_Y] = ModelerControl("Right Upper Arm Rotate Y", -90, 30, 1.0f, 0);

    controls[LOWER_ARM_LENGTH] = ModelerControl("Lower Arm Length", 1, 5, 0.1f, 0.8);
    controls[LEFT_LOWER_ARM_ROTATE] = ModelerControl("Left Lower Arm Rotate", 20, 180, 1.0f, 80);
    controls[RIGHT_LOWER_ARM_ROTATE] = ModelerControl("Right Lower Arm Rotate", 20, 180, 1.0f, 180);
    controls[RIGHT_HAND_ANGLE] = ModelerControl("Right Hand Angle", 0, 70, 1, 0);
    controls[LEFT_HAND_ANGLE] = ModelerControl("Left Hand Angle", 0, 70, 1, 0);

    controls[LEG_LENGTH] = ModelerControl("Leg Length", 1, 5, 0.1f, 2);
    controls[LEFT_LEG_ROTATE_X] = ModelerControl("Left Leg Rotate X", 30, 150, 1.0f, 40);
    controls[LEFT_LEG_ROTATE_Y] = ModelerControl("Left Leg Rotate Y", -80, 90, 1.0f, 0);
    controls[RIGHT_LEG_ROTATE_X] = ModelerControl("Right Leg Rotate X", 30, 150, 1.0f, 140);
    controls[RIGHT_LEG_ROTATE_Y] = ModelerControl("Right Leg Rotate Y", -90, 80, 1.0f, 0);
    
    controls[TORUS_R] = ModelerControl("Torus R", 0, 10, 0.1f, 0.6);
    controls[TORUS_r] = ModelerControl("Torus r", 0, 10, 0.1f, 0.15);

    controls[FLOOR_SIZE] = ModelerControl("Floor Size", 0, 8, 0.1f, 5.0f);
    controls[FLOOR_DEPTH] = ModelerControl("Floor Depth", 0, 10, 1, 4);

    controls[DETAIL_LEVEL] = ModelerControl("Detail Level", 1, 5, 1, 3);


	// You should create a ParticleSystem object ps here and then
	// call ModelerApplication::Instance()->SetParticleSystem(ps)
	// to hook it up to the animator interface.

	ModelerApplication::Instance()->Init(&createRobotArm, controls, NUMCONTROLS);
	ParticleSystem *ps = new ParticleSystem();
	ModelerApplication::Instance()->SetParticleSystem(ps);
	Force* g = new Gravity((float)VAL(GRAVITY));
	//Force* g = new Gravity(9.8f);
	ps->addForce(g);
	Wind *wind = new Wind();
	wind->setDirection(Vec3f((float)-VAL(X_WIND) - 5.0f, (float)VAL(Y_WIND) - 5.0f, (float)VAL(Y_WIND) - 5.0f));
	//wind->setDirection(Vec3f(-0.4, 0, 0.2));
	wind->setMagnitube((float)VAL(WIND_MAGNITUDE));
	//wind->setMagnitube(6.0);
	ps->addForce(wind);
	

    return ModelerApplication::Instance()->Run();
}
int main()
{
	// Initialize the controls
	// Constructor is ModelerControl(name, minimumvalue, maximumvalue, 
	// stepsize, defaultvalue)
	ModelerControl controls[NUMCONTROLS];
	controls[XPOS] = ModelerControl("X Position", -5, 5, 0.1f, 0);
	controls[YPOS] = ModelerControl("Y Position", 0, 5, 0.1f, 0);
	controls[ZPOS] = ModelerControl("Z Position", -5, 5, 0.1f, 0);
	controls[SWORD_LENGTH] = ModelerControl("Sword Length", 0.0, 1.0, 0.1f, 1);
	controls[ROTATE] = ModelerControl("Rotate", -180, 180, 1, 0);
	controls[SLASH] = ModelerControl("Slash", 0, 90, 1, 45);
	controls[COSTUME] = ModelerControl("Costume", 1, 3, 1, 1);
	controls[SLASH_TYPE] = ModelerControl("Slash Type", 1, SLASH_TYPE_NUM-1, 1, 1);
	controls[NECK] = ModelerControl("Head direction", -180, 180, 1, 0);
	controls[PARTICLE_GROUND] = ModelerControl("Ground particle enable", 0, 1, 1, 0);
	controls[PARTICLE_PREPARE] = ModelerControl("Excalibur prepare enable", 0, 1, 1, 0);
	controls[PARTICLE_CAST] = ModelerControl("Excalibur enable", 0, 1, 1, 1);
	controls[PARTICLE_BURST] = ModelerControl("Burst particle enable", 0, 1, 1, 0);
	controls[PARTICLE_AIR] = ModelerControl("Invisible air enable", 0, 1, 1, 0);


	srand(time(0));


	ModelerApplication::Instance()->Init(&createMyModel, controls, NUMCONTROLS);

	MyModel::InitializeParticleSystem();

	return ModelerApplication::Instance()->Run();
}
示例#5
0
int main()
{
	// Initialize the controls
	// Constructor is ModelerControl(name, minimumvalue, maximumvalue, 
	// stepsize, defaultvalue)
    ModelerControl controls[NUMCONTROLS];
	controls[LIGHT0_X] = ModelerControl("Light0 X", -5, 5, 0.1, -5.0f);
	controls[LIGHT0_Y] = ModelerControl("Light0 Y", -5, 5, 0.1, -2.0);
	controls[LIGHT0_Z] = ModelerControl("Light0 Z", -5, 5, 0.1, -4.0);
	controls[LIGHT0_R] = ModelerControl("Light0 R", 0.0f, 1.0f, 0.1f, 1.0f);
	controls[LIGHT0_G] = ModelerControl("Light0 G", 0.0f, 1.0f, 0.1f, 1.0f);
	controls[LIGHT0_B] = ModelerControl("Light0 B", 0.0f, 1.0f, 0.1f, 1.0f);

	controls[LIGHT1_X] = ModelerControl("Light1 X", -5.0f, 5.0f, 0.1f, 4.0f);
	controls[LIGHT1_Y] = ModelerControl("Light1 Y", -5.0f, 5.0f, 0.1f, 1.0f);
	controls[LIGHT1_Z] = ModelerControl("Light1 Z", -5.0f, 5.0f, 0.1f, 5.0f);
	controls[LIGHT1_R] = ModelerControl("Light1 R", 0.0f, 1.0f, 0.1f, 1.0f);
	controls[LIGHT1_G] = ModelerControl("Light1 G", 0.0f, 1.0f, 0.1f, 1.0f);
	controls[LIGHT1_B] = ModelerControl("Light1 B", 0.0f, 1.0f, 0.1f, 1.0f);
    
	controls[XPOS] = ModelerControl("X Position", -5, 5, 0.1f, 0);
    controls[YPOS] = ModelerControl("Y Position", 0, 5, 0.1f, 0);
    controls[ZPOS] = ModelerControl("Z Position", -5, 5, 0.1f, 0);
    controls[HEIGHT] = ModelerControl("Height", 1, 2.5, 0.1f, 1);
	controls[ROTATE] = ModelerControl("Rotate", -135, 135, 1, 0);

	controls[LSYS_SHOW] = ModelerControl("L-System Show", 0, 1, 1, 0);
	controls[LSYS_TYPE] = ModelerControl("L-System Type", 0, 1, 1, 0);
	controls[LSYS_DEPTH] = ModelerControl("L-System Depth", 1, 10, 1, 1);
	controls[LSYS_ANGLE] = ModelerControl("L-System Angle", 0, 90, 1, 45);

	controls[ANGLE_LIMIT] = ModelerControl("Angle Limit", 0, 1, 1, 0);

	controls[INVERSE_KINEMATICS] = ModelerControl("Inverse Kinematics?", 0, 1, 1, 0);
	controls[HEAD_CSTRN_X] = ModelerControl("Head Constraint X", -10, 10, 0.1, 0);
	controls[HEAD_CSTRN_Y] = ModelerControl("Head Constraint Y", -10, 10, 0.1, 0);
	controls[HEAD_CSTRN_Z] = ModelerControl("Head Constraint Z", -10, 10, 0.1, 0);
	controls[LHAND_CSTRN_X] = ModelerControl("Left Hand Constraint X", -10, 10, 0.1, 0);
	controls[LHAND_CSTRN_Y] = ModelerControl("Left Hand Constraint Y", -10, 10, 0.1, 0);
	controls[LHAND_CSTRN_Z] = ModelerControl("Left Hand Constraint Z", -10, 10, 0.1, 0);
	controls[RHAND_CSTRN_X] = ModelerControl("Right Hand Constraint X", -10, 10, 0.1, 0);
	controls[RHAND_CSTRN_Y] = ModelerControl("Right Hand Constraint Y", -10, 10, 0.1, 0);
	controls[RHAND_CSTRN_Z] = ModelerControl("Right Hand Constraint Z", -10, 10, 0.1, 0);
	controls[LFOOT_CSTRN_X] = ModelerControl("Left Foot Constraint X", -10, 10, 0.1, 0);
	controls[LFOOT_CSTRN_Y] = ModelerControl("Left Foot Constraint Y", -10, 10, 0.1, 0);
	controls[LFOOT_CSTRN_Z] = ModelerControl("Left Foot Constraint Z", -10, 10, 0.1, 0);
	controls[RFOOT_CSTRN_X] = ModelerControl("Right Foot Constraint X", -10, 10, 0.1, 0);
	controls[RFOOT_CSTRN_Y] = ModelerControl("Right Foot Constraint Y", -10, 10, 0.1, 0);
	controls[RFOOT_CSTRN_Z] = ModelerControl("Right Foot Constraint Z", -10, 10, 0.1, 0);

	controls[LEVEL_OF_DETAIL] = ModelerControl("Level of Detail", 1, 10, 1, 10);

	controls[LEFT_ULEG_ROTATE] = ModelerControl("Left Upper Leg Rotate", 0, 80, 1, 0);
	controls[LEFT_ULEG_SWAYLR] = ModelerControl("Left Upper Leg Sway Left/Right", 0, 90, 1, 0);
	controls[LEFT_ULEG_SWAYFB] = ModelerControl("Left Upper Leg Sway Front/Back", -60, 150, 1, 0);
	controls[RIGHT_ULEG_ROTATE] = ModelerControl("Right Upper Leg Rotate", 0, 80, 1, 0);
	controls[RIGHT_ULEG_SWAYLR] = ModelerControl("Right Upper Leg Sway Left/Right", 0, 90, 1, 0);
	controls[RIGHT_ULEG_SWAYFB] = ModelerControl("Right Upper Leg Sway Front/Back", -60, 150, 1, 0);

	controls[LEFT_KNEE] = ModelerControl("Left Knee", 0, 160, 1, 0);
	controls[RIGHT_KNEE] = ModelerControl("Right Knee", 0, 160, 1, 0);

	//controls[LEFT_FOOT_UD] = ModelerControl("Left Foot UD", -30, 90, 1, 0);
	controls[LEFT_FOOT_LR] = ModelerControl("Left Foot LR", -30, 30, 1, 0);
	//controls[RIGHT_FOOT_UD] = ModelerControl("Right Foot UD", -30, 90, 1, 0);
	controls[RIGHT_FOOT_LR] = ModelerControl("Right Foot LR", -30, 30, 1, 0);

	controls[LEFT_ELBOW] = ModelerControl("Left Elbow", 0, 160, 1, 0);
	controls[RIGHT_ELBOW] = ModelerControl("Right Elbow", 0, 160, 1, 0);

	controls[LEFT_UARM_ROTATE] = ModelerControl("Left Uarm Rotate", -90, 90, 1, 0);
	controls[RIGHT_UARM_ROTATE] = ModelerControl("Right Uarm Rotate", -90, 90, 1, 0);

    ModelerApplication::Instance()->Init(&createSampleModel, controls, NUMCONTROLS);
    return ModelerApplication::Instance()->Run();
}
示例#6
0
int main()
{
	// Initialize the controls
	// Constructor is ModelerControl(name, minimumvalue, maximumvalue, 
	// stepsize, defaultvalue)
    ModelerControl controls[NUMCONTROLS];
	controls[LIGHT0_X] = ModelerControl("Light0 X", -5, 5, 0.1, -5.0f);
	controls[LIGHT0_Y] = ModelerControl("Light0 Y", -5, 5, 0.1, -2.0);
	controls[LIGHT0_Z] = ModelerControl("Light0 Z", -5, 5, 0.1, -4.0);
	controls[LIGHT0_R] = ModelerControl("Light0 R", 0.0f, 1.0f, 0.1f, 1.0f);
	controls[LIGHT0_G] = ModelerControl("Light0 G", 0.0f, 1.0f, 0.1f, 1.0f);
	controls[LIGHT0_B] = ModelerControl("Light0 B", 0.0f, 1.0f, 0.1f, 1.0f);

	controls[LIGHT1_X] = ModelerControl("Light1 X", -5.0f, 5.0f, 0.1f, 4.0f);
	controls[LIGHT1_Y] = ModelerControl("Light1 Y", -5.0f, 5.0f, 0.1f, 1.0f);
	controls[LIGHT1_Z] = ModelerControl("Light1 Z", -5.0f, 5.0f, 0.1f, 5.0f);
	controls[LIGHT1_R] = ModelerControl("Light1 R", 0.0f, 1.0f, 0.1f, 1.0f);
	controls[LIGHT1_G] = ModelerControl("Light1 G", 0.0f, 1.0f, 0.1f, 1.0f);
	controls[LIGHT1_B] = ModelerControl("Light1 B", 0.0f, 1.0f, 0.1f, 1.0f);
    
	controls[XPOS] = ModelerControl("X Position", -10, 10, 0.1f, 0);
    controls[YPOS] = ModelerControl("Y Position", -10, 10, 0.1f, 0);
    controls[ZPOS] = ModelerControl("Z Position", -10, 10, 0.1f, 0);
    controls[HEIGHT] = ModelerControl("Height", 1, 2.5, 0.1f, 1);
	controls[ROTATE] = ModelerControl("Rotate", -135, 135, 1, 0);

	controls[HEAD_CSTRN_X] = ModelerControl("Head Constraint X", -20, 20, 0.1, 0);
	controls[HEAD_CSTRN_Y] = ModelerControl("Head Constraint Y", -20, 20, 0.1, 6.0);
	controls[HEAD_CSTRN_Z] = ModelerControl("Head Constraint Z", -20, 20, 0.1, 0);
	controls[LHAND_CSTRN_X] = ModelerControl("Left Hand Constraint X", -20, 20, 0.1, 5.356248);
	controls[LHAND_CSTRN_Y] = ModelerControl("Left Hand Constraint Y", -20, 20, 0.1, 3.550485);
	controls[LHAND_CSTRN_Z] = ModelerControl("Left Hand Constraint Z", -20, 20, 0.1, 0);
	controls[RHAND_CSTRN_X] = ModelerControl("Right Hand Constraint X", -20, 20, 0.1, -5.356248);
	controls[RHAND_CSTRN_Y] = ModelerControl("Right Hand Constraint Y", -20, 20, 0.1, 3.550485);
	controls[RHAND_CSTRN_Z] = ModelerControl("Right Hand Constraint Z", -20, 20, 0.1, 0);
	controls[LFOOT_CSTRN_X] = ModelerControl("Left Foot Constraint X", -20, 20, 0.1, 0.942230);
	controls[LFOOT_CSTRN_Y] = ModelerControl("Left Foot Constraint Y", -20, 20, 0.1, -6.781559);
	controls[LFOOT_CSTRN_Z] = ModelerControl("Left Foot Constraint Z", -20, 20, 0.1, -0.086824);
	controls[RFOOT_CSTRN_X] = ModelerControl("Right Foot Constraint X", -20, 20, 0.1, -0.948529);
	controls[RFOOT_CSTRN_Y] = ModelerControl("Right Foot Constraint Y", -20, 20, 0.1, -6.601208);
	controls[RFOOT_CSTRN_Z] = ModelerControl("Right Foot Constraint Z", -20, 20, 0.1, -0.760312);

	controls[LEVEL_OF_DETAIL] = ModelerControl("Level of Detail", 1, 10, 1, 10);

	controls[LEFT_ULEG_ROTATE] = ModelerControl("Left Upper Leg Rotate", 0, 80, 1, 0);
	controls[LEFT_ULEG_SWAYLR] = ModelerControl("Left Upper Leg Sway Left/Right", 0, 90, 1, 0);
	controls[LEFT_ULEG_SWAYFB] = ModelerControl("Left Upper Leg Sway Front/Back", -60, 150, 1, 10);
	controls[RIGHT_ULEG_ROTATE] = ModelerControl("Right Upper Leg Rotate", 0, 80, 1, 0);
	controls[RIGHT_ULEG_SWAYLR] = ModelerControl("Right Upper Leg Sway Left/Right", 0, 90, 1, 0);
	controls[RIGHT_ULEG_SWAYFB] = ModelerControl("Right Upper Leg Sway Front/Back", -60, 150, 1, 10);

	controls[LEFT_KNEE] = ModelerControl("Left Knee", 0, 160, 1, 20);
	controls[RIGHT_KNEE] = ModelerControl("Right Knee", 0, 160, 1, 20);

	//controls[LEFT_FOOT_UD] = ModelerControl("Left Foot UD", -30, 90, 1, 0);
	controls[LEFT_FOOT_LR] = ModelerControl("Left Foot LR", -30, 30, 1, 0);
	//controls[RIGHT_FOOT_UD] = ModelerControl("Right Foot UD", -30, 90, 1, 0);
	controls[RIGHT_FOOT_LR] = ModelerControl("Right Foot LR", -30, 30, 1, 0);

	controls[LEFT_ELBOW] = ModelerControl("Left Elbow", 0, 160, 1, 0);
	controls[RIGHT_ELBOW] = ModelerControl("Right Elbow", 0, 160, 1, 0);

	controls[LEFT_UARM_ROTATE] = ModelerControl("Left Uarm Rotate", -90, 90, 1, 0);
	controls[RIGHT_UARM_ROTATE] = ModelerControl("Right Uarm Rotate", -90, 90, 1, 0);

	controls[DIVISION_LEVEL] = ModelerControl("Division Level", 0, 10, 1, 0);
	controls[DIVISION_CONTROL1] = ModelerControl("Division Control1", 0, 2, 0.2, 1);
	controls[DIVISION_CONTROL2] = ModelerControl("Division Control2", 0, 2, 0.2, 1);
	controls[DIVISION_CONTROL3] = ModelerControl("Division Control3", 0, 2, 0.2, 1);
	controls[DIVISION_CONTROL4] = ModelerControl("Division Control4", 0, 2, 0.2, 1);

	//particle source controls

	controls[PS_EMIT_1] = ModelerControl("PS_EMIT_1", 0, 1, 0.1, 1);
	controls[PS_NUM_1] = ModelerControl("PS_NUM_1", 0, 5, 1, 1);
	controls[PS_ANGLE_1] = ModelerControl("PS_ANGLE_1", 0, 180, 1, 10);
	
	controls[PS_EMIT_2] = ModelerControl("PS_EMIT_2", 0, 1, 0.1, 1);
	controls[PS_NUM_2] = ModelerControl("PS_NUM_2", 0, 5, 1, 1);
	controls[PS_ANGLE_2] = ModelerControl("PS_ANGLE_2", 0, 180, 1, 10);
	
	controls[PS_EMIT_3] = ModelerControl("PS_EMIT_3", 0, 1, 0.1, 1);
	controls[PS_NUM_3] = ModelerControl("PS_NUM_3", 0, 5, 1, 1);
	controls[PS_ANGLE_3] = ModelerControl("PS_ANGLE_3", 0, 180, 1, 10);

	controls[PS_LIFE] = ModelerControl("PS_LIFE", 0, 10.0, 0.1, 3.0);

	controls[PS_GRAVITY] = ModelerControl("PS_GRAVITY", 0, 20, 1, 10);


    ModelerApplication::Instance()->Init(&createSampleModel, controls, NUMCONTROLS);
	ModelerApplication::Instance()->SetParticleSystem(&ParticleSystem::Instance());
    return ModelerApplication::Instance()->Run();
}
示例#7
0
文件: main.cpp 项目: nkming2/Modeler
int main()
{
	// Initialize the controls
	// Constructor is ModelerControl(name, minimumvalue, maximumvalue,
	// stepsize, defaultvalue)
    ModelerControl controls[(int)ModelControls::NUMCONTROLS];
    controls[(int)ModelControls::SHOW_AXES] = ModelerControl(
    		"Show XYZ Axes", 0, 1, 1, 0);

    controls[(int)ModelControls::LIGHT0_X] = ModelerControl(
    		"Light0 X", -10.0f, 10.0f, 0.05f, 4.0f);
    controls[(int)ModelControls::LIGHT0_Y] = ModelerControl(
    		"Light0 Y", -10.0f, 10.0f, 0.05f, 2.0f);
    controls[(int)ModelControls::LIGHT0_Z] = ModelerControl(
    		"Light0 Z", -10.0f, 10.0f, 0.05f, -4.0f);
    controls[(int)ModelControls::LIGHT0_R] = ModelerControl(
    		"Light0 R", 0.0f, 1.0f, 0.01f, 1.0f);
    controls[(int)ModelControls::LIGHT0_G] = ModelerControl(
    		"Light0 G", 0.0f, 1.0f, 0.01f, 1.0f);
    controls[(int)ModelControls::LIGHT0_B] = ModelerControl(
    		"Light0 B", 0.0f, 1.0f, 0.01f, 1.0f);
    controls[(int)ModelControls::LIGHT0_INTENSITY] = ModelerControl(
    		"Light0 Intensity", 0.0f, 3.0f, 0.01f, 1.0f);
    controls[(int)ModelControls::LIGHT0_SPECULAR] = ModelerControl(
    		"Light0 Specular", 0, 1, 1, 1);

    controls[(int)ModelControls::LIGHT1_X] = ModelerControl(
    		"Light1 X", -10.0f, 10.0f, 0.05f, -2.0f);
    controls[(int)ModelControls::LIGHT1_Y] = ModelerControl(
    		"Light1 Y", -10.0f, 10.0f, 0.05f, 1.0f);
    controls[(int)ModelControls::LIGHT1_Z] = ModelerControl(
    		"Light1 Z", -10.0f, 10.0f, 0.05f, 5.0f);
    controls[(int)ModelControls::LIGHT1_R] = ModelerControl(
    		"Light1 R", 0.0f, 1.0f, 0.01f, 1.0f);
    controls[(int)ModelControls::LIGHT1_G] = ModelerControl(
    		"Light1 G", 0.0f, 1.0f, 0.01f, 1.0f);
    controls[(int)ModelControls::LIGHT1_B] = ModelerControl(
    		"Light1 B", 0.0f, 1.0f, 0.01f, 1.0f);
    controls[(int)ModelControls::LIGHT1_INTENSITY] = ModelerControl(
    		"Light1 Intensity", 0.0f, 3.0f, 0.01f, 1.0f);
    controls[(int)ModelControls::LIGHT1_SPECULAR] = ModelerControl(
    		"Light1 Specular", 0, 1, 1, 0);

    controls[(int)ModelControls::DETALS] = ModelerControl(
    		"Model Details", 0, 10, 1, 10);
    controls[(int)ModelControls::BOXIFY] = ModelerControl(
    		"Boxify", 0, 1, 1, 0);
    controls[(int)ModelControls::PRESETS] = ModelerControl(
    		"Presets", 0, 1, 1, 0);

    controls[(int)ModelControls::XPOS] = ModelerControl(
    		"Pos X", -5.0f, 5.0f, 0.05f, 0.0f);
    controls[(int)ModelControls::YPOS] = ModelerControl(
    		"Pos Y", -5.0f, 5.0f, 0.05f, 0.0f);
    controls[(int)ModelControls::ZPOS] = ModelerControl(
    		"Pos Z", -5.0f, 5.0f, 0.05f, 0.0f);

    controls[(int)ModelControls::HEIGHT] = ModelerControl(
    		"Height", 0.5f, 2.0f, 0.05f, 1.0f);

	controls[(int)ModelControls::ROT_H] = ModelerControl(
			"H", -180, 180, 1, 0);
	controls[(int)ModelControls::ROT_P] = ModelerControl(
			"P", -180, 180, 1, 0);
	controls[(int)ModelControls::ROT_B] = ModelerControl(
			"B", -180, 180, 1, 0);

	controls[(int)ModelControls::DIFFUSE_R] = ModelerControl(
			"Diffuse R", 0.0f, 1.0f, 0.01f, 0.1f);
	controls[(int)ModelControls::DIFFUSE_G] = ModelerControl(
			"Diffuse G", 0.0f, 1.0f, 0.01f, 0.75f);
	controls[(int)ModelControls::DIFFUSE_B] = ModelerControl(
			"Diffuse B", 0.0f, 1.0f, 0.01f, 0.95f);

	controls[(int)ModelControls::ANIMATION] = ModelerControl(
			"Animation", 0, 1, 1, 0);
	controls[(int)ModelControls::ANIMATION_1_FRAME] = ModelerControl(
			"Animation 1 Frame", 0, AnimationController::kDuration - 1, 1, 0);

	controls[(int)ModelControls::CROTCH_ENABLE] = ModelerControl(
			"Crotch Enable", 0, 1, 1, 0);
	controls[(int)ModelControls::CROTCH] = ModelerControl(
			"Crotch", 0, 100, 1, 0);

    controls[(int)ModelControls::GLASS_ENABLE] = ModelerControl(
    		"Wear Glass!", 0, 1, 1, 0);
	controls[(int)ModelControls::GLASS_P] = ModelerControl(
			"Glass P", -60, 0, 1, 0);

	controls[(int)ModelControls::HEAD_H] = ModelerControl(
			"Head H", -50, 50, 1, 0);
	controls[(int)ModelControls::HEAD_P] = ModelerControl(
			"Head P", -20, 40, 1, 0);
	controls[(int)ModelControls::HEAD_B] = ModelerControl(
			"Head B", -25, 25, 1, 0);

	controls[(int)ModelControls::SHOULDER_L_H] = ModelerControl(
			"Shoulder(L) H", -70, 10, 1, 0);
	controls[(int)ModelControls::SHOULDER_L_P] = ModelerControl(
			"Shoulder(L) P", -80, 80, 1, 0);
	controls[(int)ModelControls::SHOULDER_L_B] = ModelerControl(
			"Shoulder(L) B", -80, 80, 1, 0);
	controls[(int)ModelControls::FOREARM_L_P] = ModelerControl(
			"Forearm(L) P", 0, 140, 1, 0);
	controls[(int)ModelControls::FOREARM_L_B] = ModelerControl(
			"Forearm(L) B", 0, 140, 1, 0);

	controls[(int)ModelControls::SHOULDER_R_H] = ModelerControl(
			"Shoulder(R) H", -10, 70, 1, 0);
	controls[(int)ModelControls::SHOULDER_R_P] = ModelerControl(
			"Shoulder(R) P", -80, 80, 1, 0);
	controls[(int)ModelControls::SHOULDER_R_B] = ModelerControl(
			"Shoulder(R) B", -80, 80, 1, 0);
	controls[(int)ModelControls::FOREARM_R_P] = ModelerControl(
			"Forearm(R) P", 0, 140, 1, 0);
	controls[(int)ModelControls::FOREARM_R_B] = ModelerControl(
			"Forearm(R) B", -140, 0, 1, 0);

	controls[(int)ModelControls::WHIST_H] = ModelerControl(
			"Whist H", -35, 35, 1, 0);
	controls[(int)ModelControls::WHIST_P] = ModelerControl(
			"Whist P", -20, 100, 1, 0);
	controls[(int)ModelControls::WHIST_B] = ModelerControl(
			"Whist B", -35, 35, 1, 0);

	controls[(int)ModelControls::THIGH_L_H] = ModelerControl(
			"Thigh(L) H", -80, 0, 1, 0);
	controls[(int)ModelControls::THIGH_L_P] = ModelerControl(
			"Thigh(L) P", -140, 90, 1, 0);
	controls[(int)ModelControls::THIGH_L_B] = ModelerControl(
			"Thigh(L) B", -10, 90, 1, 0);
	controls[(int)ModelControls::SHIN_L_P] = ModelerControl(
			"Shin(L) P", 0, 140, 1, 0);

	controls[(int)ModelControls::THIGH_R_H] = ModelerControl(
			"Thigh(R) H", 0, 80, 1, 0);
	controls[(int)ModelControls::THIGH_R_P] = ModelerControl(
			"Thigh(R) P", -140, 90, 1, 0);
	controls[(int)ModelControls::THIGH_R_B] = ModelerControl(
			"Thigh(R) B", -90, 10, 1, 0);
	controls[(int)ModelControls::SHIN_R_P] = ModelerControl(
			"Shin(R) P", 0, 140, 1, 0);

	controls[(int)ModelControls::BOOK_ENABLE] = ModelerControl(
			"Book Enable", 0, 1, 1, 0);
	controls[(int)ModelControls::BOOK_X] = ModelerControl(
			"Book X", -20.0f, 20.0f, 0.05f, 0.0f);
	controls[(int)ModelControls::BOOK_Y] = ModelerControl(
			"Book Y", -20.0f, 20.0f, 0.05f, 3.0f);
	controls[(int)ModelControls::BOOK_Z] = ModelerControl(
			"Book Z", -20.0f, 20.0f, 0.05f, 6.0f);
	controls[(int)ModelControls::BOOK_H] = ModelerControl(
			"Book H", -180, 180, 1, 0);
	controls[(int)ModelControls::BOOK_P] = ModelerControl(
			"Book P", -180, 180, 1, 30);
	controls[(int)ModelControls::BOOK_B] = ModelerControl(
			"Book B", -180, 180, 1, 0);
	controls[(int)ModelControls::BOOK_SCALE_X] = ModelerControl(
			"Book Scale X", -0.5f, 3.0f, 0.01f, 1.0f);
	controls[(int)ModelControls::BOOK_SCALE_Y] = ModelerControl(
			"Book Scale Y", -0.5f, 3.0f, 0.01f, 1.0f);
	controls[(int)ModelControls::BOOK_SCALE_Z] = ModelerControl(
			"Book Scale Z", -0.5f, 3.0f, 0.01f, 1.0f);

	controls[(int)ModelControls::FPLANT_ENABLE] = ModelerControl(
			"Fractal Plant Enable", 0, 1, 1, 0);
	controls[(int)ModelControls::FPLANT_N] = ModelerControl(
			"Fractal Plant n (#recursion)", 1, 6, 1, 3);
	controls[(int)ModelControls::FPLANT_STEM_Z] = ModelerControl(
			"Fractal Plant Stem Length", 0.1f, 2.0f, 0.05f, 0.25f);
	controls[(int)ModelControls::FPLANT_STEM_R] = ModelerControl(
			"Fractal Plant Stem Radius", 0.05f, 2.0f, 0.05f, 0.1f);
	controls[(int)ModelControls::FPLANT_ENABLE_RANDOM_PB] = ModelerControl(
			"Fractal Plant Enable Random PB (branch)", 0, 1, 1, 0);
	controls[(int)ModelControls::FPLANT_RANDOM_PB_SEED] = ModelerControl(
			"Fractal Plant Random PB Seed", 0, UINT_MAX, 1, 0);
	controls[(int)ModelControls::FPLANT_X] = ModelerControl(
			"Fractal Plant X", -20.0f, 20.0f, 0.05f, -10.0f);
	controls[(int)ModelControls::FPLANT_Y] = ModelerControl(
			"Fractal Plant Y", -20.0f, 20.0f, 0.05f, -17.2f);
	controls[(int)ModelControls::FPLANT_Z] = ModelerControl(
			"Fractal Plant Z", -20.0f, 20.0f, 0.05f, -10.0f);
	controls[(int)ModelControls::FPLANT_H] = ModelerControl(
			"Fractal Plant H", -180, 180, 1, 0);
	controls[(int)ModelControls::FPLANT_P] = ModelerControl(
			"Fractal Plant P", -180, 180, 1, -90);
	controls[(int)ModelControls::FPLANT_B] = ModelerControl(
			"Fractal Plant B", -180, 180, 1, 0);
	controls[(int)ModelControls::FPLANT_SCALE_X] = ModelerControl(
			"Fractal Plant Scale X", -0.5f, 3.0f, 0.01f, 1.0f);
	controls[(int)ModelControls::FPLANT_SCALE_Y] = ModelerControl(
			"Fractal Plant Scale Y", -0.5f, 3.0f, 0.01f, 1.0f);
	controls[(int)ModelControls::FPLANT_SCALE_Z] = ModelerControl(
			"Fractal Plant Scale Z", -0.5f, 3.0f, 0.01f, 1.0f);

    ModelerApplication::Instance()->Init(&createMyModel, controls,
    		(int)ModelControls::NUMCONTROLS);
    InitPresets();

    return ModelerApplication::Instance()->Run();
}
示例#8
0
int main()
{
	// Initialize the controls
	// Constructor is ModelerControl(name, minimumvalue, maximumvalue, stepsize, defaultvalue)
	ModelerControl controls[NUMCONTROLS];
	controls[XPOS] = ModelerControl("X Position", -5, 5, 0.1f, 0);
	controls[YPOS] = ModelerControl("Y Position", 0, 5, 0.1f, 0);
	controls[ZPOS] = ModelerControl("Z Position", -5, 5, 0.1f, 0);
	controls[RIGHTARMX] = ModelerControl("Right Arm Angle X", 0, 360, 1, 0);
	controls[RIGHTARMY] = ModelerControl("Right Arm Angle Y", 0, 360, 1, 0);
	controls[RIGHTARMZ] = ModelerControl("Right Arm Angle Z", 0, 360, 1, 0);
	controls[RIGHTELBOWX] = ModelerControl("Right Elbow Angle X", 0, 180, 1, 0);
	controls[RIGHTELBOWY] = ModelerControl("Spin Right Elbow", 0, 360, 1, 0);
	controls[RIGHTHANDX] = ModelerControl("Right Hand Angle X", 90, -90, 1, 0);
	controls[LEFTARMX] = ModelerControl("Left Arm Angle X", 0, 360, 1, 0);
	controls[LEFTARMY] = ModelerControl("Left Arm Angle Y", 0, 360, 1, 0);
	controls[LEFTARMZ] = ModelerControl("Left Arm Angle Z", 0, 360, 1, 0);
	controls[LEFTELBOWX] = ModelerControl("Left Elbow Angle X", 0, 180, 1, 0);
	controls[LEFTELBOWY] = ModelerControl("Spin Left Elbow", 0, 360, 1, 0);
	controls[LEFTHANDX] = ModelerControl("Left Hand Angle X", 90, -90, 1, 0);
	controls[LEFTLEGX] = ModelerControl("Left Leg Angle X", -60, 60, 1, 0);
	controls[LEFTLEGZ] = ModelerControl("Left Leg Angle Z", -80, 80, 1, 0);
	controls[RIGHTLEGX] = ModelerControl("Right Leg Angle X", -60, 60, 1, 0);
	controls[RIGHTLEGZ] = ModelerControl("Right Leg Angle Z", -80, 80, 1, 0);
	controls[LEFTKNEE] = ModelerControl("Left Knee", 0, 15, 1, 0);
	controls[RIGHTKNEE] = ModelerControl("Right Knee", 0, 15, 1, 0);
	controls[TAILMOVEMENT] = ModelerControl("Tail Movement", 0, 100, 1, 0);
	controls[METABALLSKIN] = ModelerControl("Metaball Skin", 0, 1, 1, 0);
	controls[TEXTURESKIN] = ModelerControl("Texture Skin", 0, 1, 1, 0);
	controls[NINJATURTLE] = ModelerControl("Ninja Turtle", 0, 1, 1, 0);
	controls[EYEBANDANA] = ModelerControl("Eye Bandana", 0, 1, 1, 0);

	ModelerApplication::Instance()->Init(&createSampleModel, controls, NUMCONTROLS);

	// Hooking up the particle system
	ParticleSystem *ps = new ParticleSystem();
	ps->addFieldForce(Force(0.0, -1.0, 0.0));
	ModelerApplication::Instance()->SetParticleSystem(ps);

	return ModelerApplication::Instance()->Run();
}