libjbt

ngnode.h

This is the verbatim text of the ngnode.h include file.

#ifndef jbt_ngnode_h
#define jbt_ngnode_h

#include "blobtree.h"


class jbt_ngnode : public jbt_blobtree
{
public:
  
    ~jbt_ngnode();


    void setChild( jbt_blobtree* _child ) { child = _child; }
  

    jbt_blobtree* getChild() { return child; }


    const jbt_blobtree* getChild() const { return child; }

    void computeBound();


protected:
    

    jbt_ngnode( jbt_blobtree* );
  

    jbt_blobtree* child;
    
    void field( jFlt& );
    void normal( jNorm3& );
    void attribute( jbt_attribute* );
    void attributes( jbt_diffuse*, jbt_specular*, 
                     jbt_scalar*, jbt_scalar*, jbt_scalar* );
    void uv( jVec2&, jbt_blobtree*, const jMat4& );
    void bracket( const jRay&, jbt_brackets& );
    void seedPoints( jVec3list& ) const;
    bool spanCSG( const jVec3&, const jVec3& );
    jgl_algebraic* expression( const jMat4& _T ) const 
        { return child->expression(_T); }
    jNorm3 repulse();
    
    void beginQuery( const jVec3& );


    jbt_blobtree::Type type() const { return jbtNonGeometric; }
};

#endif

JSP / libjbt v0.1 mtigges@cpsc.ucalgary.ca