Main Page | Class Hierarchy | Class List | File List | Class Members

SurfacePatch3D Class Reference

#include <surfacepatch3d.h>

Inheritance diagram for SurfacePatch3D:

Object3D TrianglePatch Box Cylinder Isosurface ObjectContainer Plane Sphere List of all members.

Public Member Functions

virtual SurfacePatch3Dduplicate () const =0
virtual bool hasFinitBounding () const =0
virtual Vector3 getBoundingMin () const =0
virtual Vector3 getBoundingMax () const =0
virtual void prepareToRender ()
virtual DBL intersectBounding (const Ray &r) const =0
virtual DBL intersectBounding (const Ray &r, DBL tmax) const =0
virtual Intersectionintersect (const Ray &r) const
virtual IntersectionintersectLimitedTime (const Ray &r, DBL maxtime) const =0

Detailed Description

A piece of surface.
Author:
Micha Riser


Member Function Documentation

virtual SurfacePatch3D* SurfacePatch3D::duplicate  )  const [pure virtual]
 

Create a duplicate of the object. Must be of the same type!

Returns:
An exact duplicate of the object.

Implemented in Box, Cylinder, Isosurface, Plane, Sphere, and TrianglePatch.

virtual Vector3 SurfacePatch3D::getBoundingMax  )  const [pure virtual]
 

Get bounding dimension (maximum edge).

Implemented in Box, Object3D, Sphere, and TrianglePatch.

virtual Vector3 SurfacePatch3D::getBoundingMin  )  const [pure virtual]
 

Get bounding dimension (minimum edge).

Implemented in Box, Object3D, Sphere, and TrianglePatch.

virtual bool SurfacePatch3D::hasFinitBounding  )  const [pure virtual]
 

Returns true if the surface can be enclosed by a finit box.

Implemented in Box, Object3D, Sphere, and TrianglePatch.

Intersection * SurfacePatch3D::intersect const Ray r  )  const [virtual]
 

Intersect object with ray.

Parameters:
r the Ray
Returns:
0 if no intersection else Intersection object

Reimplemented in Object3D.

virtual DBL SurfacePatch3D::intersectBounding const Ray r,
DBL  tmax
const [pure virtual]
 

Intersect Bounding with Ray limited to maximum time.

Parameters:
r the Ray
tmax Maximum intersection time.
Returns:
-1 if no intersection, INTERSECTION_TIME_EPSILON if Ray's origin is inside the bounding. Otherwise it returns the time of first intersection with box.

Implemented in Object3D, and TrianglePatch.

virtual DBL SurfacePatch3D::intersectBounding const Ray r  )  const [pure virtual]
 

Intersect Bounding with Ray.

Parameters:
r the Ray
Returns:
-1 if no intersection, INTERSECTION_TIME_EPSILON if Ray's origin is inside the bounding. Otherwise it returns the time of first intersection with box.

Implemented in Object3D, and TrianglePatch.

virtual Intersection* SurfacePatch3D::intersectLimitedTime const Ray r,
DBL  maxtime
const [pure virtual]
 

Intersect object with ray limited to maximum time.

Parameters:
r the Ray
maxtime maximal intersecting time
Returns:
0 if no intersection else Intersection object

Implemented in Object3D, and TrianglePatch.

virtual void SurfacePatch3D::prepareToRender  )  [inline, virtual]
 

Prepare object for render process. Some optimisations can be done only before the rendering starts. This is the method that is to be called just before doing so. The object has to be tolerant against multiple calls of this method.

Reimplemented in ObjectContainer.


The documentation for this class was generated from the following files:
Generated on Thu Jan 27 12:16:07 2005 for raytracer.kdevelop by doxygen 1.3.8