Hemisphere Class Reference

#include <Hemisphere.h>

Inheritance diagram for Hemisphere:

Sphere Geometry ESGObject List of all members.

Public Member Functions

 Hemisphere (const Vector3 &c, float r, const Vector3 &z, bool bfc=false)
 Hemisphere (const Vector3 &z, bool bfc=false)
 Hemisphere (bool bfc=false)
virtual void rayIntersection (PointEnv *pPE, int mask, const Vector3 &origin, const Vector3 &direction, float maxD=MAXFLOAT)
virtual bool mapToUV (const Vector3 &v, Vector2 &uv)
virtual void randomSample (int mask, PointEnv &pe, double *pdf)
virtual bool randomDirection (const Vector3 &pov, Vector3 &dir, double *pdf)
virtual Interval extent (const Vector3 &direction) const
virtual double radius (const Vector3 &centroid) const
virtual Geometryclone (const Matrix4 *pTrMat) const
virtual bool separation (Geometry &geom, Vector3 *pDir)
virtual double distance (const Geometry &geom, Vector3 *pDir)
virtual void dump (const char *intent, const char *tab)
Vector3 getZenith (void) const
void setZenith (const Vector3 &zenith)
Vector3 world2local3D (const Vector3 &dir) const
Vector2 world2local2D (const Vector3 &dir) const
Vector3 sampleUniformly (double elevationRand, double azimuthRand, double *pPDFval) const
Vector2 sampleUniformly2D (double elevationRand, double azimuthRand, double *pPDFval) const
Vector2 dir2uvUniformly (const Vector3 &dir) const
Vector3 samplePriorToZenith (double elevationRand, double azimuthRand, double *pPDFVal) const
Vector2 samplePriorToZenith2D (double elevationRand, double azimuthRand, double *pPDFVal) const
Vector2 dir2uvPriorToZenith (const Vector3 &dir) const
Vector3 samplePriorToPoweredZenith (double elevationRand, double azimuthRand, int power, double *pPDFVal) const
Vector2 samplePriorToPoweredZenith2D (double elevationRand, double azimuthRand, int power, double *pPDFVal) const
Vector2 dir2uvPriorToPoweredZenith (const Vector3 &dir, int power) const
Interval extent (float x, float y, float z) const
virtual Vector3 centroid (void) const
virtual double radius (void) const
Geometryclone (void) const
Vector3 centre (void) const
void setCentre (const Vector3 &)
void setCentre (float x, float y, float z)
void setRadius (float radius)
virtual void __debug ()
void insideOut (bool b)
Meshmesh (int density=0) const

Static Public Attributes

static const float EPS = 1e-03
 epsilon variation (tolerance) of zero

Protected Member Functions

virtual Mesh_mesh (int) const
virtual void _duplicate_attributes (const Geometry &)
virtual void _rotateX (float)
virtual void _rotateY (float)
virtual void _rotateZ (float)
virtual void _rotate (float, const Vector3 &)
virtual void _rotate (const Matrix3 &)
virtual void _transform (const Matrix4 &)
virtual void _translate (float, float, float)
void _translate (const Vector3 &v)
virtual void _scale (float)

Protected Attributes

Vector3 _xAxis
Vector3 _yAxis
Vector3 _zAxis
bool _backfaceCulling
float _radius
float _radius2
 _radius^2
double _epsPlus
 (_radius + Geometry::EPS)^2
double _epsMinus
 (_radius - Geometry::EPS)^2
Vector3 _centre
bool _insideOut

Detailed Description

uncapped hemisphere

Definition at line 14 of file Hemisphere.h.


Constructor & Destructor Documentation

Hemisphere const Vector3 c,
float  r,
const Vector3 z,
bool  bfc = false
 

Constructor

Parameters:
c centre
r radius
z direction to zenith
bfc whether to use backface culling

Definition at line 81 of file Hemisphere.cc.

References Hemisphere::_xAxis, Hemisphere::_yAxis, and Hemisphere::_zAxis.

Referenced by Hemisphere::clone().

Hemisphere const Vector3 z,
bool  bfc = false
 

Constructor - unit hemisphere in the origin

Parameters:
z direction to zenith
bfc whether to use backface culling

Definition at line 91 of file Hemisphere.cc.

References Hemisphere::_xAxis, Hemisphere::_yAxis, and Hemisphere::_zAxis.

Hemisphere bool  bfc = false  ) 
 

Constructor - unit hemisphere in the origin with (0,1,0) zenith

Parameters:
bfc whether to use backface culling

Definition at line 101 of file Hemisphere.cc.


Member Function Documentation

virtual void __debug void   )  [inline, virtual, inherited]
 

For debugging purposes

Reimplemented from Geometry.

Definition at line 145 of file Sphere.h.

void _duplicate_attributes const Geometry  )  [protected, virtual]
 

Reimplemented from Sphere.

Definition at line 11 of file Hemisphere.cc.

References Hemisphere::_backfaceCulling, Sphere::_duplicate_attributes(), Hemisphere::_xAxis, Hemisphere::_yAxis, and Hemisphere::_zAxis.

Referenced by Hemisphere::clone().

Mesh * _mesh int   )  const [protected, virtual]
 

Reimplemented from Sphere.

Definition at line 5 of file Hemisphere.cc.

void _rotate const Matrix3  )  [protected, virtual]
 

Reimplemented from Sphere.

Definition at line 60 of file Hemisphere.cc.

References Sphere::_centre, Hemisphere::_xAxis, Hemisphere::_yAxis, and Hemisphere::_zAxis.

void _rotate float  ,
const Vector3
[protected, virtual]
 

Reimplemented from Sphere.

Definition at line 50 of file Hemisphere.cc.

References Sphere::_centre, Hemisphere::_xAxis, Hemisphere::_yAxis, and Hemisphere::_zAxis.

void _rotateX float   )  [protected, virtual]
 

Reimplemented from Sphere.

Definition at line 20 of file Hemisphere.cc.

References Sphere::_centre, Hemisphere::_xAxis, Hemisphere::_yAxis, and Hemisphere::_zAxis.

void _rotateY float   )  [protected, virtual]
 

Reimplemented from Sphere.

Definition at line 30 of file Hemisphere.cc.

References Sphere::_centre, Hemisphere::_xAxis, Hemisphere::_yAxis, and Hemisphere::_zAxis.

void _rotateZ float   )  [protected, virtual]
 

Reimplemented from Sphere.

Definition at line 40 of file Hemisphere.cc.

References Sphere::_centre, Hemisphere::_xAxis, Hemisphere::_yAxis, and Hemisphere::_zAxis.

void _scale float   )  [protected, virtual, inherited]
 

Implements Geometry.

Definition at line 71 of file Sphere.cc.

References Sphere::_centre, Sphere::_epsMinus, Sphere::_epsPlus, Sphere::_radius, Sphere::_radius2, and Geometry::EPS.

void _transform const Matrix4  )  [protected, virtual]
 

Reimplemented from Sphere.

Definition at line 68 of file Hemisphere.cc.

References Sphere::_centre, Hemisphere::_xAxis, Hemisphere::_yAxis, and Hemisphere::_zAxis.

Referenced by Hemisphere::clone().

void _translate const Vector3 v  )  [inline, protected, inherited]
 

Definition at line 38 of file Geometry.h.

void _translate float  ,
float  ,
float 
[protected, virtual, inherited]
 

Implements Geometry.

Definition at line 61 of file Sphere.cc.

References Sphere::_centre.

Vector3 centre void   )  const [inline, inherited]
 

Returns:
centre of the sphere

Definition at line 123 of file Sphere.h.

Referenced by POVRayExporter::_write_sphere().

Vector3 centroid void   )  const [virtual, inherited]
 

Returns:
centroid (point of gravity) of the geometry

Implements Geometry.

Definition at line 400 of file Sphere.cc.

References Sphere::_centre.

Geometry* clone void   )  const [inline, inherited]
 

Duplicates geometry

Returns:
duplicate (clone)

Reimplemented in _Surface, and OSGPolygon.

Definition at line 155 of file Geometry.h.

Referenced by BVH::__get_edges(), BVH::__get_meshes(), ObjsInAreaExplorer::_accept_new_transformation(), SphereTree::_enlarge_bv(), FDHTree::_enlarge_bv(), BVExplorer::_iterate(), BVDistRot::BVDistRot(), and ObjsInAreaExplorer::ObjsInAreaExplorer().

Geometry * clone const Matrix4 pTrMat  )  const [virtual]
 

Duplicates and transforms geometry

Parameters:
pTrMat transformation matrix of the clone or NULL
Returns:
duplicate (clone)

Reimplemented from Sphere.

Definition at line 211 of file Hemisphere.cc.

References Hemisphere::_duplicate_attributes(), Hemisphere::_transform(), and Hemisphere::Hemisphere().

Vector2 dir2uvPriorToPoweredZenith const Vector3 dir,
int  power
const
 

Gets direction in global coords and returns its generating "random" numbers (i.e. the inverse function to samplePriorToPoweredZenith()).

Parameters:
dir normalized direction
power power
Returns:
"random" numbers generating direction dir; x item of returned vector corresponds to elevationRand of importanceSample() method, y item corresponds to azimuthRand; $ (u,v) = (1 - \sin^{power+1}{\theta}, \frac{\phi}{2 \pi}) $

Definition at line 404 of file Hemisphere.cc.

References Hemisphere::_xAxis, Hemisphere::_yAxis, Hemisphere::_zAxis, and M_PI.

Referenced by PhongBRDF::dir2uv().

Vector2 dir2uvPriorToZenith const Vector3 dir  )  const
 

Gets direction in global coords and returns its generating "random" numbers (i.e. the inverse function to samplePriorToZenith()).

Parameters:
dir normalized direction
Returns:
"random" numbers generating direction dir; x item of returned vector corresponds to elevationRand of importanceSample() method, y item corresponds to azimuthRand; $ (u,v) = (\sin{\theta}, \frac{\phi}{2 \pi}) $

Definition at line 357 of file Hemisphere.cc.

References Hemisphere::_xAxis, Hemisphere::_yAxis, Hemisphere::_zAxis, and M_PI.

Vector2 dir2uvUniformly const Vector3 dir  )  const
 

Gets direction in global coords and returns its generating "random" numbers (i.e. the inverse function to sampleUniformly()).

Parameters:
dir normalized direction
Returns:
"random" numbers generating direction dir; x item of returned vector corresponds to elevationRand of importanceSample() method, y item corresponds to azimuthRand; $ (u,v) = (1 - \cos^2{\theta}, \frac{\phi}{2 \pi}) = (\sin^2{\theta}, \frac{\phi}{2 \pi}) $

Definition at line 314 of file Hemisphere.cc.

References Hemisphere::_xAxis, Hemisphere::_yAxis, Hemisphere::_zAxis, and M_PI.

Referenced by LambertianBRDF::dir2uv().

double distance const Geometry geom,
Vector3 pDir
[virtual]
 

Computes approximate distance between this and given geometries (lower bound of distance)

Parameters:
geom geometry to check
pDir if presented then is set to normalized measured direction (vector of minimal distance)
Returns:
lower bound of distance, negative value indicates penetration, positive value indicates separation, zero indicates touch

Reimplemented from Sphere.

Definition at line 231 of file Hemisphere.cc.

References MAXDOUBLE.

void dump const char *  intent,
const char *  tab
[virtual]
 

Writes information about this geometry to std. out.

Parameters:
intent free space before each line
tab free space added to intent inside description of this class

Reimplemented from Sphere.

Definition at line 237 of file Hemisphere.cc.

References Hemisphere::_backfaceCulling, Sphere::_centre, Sphere::_radius, Hemisphere::_xAxis, Hemisphere::_yAxis, and Hemisphere::_zAxis.

Interval extent float  x,
float  y,
float  z
const [inline, inherited]
 

Returns extent occupied by the geometry in given direction

Parameters:
x direction direction of extent - x coordinate
y direction direction of extent - y coordinate
z direction direction of extent - z coordinate
Returns:
extent of occupied space

Definition at line 124 of file Geometry.h.

Interval extent const Vector3 direction  )  const [virtual]
 

Returns extent occupied by the geometry in given direction

Parameters:
direction direction of extent
Returns:
extent of occupied space

Reimplemented from Sphere.

Definition at line 205 of file Hemisphere.cc.

Vector3 getZenith void   )  const [inline]
 

Returns:
normalized direction to "zenith"

Definition at line 91 of file Hemisphere.h.

References Hemisphere::_zAxis.

void insideOut bool  b  )  [inline, inherited]
 

Inverts facet normals (turns the object inside-out)

Parameters:
b determines wehether to turn the geometry inside-out

Definition at line 56 of file Geometry.h.

bool mapToUV const Vector3 v,
Vector2 uv
[virtual]
 

Maps 3D point from surface to the UV surface representation

Parameters:
v 3D point in the world coordinates
uv UV coordinates (relative to the surface)
Returns:
true on success, false otherwise (mainly if the 3D point does not lie on the surface)

Reimplemented from Sphere.

Definition at line 169 of file Hemisphere.cc.

Referenced by Hemisphere::randomSample().

Mesh * mesh int  density = 0  )  const [inherited]
 

Returns polygonal mesh computed from this geometry

Parameters:
density mesh density
Returns:
polygonal mesh

Definition at line 24 of file Geometry.cc.

References Geometry::_insideOut, Geometry::_mesh(), and Mesh::turnInsideOut().

Referenced by BVH::__get_edges(), BVH::__get_meshes(), NurbsSurface::_mesh(), and POVRayExporter::_process_leaf().

double radius void   )  const [virtual, inherited]
 

Returns radius of minimal packing sphere with center in the ceontroid of the geometry

Parameters:
centroid center of packing sphere
Returns:
minimal packing radius

Reimplemented from Geometry.

Definition at line 405 of file Sphere.cc.

References Sphere::_radius.

Referenced by POVRayExporter::_write_sphere().

double radius const Vector3 centroid  )  const [virtual]
 

Returns radius of minimal packing sphere having given center

Parameters:
centroid center of packing sphere
Returns:
minimal packing radius

Reimplemented from Sphere.

Definition at line 219 of file Hemisphere.cc.

References MAXDOUBLE.

bool randomDirection const Vector3 pov,
Vector3 dir,
double *  pdf
[virtual]
 

Computes random direction towards the surface in accord to the point of view.

Parameters:
pov point of view
dir computed random direction
pdf if present then it is set to the value of the Probability Density Function of the random point

Reimplemented from Sphere.

Definition at line 199 of file Hemisphere.cc.

void randomSample int  mask,
PointEnv pe,
double *  pdf
[virtual]
 

Computes random point on the surface

Parameters:
mask bitmask determining what to compute, see PointEnv.h
pe information about the computed random point on surface
pdf if present then it is set to the value of the Probability Density Function of the random point

Reimplemented from Sphere.

Definition at line 175 of file Hemisphere.cc.

References Sphere::_centre, Sphere::_radius, Sphere::_radius2, ENV_HAVE_NORMAL, ENV_HAVE_NOTHING, ENV_HAVE_SURFACE_POINT, ENV_HAVE_UV_COORD, ENV_WANT_NORMAL, ENV_WANT_SURFACE_POINT, ENV_WANT_UV_COORD, ESG_DBL_RAND, PointEnv::intersection, Hemisphere::mapToUV(), PointEnv::mask, PointEnv::normal, PointEnv::normalOrientation, PointEnv::OUTWARDS_NORMAL, Hemisphere::sampleUniformly(), and PointEnv::uvCoord.

void rayIntersection PointEnv pPE,
int  mask,
const Vector3 origin,
const Vector3 direction,
float  maxD = MAXFLOAT
[virtual]
 

Computes point of intersection of ray with this geometry

Parameters:
pPE structure in which the information about intersection point is stored; must be defined (not NULL)
mask bitmask determining what to compute, see PointEnv.h
origin ray's origin
direction normalized ray's direction
maxD maximal interesting distance; if the point of intersection can't be closer than this distance then the computation stops (object is too far away)

Reimplemented from Sphere.

Definition at line 110 of file Hemisphere.cc.

References Sphere::_centre, Sphere::_epsMinus, Sphere::_epsPlus, Sphere::_radius, Sphere::_radius2, PointEnv::distance, ENV_HAVE_DISTANCE, ENV_HAVE_INTERFERENCE, ENV_HAVE_INTERSECTION, ENV_HAVE_NORMAL, ENV_HAVE_NOTHING, ENV_HAVE_UV_COORD, ENV_WANT_INTERSECTION, ENV_WANT_NORMAL, ENV_WANT_UV_COORD, Geometry::EPS, PointEnv::intersection, PointEnv::mask, PointEnv::normal, PointEnv::normalOrientation, PointEnv::OUTWARDS_NORMAL, PI, and PointEnv::uvCoord.

Vector3 samplePriorToPoweredZenith double  elevationRand,
double  azimuthRand,
int  power,
double *  pPDFVal
const
 

Returns random direction ditributed over the hemisphere according to powered elevation angle theta. Direction is in the world coordinate system.

$ (\theta, \phi) = (\arcsin({(1-r_1)^{\frac{1}{r+1}}}), 2 \pi r_2) $ in the local coordinate system

If elevationRand = 0 then $\theta = 0$ and the method returns the zenith vector.

If elevationRand = 1 then $\theta = \frac{\pi}{2}$ and the method returns vetor laying on local XY plane (base)

Parameters:
elevationRand uniform random number from the range [0,1)
azimuthRand uniform random number from the range [0,1)
power power
pPDFVal PDF
Returns:
$(\theta, \phi)$ transformed to the world coordinates

Definition at line 374 of file Hemisphere.cc.

References ESG_ANGLES_TO_VECTOR, and PI.

Referenced by PhongBRDF::importanceSample().

Vector2 samplePriorToPoweredZenith2D double  elevationRand,
double  azimuthRand,
int  power,
double *  pPDFVal
const
 

Returns random direction ditributed over the hemisphere according to powered elevation angle theta. Deriction is described by relative elevation and azimuth angles in the local coordinate system of the hemicube.

$ (\theta, \phi) = (\arcsin({(1-r_1)^{\frac{1}{r+1}}}), 2 \pi r_2) $ in the local coordinate system

If elevationRand = 0 then $\theta = 0$ and the method returns the zenith vector.

If elevationRand = 1 then $\theta = \frac{\pi}{2}$ and the method returns vetor laying on local XY plane (base)

Parameters:
elevationRand uniform random number from the range [0,1)
azimuthRand uniform random number from the range [0,1)
power power
pPDFVal PDF
Returns:
$(\theta, \phi)$, elevation and azimuth angles

Definition at line 393 of file Hemisphere.cc.

References PI.

Vector3 samplePriorToZenith double  elevationRand,
double  azimuthRand,
double *  pPDFVal
const
 

Returns random direction ditributed over the hemisphere according to elevation angle. Direction is in the world coordinate system.

$ (\theta, \phi) = (\arcsin{r_1}, 2 \pi r_2) $ in the local coordinate system

If elevationRand = 0 then $\theta = 0$ and the method returns the zenith vector.

If elevationRand = 1 then $\theta = \frac{\pi}{2}$ and the method returns vetor laying on local XY plane (base)

Parameters:
elevationRand uniform random number from the range [0,1)
azimuthRand uniform random number from the range [0,1)
pPDFVal PDF
Returns:
$(\theta, \phi)$ transformed to the world coordinates

Definition at line 331 of file Hemisphere.cc.

References ESG_ANGLES_TO_VECTOR, and PI.

Referenced by DirEmittance::stochasticEmission().

Vector2 samplePriorToZenith2D double  elevationRand,
double  azimuthRand,
double *  pPDFVal
const
 

Returns random direction ditributed over the hemisphere according to elevation angle. Deriction is described by relative elevation and azimuth angles in the local coordinate system of the hemicube.

$ (\theta, \phi) = (\arcsin{r_1}, 2 \pi r_2) $ in the local coordinate system

If elevationRand = 0 then $\theta = 0$ and the method returns the zenith vector.

If elevationRand = 1 then $\theta = \frac{\pi}{2}$ and the method returns vetor laying on local XY plane (base)

Parameters:
elevationRand uniform random number from the range [0,1)
azimuthRand uniform random number from the range [0,1)
pPDFVal PDF
Returns:
$(\theta, \phi)$, elevation and azimuth angles

Definition at line 348 of file Hemisphere.cc.

References PI.

Vector3 sampleUniformly double  elevationRand,
double  azimuthRand,
double *  pPDFval
const
 

Returns random direction uniformly ditributed over the hemisphere. Direction is in the world coordinate system.

$ (\theta, \phi) = (\arccos{\sqrt{1-r_1}}, 2 \pi r_2) $ in the local coordinate system

If elevationRand = 0 then $\theta = 0$ and the method returns the zenith vector.

If elevationRand = 1 then $\theta = \frac{\pi}{2}$ and the method returns vetor laying on local XY plane (base)

Parameters:
elevationRand uniform random number from the range [0,1)
azimuthRand uniform random number from the range [0,1)
pPDFVal PDF
Returns:
$(\theta, \phi)$ transformed to the world coordinates

Definition at line 289 of file Hemisphere.cc.

References ESG_ANGLES_TO_VECTOR, and PI.

Referenced by LambertianBRDF::importanceSample(), and Hemisphere::randomSample().

Vector2 sampleUniformly2D double  elevationRand,
double  azimuthRand,
double *  pPDFval
const
 

Returns random direction uniformly ditributed over the hemisphere. Deriction is described by relative elevation and azimuth angles in the local coordinate system of the hemicube.

$ (\theta, \phi) = (\arccos{\sqrt{1-r_1}}, 2 \pi r_2) $ in the local coordinate system

If elevationRand = 0 then $\theta = 0$ and the method returns the zenith vector.

If elevationRand = 1 then $\theta = \frac{\pi}{2}$ and the method returns vetor laying on local XY plane (base)

Parameters:
elevationRand uniform random number from the range [0,1)
azimuthRand uniform random number from the range [0,1)
pPDFVal PDF
Returns:
$(\theta, \phi)$, elevation and azimuth angles

Definition at line 306 of file Hemisphere.cc.

References PI.

bool separation Geometry geom,
Vector3 pDir
[virtual]
 

Checks if there is separation between this and given geometries

Parameters:
geom geometry to check
pDir if presented then is set to normalized direction to found separation (gap)
Returns:
true if thre is separation (gap), false otherwise

Reimplemented from Sphere.

Definition at line 225 of file Hemisphere.cc.

void setCentre float  x,
float  y,
float  z
[inherited]
 

Parameters:
x new x coord. of the centre
y new y coord. of the centre
z new z coord. of the centre

Definition at line 454 of file Sphere.cc.

References Sphere::_centre.

void setCentre const Vector3  )  [inherited]
 

Parameters:
centre new centre

Definition at line 448 of file Sphere.cc.

References Sphere::_centre.

void setRadius float  radius  )  [inherited]
 

Parameters:
radius new radius

Definition at line 459 of file Sphere.cc.

References Sphere::_epsMinus, Sphere::_epsPlus, Sphere::_radius, Sphere::_radius2, and Geometry::EPS.

void setZenith const Vector3 zenith  ) 
 

Parameters:
zenith new "zenith" of the hemisphere

Definition at line 251 of file Hemisphere.cc.

References Hemisphere::_xAxis, Hemisphere::_yAxis, and Hemisphere::_zAxis.

Vector2 world2local2D const Vector3 dir  )  const
 

Transforms 3D vector with world coordinates to (local) angles: (theta, phi) = (angle between dir and _zAxis, azimuth in local XY plane)

Parameters:
dir vector with world coordinates
Returns:
vector with local angles

Definition at line 264 of file Hemisphere.cc.

References Hemisphere::_xAxis, Hemisphere::_yAxis, Hemisphere::_zAxis, and M_PI.

Vector3 world2local3D const Vector3 dir  )  const [inline]
 

Transforms 3D vector with the world coordinates to 3D vector with local coordinates of the hemisphere

Parameters:
dir vector with world coordinates
Returns:
vector with local coordinates of the hemisphere

Definition at line 106 of file Hemisphere.h.

References Hemisphere::_xAxis, Hemisphere::_yAxis, and Hemisphere::_zAxis.


Member Data Documentation

bool _backfaceCulling [protected]
 

Definition at line 17 of file Hemisphere.h.

Referenced by Hemisphere::_duplicate_attributes(), and Hemisphere::dump().

Vector3 _centre [protected, inherited]
 

Definition at line 21 of file Sphere.h.

Referenced by Sphere::_duplicate_attributes(), Sphere::_mesh(), Sphere::_rotate(), Hemisphere::_rotate(), Sphere::_rotateX(), Hemisphere::_rotateX(), Sphere::_rotateY(), Hemisphere::_rotateY(), Sphere::_rotateZ(), Hemisphere::_rotateZ(), Sphere::_scale(), Sphere::_transform(), Hemisphere::_transform(), Sphere::_translate(), Sphere::centroid(), Sphere::distance(), Sphere::dump(), Hemisphere::dump(), Sphere::extent(), Sphere::mapToUV(), Sphere::radius(), Sphere::randomDirection(), Sphere::randomSample(), Hemisphere::randomSample(), Sphere::rayIntersection(), Hemisphere::rayIntersection(), Sphere::separation(), Sphere::setCentre(), and Sphere::Sphere().

double _epsMinus [protected, inherited]
 

(_radius - Geometry::EPS)^2

Definition at line 20 of file Sphere.h.

Referenced by Sphere::_duplicate_attributes(), Sphere::_scale(), Sphere::rayIntersection(), Hemisphere::rayIntersection(), Sphere::setRadius(), and Sphere::Sphere().

double _epsPlus [protected, inherited]
 

(_radius + Geometry::EPS)^2

Definition at line 19 of file Sphere.h.

Referenced by Sphere::_duplicate_attributes(), Sphere::_scale(), Sphere::rayIntersection(), Hemisphere::rayIntersection(), Sphere::setRadius(), and Sphere::Sphere().

bool _insideOut [protected, inherited]
 

Definition at line 23 of file Geometry.h.

Referenced by Geometry::_duplicate_attributes(), and Geometry::mesh().

float _radius [protected, inherited]
 

Definition at line 17 of file Sphere.h.

Referenced by Sphere::_duplicate_attributes(), Sphere::_mesh(), Sphere::_scale(), Sphere::distance(), Sphere::dump(), Hemisphere::dump(), Sphere::extent(), Sphere::radius(), Sphere::randomDirection(), Sphere::randomSample(), Hemisphere::randomSample(), Sphere::rayIntersection(), Hemisphere::rayIntersection(), Sphere::separation(), Sphere::setRadius(), and Sphere::Sphere().

float _radius2 [protected, inherited]
 

_radius^2

Definition at line 18 of file Sphere.h.

Referenced by Sphere::_duplicate_attributes(), Sphere::_scale(), Sphere::randomSample(), Hemisphere::randomSample(), Sphere::rayIntersection(), Hemisphere::rayIntersection(), Sphere::setRadius(), and Sphere::Sphere().

Vector3 _xAxis [protected]
 

Definition at line 16 of file Hemisphere.h.

Referenced by Hemisphere::_duplicate_attributes(), Hemisphere::_rotate(), Hemisphere::_rotateX(), Hemisphere::_rotateY(), Hemisphere::_rotateZ(), Hemisphere::_transform(), Hemisphere::dir2uvPriorToPoweredZenith(), Hemisphere::dir2uvPriorToZenith(), Hemisphere::dir2uvUniformly(), Hemisphere::dump(), Hemisphere::Hemisphere(), Hemisphere::setZenith(), Hemisphere::world2local2D(), and Hemisphere::world2local3D().

Vector3 _yAxis [protected]
 

Definition at line 16 of file Hemisphere.h.

Referenced by Hemisphere::_duplicate_attributes(), Hemisphere::_rotate(), Hemisphere::_rotateX(), Hemisphere::_rotateY(), Hemisphere::_rotateZ(), Hemisphere::_transform(), Hemisphere::dir2uvPriorToPoweredZenith(), Hemisphere::dir2uvPriorToZenith(), Hemisphere::dir2uvUniformly(), Hemisphere::dump(), Hemisphere::Hemisphere(), Hemisphere::setZenith(), Hemisphere::world2local2D(), and Hemisphere::world2local3D().

Vector3 _zAxis [protected]
 

Definition at line 16 of file Hemisphere.h.

Referenced by Hemisphere::_duplicate_attributes(), Hemisphere::_rotate(), Hemisphere::_rotateX(), Hemisphere::_rotateY(), Hemisphere::_rotateZ(), Hemisphere::_transform(), Hemisphere::dir2uvPriorToPoweredZenith(), Hemisphere::dir2uvPriorToZenith(), Hemisphere::dir2uvUniformly(), Hemisphere::dump(), Hemisphere::getZenith(), Hemisphere::Hemisphere(), Hemisphere::setZenith(), Hemisphere::world2local2D(), and Hemisphere::world2local3D().

const float EPS = 1e-03 [static, inherited]
 

epsilon variation (tolerance) of zero

Definition at line 20 of file Geometry.h.

Referenced by FDH::_cut_line(), Sphere::_duplicate_attributes(), FDH::_get_corners(), FDH::_mesh(), Sphere::_scale(), Polygon::_triTriCollision(), Sphere::rayIntersection(), Polygon::rayIntersection(), Point3D::rayIntersection(), Hemisphere::rayIntersection(), Sphere::setRadius(), and Sphere::Sphere().


The documentation for this class was generated from the following files:
Generated on Wed Jun 28 12:24:34 2006 for esg by  doxygen 1.4.6