libjbt

square.h

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

#ifndef jbt_square_h
#define jbt_square_h

#include "primitive.h"


class jbt_square : public jbt_primitive
{
public:

    jbt_square( jFlt xr = 1.0, jFlt zr = 1.0, jFlt field_radius = 1.0 );
    
    jbt_object::Type type() const { return jbt_object::jbtSquare; }


    jFlt getSquareXRadius() const { return x_radius; }


    void setSquareXRadius( jFlt dr ) { x_radius = dr; }


    jFlt getSquareZRadius() const { return x_radius; }


    void setSquareZRadius( jFlt dr ) { z_radius = dr; }

private:

    jVec3 displacement();
    void bracket( const jRay&, jbt_brackets& );
    void computeBound();
    void precompute();
    void seedPoints( jVec3list& ) const;
    jVec2 uvl( const jVec3& );
    
    jFlt x_radius, z_radius;
    bool in;
    jVec3 square_pt;
};


#endif

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