/* Chloe Fan's OpenGL Piano and Bench Copyright (c) 2006 Chloe Fan This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. cfan2Piano(twTriple _pianoColor); Draws a black baby grand piano Can be placed in auditorium, living room, etc. Values are scaled based on the width of the piano, or affine transformations can be used to resize piano. The origin is on the bottom of the base of the piano, right above the legs, where the cover also matches up horizontally, and halfway through the width. This way, the legs are located on the negative y-axis, and the piano will be symmetrical. cfan2Bench(twTriple _pianoColor); Creates a matching bench for the piano. Symmetrical, origin under seat above legs, same as piano, and centered. */ void cfan2Piano(twTriple _pianoColor); void cfan2Bench(twTriple _pianoColor); // ================================================================ // *********** Ghost Object ************ //An OpenGL model of a ghost. //Copyright (C) 2006 by Eylul Dogruel/autumnus.net //This program is released under the GNU General Public Licence. //fully customazible ghost. //Ghost's handle is at the center of where the bottom surface would be //if ghost is perfectly straight. //All sizes and rotations are relative //for rotations 0 is always the default //1/-1 is the max/min values that can be kept for a normal looking figure //e.g. eyeRotateY=1 looks to right but eyeRotateY=1.5 has no visible iris //the angles are all relative to the previous piece. //e.g if chest rotates, everything below chest moves so that body in itself //is straight. If torso moves, chest remains in place but legs and hips move. //for sizes default proportions is always 1. //Height: height of the whole figure. Default is 1. (2 Units) //headHeight: height of the head. Default is 1. (1 unit) //headWidth: width of the head. Default is 1. (.8 unit) //neckAngle:XYZ rotation of the neck around the connection of chest and neck //headAngle: XYZ rotation of the head around the connection of neck and head //eyeRotateX: if eye is looking up or down //eyeRotateY: if eye is looking left or right //chestAngle: the XYZ rotation of chest around the connection of neck and chest //torsoAngle: the XYZ rot. of torso around the connection of chest and torso //hipAngle: the XYZ rot. of hip around the connection of torso and hips //legAngle: the XYZ rot. of legs around the connection of leg and hips //gColorSkin: RGB color of head and neck //gColorDress: color of the rest of the body //gColorEye: color of the eyeball //gColorIris: color of the iris of the eye //gColorHair: color of the hair //iRotationP: internal rotation point. The joint that stays fixed //while the rest of the pieces move depending on its position //this is a future addition. Only one option is implemented at the moment //0: Bottom (same as the handle) //1: knees (between legs and hips) //2: waist (between hips and torso) //3: center (between torso and chest) //4*: shoulders (between chest and neck) //5: chin (between neck and head) //6: top (above head) void eylul_Ghost( float Height, float headHeight, float headWidth, twTriple neckAngle, twTriple headAngle, float eyeRotateX, float eyeRotateY, twTriple chestAngle, twTriple torsoAngle, twTriple hipAngle, twTriple legAngle, twTriple gColorSkin, twTriple gColorDress, twTriple gColorEye, twTriple gColorIris, twTriple gColorHair, int iRotationP); // ================================================================ /* An OpenGL scene of a very crude deer in a forest. Copyright (C) 2006 by Agnes Chang This program is released under the GNU General Public License. Submitted for CS 307 Creative Scene Assignment Prototype for one scene in final project Based on show-object-natural.cc by Scott D. Anderson, Fall 2006 */ /* Draws a birch tree. The tree is 2 units high and ?? units wide and ?? units deep. The reference point is in the center of the bottom, so the tree is symmetrical around X and Z and starts at Y=0. */ void achangBirchMedium(bool printBB); // ================================================================ /* Need documentation and license info */ /* The table's bounding box is (-3.53, 3.75, 0.10,12.32,-3.64, 3.65) so it's about 7 units in diameter and 12 units high. Origin is essentially in the middle of the base of the table. */ void zkabayadTable(bool printBB); /* Bounding Box is (-5.01, 3.61,-9.77,26.14,-12.33,14.72) So it's about 8.6 units long, 35 units high, and 27 units deep. This object is unitized, though, so in practice it is 2 units high (on the y-axis), half a unit wide (on the x-axis) and 1.5 units deep (on z axis). The origin, of course, is in the center. Note that the normals for the sax polygons seem to be backwards, so that the light is reflected off the "back" side. Also, there's no ambient in the material, so unilluminated sides are dark. */ void zkabayadSax(bool printBB);