Assembly *GraspGLObjects::CreateTorso( void ) { Assembly *torso = new Assembly(); Slab *slab = new Slab( torso_shape[X], torso_shape[Y], torso_shape[Z] ); slab->SetColor( 0.1f, 0.4f, 0.0f ); torso->AddComponent( slab ); Disk *disk = new Disk( 50.0 ); disk->SetPosition( 0.0, 0.0, -40.0 ); disk->SetColor( 1.0f, 0.7f, 0.0f ); torso->AddComponent( disk ); return torso; }
MeterStick::MeterStick( void ) { double stick_radius = 25.0; Cylinder *cylinder; Disk *disk; cylinder = new Cylinder( stick_radius, stick_radius, 200.0 ); cylinder->SetColor( RED ); AddComponent( cylinder ); cylinder = new Cylinder( stick_radius, stick_radius, 200.0 ); cylinder->SetOffset( 0.0, 0.0, 200.0 ); cylinder->SetColor( WHITE ); AddComponent( cylinder ); cylinder = new Cylinder( stick_radius, stick_radius, 200.0 ); cylinder->SetOffset( 0.0, 0.0, 400.0 ); cylinder->SetColor( RED ); AddComponent( cylinder ); cylinder = new Cylinder( stick_radius, stick_radius, 200.0 ); cylinder->SetOffset( 0.0, 0.0, 600.0 ); cylinder->SetColor( WHITE ); AddComponent( cylinder ); cylinder = new Cylinder( stick_radius, stick_radius, 200.0 ); cylinder->SetOffset( 0.0, 0.0, 800.0 ); cylinder->SetColor( RED ); AddComponent( cylinder ); cylinder = new Cylinder( stick_radius / 2.0, stick_radius / 2.0, 100.0 ); cylinder->SetAttitude( 90.0, j_vector ); cylinder->SetColor( BLACK ); AddComponent( cylinder ); cylinder = new Cylinder( stick_radius / 2.0, stick_radius / 2.0, 100.0 ); cylinder->SetAttitude( 90.0, j_vector ); cylinder->SetPosition( 0.0, 0.0, 1000.0 - stick_radius ); cylinder->SetColor( BLACK ); AddComponent( cylinder ); disk = new Disk( stick_radius ); disk->SetPosition( 0.0, 0.0, 990.0 ); disk->SetColor( RED ); AddComponent( disk ); }