Standard base class for complex geometric objects. More...
#include <object.h>
Inherits rtl_subobject.
Inherited by rtl_box, rtl_csg, rtl_groupobj, rtl_jbt, rtl_plane, rtl_quadric, rtl_superellipsoid and rtl_torus.
This class provides the functionality for all objects that rays can intersect. Each object inheriting this class must implement:
Enumeration values:
Intersects a ray with this object. This function transforms the ray into object space and calls lclintersect.
Reimplemented from rtl_subobject.
Reimplemented in rtl_polyhedron and rtl_groupobj.
Returns the normal at the position of the last successfull intersection calculation.
Reimplemented from rtl_subobject.
[virtual]Returns the material for this object.
Reimplemented from rtl_subobject.
Reimplemented in rtl_polyhedron.
[virtual]Set the material for this object. This function should be overridden if an object is a container for other objects and the material should be passed down an hierarchy.
Reimplemented in rtl_polyhedron, rtl_cylinder and rtl_cone.
Return the transformation matrix for this object. This matrix transforms an object from object space to world space.
Return the inverse of the transformation matrix This matrix transforms an object from world space to object space.
[virtual]Return the point in object space of the last successful intersection calculation. This function will return the object space location in the CSG tree if the object is one, if the object is not a CSG tree then the return is identical to objectspace().
Set the bounding box for this object (in object space). This function should not be called after an object has been added to a rtl_world object.
Reimplemented from rtl_subobject.
Returns a unique id for the object in the scene that it is in.
Scales this object by the given vector, should not be called after the object has been added to a rtl_world.
Translates this object by the given vector, should not be called after the object has been added to a rtl_world.
Rotates this object about the given axis by the given degrees, should not be called after the object has been added to a rtl_world.
[virtual]Computes a 2D parameterization of the surface for the given position. This function should be overridden or texturing will not be appropriate.
Reimplemented in rtl_torus, rtl_sphere, rtl_polyhedron, rtl_plane, rtl_jbt, rtl_floor, rtl_cylinder, rtl_csg and rtl_cone.
Returns true if this object intersects with the given bounding box.
Reimplemented from rtl_subobject.
Reimplemented in rtl_polyhedron.
[virtual]Return the point in object space of the last successful intersection calculation. This function will return the object space location of the primitive struck if the object is a CSG tree.
Reimplemented in rtl_csg.
[virtual]Sets the transformation for the object. This function should only be called by class rtl_world when the object is added to the scene. It also sets the bounding box for the scene and so forth.
[virtual]
Reimplemented in rtl_torus, rtl_superellipsoid, rtl_sphere, rtl_soft, rtl_polyhedron, rtl_jbt, rtl_floor, rtl_cylinder, rtl_csg, rtl_cone and rtl_box.
[protected]
[protected, virtual]
Reimplemented in rtl_csg.
[protected, pure virtual]
Reimplemented in rtl_torus, rtl_superellipsoid, rtl_soft, rtl_quadric, rtl_plane, rtl_jbt, rtl_infcone, rtl_groupobj, rtl_floor, rtl_csg and rtl_box.
[protected, pure virtual]
Reimplemented in rtl_torus, rtl_superellipsoid, rtl_sphere, rtl_soft, rtl_plane, rtl_jbt, rtl_infcylinder, rtl_infcone, rtl_groupobj, rtl_csg and rtl_box.
[protected, virtual]
Reimplemented in rtl_csg.
[protected, virtual]
Reimplemented in rtl_quadric, rtl_csg and rtl_box.
[static]
[static]
[static]
[protected]
[protected]
[protected]
[protected]
Reimplemented in rtl_groupobj.
[protected]
[protected]
Reimplemented from rtl_subobject.
[protected]