Inheritance diagram for RayShape:
Public Member Functions | |
virtual void | write (int indent, FILE *fp=stdout)=0 |
virtual double | intersect (Ray3D ray, struct RayIntersectionInfo &iInfo, double mx=-1)=0 |
virtual BoundingBox3D | setBoundingBox (void)=0 |
virtual void | setUpOpenGL (int cplx, int setCallList)=0 |
virtual int | drawOpenGL (int materialIndex)=0 |
virtual int | isStatic (void) |
Public Attributes | |
BoundingBox3D | bBox |
int | openGLCallListID |
int | openGLComplexity |
|
This method calls the necessary OpenGL commands to render the primitive. Implemented in RayBox, RayCone, RayCylinder, RayFileInstance, RayGroup, RaySphere, and RayTriangle. |
|
This method computes the intersection of the shape with the ray. If the ray hits the shape and either mx is less than zero or the intersection occurs at a distance less than t along the ray the intersection information in iInfo is set and a value greater than 0 is returned. Otherwise, -1 is returned. (This is useful for shadow testing when you may want to ignore hits beyond a certain distance). Either way the isectCounter is incremented by one. Implemented in RayBox, RayCone, RayCylinder, RayFileInstance, RayGroup, RaySphere, and RayTriangle. |
|
This method returns a value of 1 if the RayShape's geometry doesn't change. Reimplemented in RayFileInstance, StaticRayGroup, and ParametrizedRayGroup. |
|
This method sets and returns a bounding box containing the shape. Implemented in RayBox, RayCone, RayCylinder, RayFileInstance, RayGroup, RaySphere, and RayTriangle. |
|
This method sets up all the stuff that's necessary prior to OpenGL rendering. The value cplx represents the desired resolution of tessalation for objects such as spheres, cylinders, etc.. Implemented in RayBox, RayCone, RayCylinder, RayFileInstance, RayGroup, RaySphere, and RayTriangle. |
|
This method writes the RayShape out to a .ray file, indenting the output by the specified amount. If no file is specified, the information gets written to stdout. Implemented in RayBox, RayCone, RayCylinder, RayFileInstance, RayGroup, RaySphere, and RayTriangle. |
|
The bounding box of the shape |
|
The OpenGL call list identifier |
|
The complexity for the rasterization of the shape |