SlidingDoors::SlidingDoors ( double room_width, double room_height, double thickness ) { Slab *slab; this->room_width = room_width; this->room_height = room_height; // Panels left_panel = new Assembly(); slab = new Slab( room_width, room_height * 5.0, thickness ); left_panel->AddComponent( slab ); slab = new Slab( HANDLE_SIZE, room_height * 5.0, HANDLE_SIZE ); slab->SetOffset( room_width / 2.0 - HANDLE_SIZE / 2.0, 0.0, thickness / 2.0 + HANDLE_SIZE ); slab->SetColor( RED ); left_panel->AddComponent( slab ); left_panel->SetOffset( - room_width / 2.0, room_height / 2.0, 0.0 ); AddComponent( left_panel ); right_panel = new Assembly(); slab = new Slab( room_width, room_height * 5.0, thickness ); right_panel->AddComponent( slab ); right_panel->SetOffset( room_width / 2, room_height / 2.0, 0.0 ); slab = new Slab( HANDLE_SIZE, room_height * 5.0, HANDLE_SIZE ); slab->SetOffset( - room_width / 2.0 + HANDLE_SIZE / 2.0, 0.0, thickness / 2.0 + HANDLE_SIZE ); slab->SetColor( RED ); right_panel->AddComponent( slab ); AddComponent( right_panel ); SetPosition( 0.0, 0.0, 0.0 ); SetColor( bulkhead_color ); }
Dial::Dial ( void ) { thickness = 10.0; radius = 100.0; tilt = 30.0; label_width = 50.0; Slab *slab; Disk *disk; Cylinder *cylinder; Patch *rectangle; char path[1024]; sprintf( path, "%s%s", AfdTexturePath, "bmp\\ten.bmp" ); ten_texture = new Texture( path, label_width / 2.0, label_width / 2.0 ); sprintf( path, "%s%s", AfdTexturePath, "bmp\\five.bmp" ); five_texture = new Texture( path, label_width / 2.0, label_width / 2.0 ); sprintf( path, "%s%s", AfdTexturePath, "bmp\\zero.bmp" ); zero_texture = new Texture( path, label_width / 2.0, label_width / 2.0 ); sprintf( path, "%s%s", AfdTexturePath, "bmp\\meters.bmp" ); meters_texture = new Texture( path, label_width * 2.0, label_width / 2.0 ); needle = new Slab( thickness / 4.0, 0.90 * radius, thickness / 2.0 ); needle->SetOffset( 0.0, radius / 2.0, thickness / 2.0 ); needle->SetColor( ORANGE ); AddComponent( needle ); rectangle = new Patch( label_width / 2.0 , label_width / 2.0 ); rectangle->SetPosition( radius + label_width / 2.0, 0.0, 0.0 ); rectangle->SetTexture( ten_texture ); AddComponent( rectangle ); rectangle = new Patch( label_width / 2.0 , label_width / 2.0 ); rectangle->SetPosition( 0.0, radius + label_width / 2.0, 0.0 ); rectangle->SetTexture( five_texture ); AddComponent( rectangle ); rectangle = new Patch( label_width / 2.0 , label_width / 2.0 ); rectangle->SetPosition( - ( radius + label_width / 2.0 ), 0.0, 0.0 ); rectangle->SetTexture( zero_texture ); AddComponent( rectangle ); rectangle = new Patch( 2 * label_width , label_width / 2.0 ); rectangle->SetPosition( 0.0, - radius - label_width / 2.0, 0.0 ); rectangle->SetTexture( meters_texture ); // AddComponent( rectangle ); slab = new Slab( thickness / 6.0, radius / 5.0, thickness / 4.0 ); slab->SetOffset( 0.0, radius / 2.0 + radius * 4.0 / 10.0, thickness / 2.0 ); slab->SetOrientation( -18.0, k_vector ); slab->SetColor( BLACK ); AddComponent( slab ); slab = new Slab( thickness / 6.0, radius / 5.0, thickness / 4.0 ); slab->SetOffset( 0.0, radius / 2.0 + radius * 4.0 / 10.0, thickness / 2.0 ); slab->SetOrientation( -36.0, k_vector ); slab->SetColor( BLACK ); AddComponent( slab ); slab = new Slab( thickness / 6.0, radius / 5.0, thickness / 4.0 ); slab->SetOffset( 0.0, radius / 2.0 + radius * 4.0 / 10.0, thickness / 2.0 ); slab->SetOrientation( -54.0, k_vector ); slab->SetColor( BLACK ); AddComponent( slab ); slab = new Slab( thickness / 6.0, radius / 5.0, thickness / 4.0 ); slab->SetOffset( 0.0, radius / 2.0 + radius * 4.0 / 10.0, thickness / 2.0 ); slab->SetOrientation( -72.0, k_vector ); slab->SetColor( BLACK ); AddComponent( slab ); slab = new Slab( thickness / 6.0, radius / 5.0, thickness / 4.0 ); slab->SetOffset( 0.0, radius / 2.0 + radius * 4.0 / 10.0, thickness / 2.0 ); slab->SetOrientation( -90.0, k_vector ); slab->SetColor( BLACK ); AddComponent( slab ); slab = new Slab( thickness / 6.0, radius / 5.0, thickness / 4.0 ); slab->SetOffset( 0.0, radius / 2.0 + radius * 4.0 / 10.0, thickness / 2.0 ); slab->SetColor( BLACK ); AddComponent( slab ); slab = new Slab( thickness / 6.0, radius / 5.0, thickness / 4.0 ); slab->SetOffset( 0.0, radius / 2.0 + radius * 4.0 / 10.0, thickness / 2.0 ); slab->SetOrientation( 18.0, k_vector ); slab->SetColor( BLACK ); AddComponent( slab ); slab = new Slab( thickness / 6.0, radius / 5.0, thickness / 4.0 ); slab->SetOffset( 0.0, radius / 2.0 + radius * 4.0 / 10.0, thickness / 2.0 ); slab->SetOrientation( 36.0, k_vector ); slab->SetColor( BLACK ); AddComponent( slab ); slab = new Slab( thickness / 6.0, radius / 5.0, thickness / 4.0 ); slab->SetOffset( 0.0, radius / 2.0 + radius * 4.0 / 10.0, thickness / 2.0 ); slab->SetOrientation( 54.0, k_vector ); slab->SetColor( BLACK ); AddComponent( slab ); slab = new Slab( thickness / 6.0, radius / 5.0, thickness / 4.0 ); slab->SetOffset( 0.0, radius / 2.0 + radius * 4.0 / 10.0, thickness / 2.0 ); slab->SetOrientation( 72.0, k_vector ); slab->SetColor( BLACK ); AddComponent( slab ); slab = new Slab( thickness / 6.0, radius / 5.0, thickness / 4.0 ); slab->SetOffset( 0.0, radius / 2.0 + radius * 4.0 / 10.0, thickness / 2.0 ); slab->SetOrientation( 90.0, k_vector ); slab->SetColor( BLACK ); AddComponent( slab ); disk = new Disk( radius ); AddComponent( disk ); cylinder = new Cylinder( radius, radius, thickness ); AddComponent( cylinder ); SetColor( CYAN ); SetAttitude( tilt, i_vector ); minimum = 0.0; maximum = 10000; }