#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