libjbt

jbt_csg Class Reference

Base class for CSG. More...

#include <csg.h>

Inherits jbt_compound.

Inherited by jbt_difference, jbt_intersection and jbt_union.

List of all members.

Protected Members


Detailed Description

Base class for CSG.

There is nothing to say here. You should never instance one of these except through the superclasses.

However, you cannot ask for equation(), the program will abort.


Member Enumeration Type Documentation

enum jbt_csg::Child [protected]

This variable is set to indicate if the contributing child is in the left or the right sub-tree.

Enumeration values:


Member Function Documentation

jbt_csg::jbt_csg() [protected]

jbt_blobtree* jbt_csg::contrib() [protected]

Finds the contributing object in the csg operation. This should be called by the sub-classes to cache the child object in the compound list which is defining the surface.

void jbt_csg::beginQuery( const jVec3& ) [protected]

Reimplemented from jbt_compound.

virtual bool jbt_csg::contrib( jFlt fv, jFlt cfv ) const = 0 [protected, pure virtual]

Given a childs field value fv, and the contributing field value cfv, return true if fv should replace cfv as the contributing field value.

Reimplemented in jbt_union, jbt_intersection and jbt_difference.

virtual jFlt jbt_csg::rightField( jFlt f ) const [protected, virtual]

Change the field value in the appropriate way for the csg operation.

Reimplemented in jbt_difference.

virtual bool jbt_csg::spanCSG( const jVec3&, const jVec3& b ) [protected, virtual]

Returns true if the two points span a CSG junction.

Reimplemented from jbt_compound.

void jbt_csg::field( jFlt& ) [protected]

Reimplemented from jbt_blobtree.

void jbt_csg::normal( jNorm3& ) [protected]

Reimplemented from jbt_blobtree.

Reimplemented in jbt_difference.

void jbt_csg::attribute( jbt_attribute* ) [protected]

Reimplemented from jbt_blobtree.

void jbt_csg::attributes( jbt_diffuse*, jbt_specular*, jbt_scalar*, jbt_scalar*, jbt_scalar* ) [protected]

Reimplemented from jbt_blobtree.

void jbt_csg::bracket( const jRay&, jbt_brackets& ) [protected]

Reimplemented from jbt_compound.

void jbt_csg::uv( jVec2&, jbt_blobtree*, const jMat4& ) [protected]

Reimplemented from jbt_object.

jNorm3 jbt_csg::repulse() [protected]

Reimplemented from jbt_object.


Member Data Documentation

enum jbt_csg::Child jbt_csg::child [protected]

This variable is set to indicate if the contributing child is in the left or the right sub-tree.


The documentation for this class was generated from the following file:
JSP / libjbt v0.1 mtigges@cpsc.ucalgary.ca