PointEnv.h File Reference

#include <esg/Definitions.h>

Go to the source code of this file.

Namespaces

namespace  esg

Classes

class  PointEnv

Defines

#define ENV_WANT_NOTHING   (0<<0)
 empty mask
#define ENV_WANT_INTERFERENCE   (1<<0)
 to indicate existance interference
#define ENV_WANT_INTERSECTION   (1<<1)
 to find point of intersection (PoI)
#define ENV_WANT_SURFACE_POINT   (1<<1)
 just another name for intersection
#define ENV_WANT_NORMAL   (1<<2)
 to get the normal vector at PoI
#define ENV_WANT_ASOC_PRIMITIVE   (1<<3)
 to associate hitted primitive object
#define ENV_WANT_DISTANCE   (1<<4)
 to get distance of PoI from ray origin
#define ENV_WANT_TRANSFORMATION   (1<<5)
 not used - set automatically
#define ENV_WANT_ENERGY   (1<<6)
 to get energy (color) at PoI
#define ENV_WANT_N_DOT_D   (1<<7)
 to get dot-product of ray's diretion and normal at PoI
#define ENV_WANT_N_DOT_O   (1<<8)
 to get dot-product of ray's origin and normal at PoI
#define ENV_WANT_UV_COORD   (1<<9)
 to get UV coordinates of PoI
#define ENV_WANT_VIEWER_DIR   (1<<10)
 not used
#define ENV_USE_CACHE   (1<<11)
 to cache common ray infos
#define ENV_HAVE_NOTHING   ENV_WANT_NOTHING
 nothing set
#define ENV_HAVE_INTERFERENCE   ENV_WANT_INTERFERENCE
 interference found
#define ENV_HAVE_INTERSECTION   ENV_WANT_INTERSECTION
 intersection found and PoI is valid
#define ENV_HAVE_SURFACE_POINT   ENV_WANT_SURFACE_POINT
 just another name for intersection
#define ENV_HAVE_NORMAL   ENV_WANT_NORMAL
 normal at PoI is valid
#define ENV_HAVE_ASOC_PRIMITIVE   ENV_WANT_ASOC_PRIMITIVE
 hitted primitive has been associated
#define ENV_HAVE_DISTANCE   ENV_WANT_DISTANCE
 PoI distance is valid.
#define ENV_HAVE_TRANSFORMATION   ENV_WANT_TRANSFORMATION
 PoI is transformed, tr. mat. is valid.
#define ENV_HAVE_ENERGY   ENV_WANT_ENERGY
 energy is valid
#define ENV_HAVE_N_DOT_D   ENV_WANT_N_DOT_D
 NxD is valid.
#define ENV_HAVE_N_DOT_O   ENV_WANT_N_DOT_O
 NxO is valid.
#define ENV_HAVE_UV_COORD   ENV_WANT_UV_COORD
 UV coordinates are set.
#define ENV_HAVE_VIEWER_DIR   (1<<10)
 normalized vector from PoI to viewer is set


Define Documentation

#define ENV_HAVE_ASOC_PRIMITIVE   ENV_WANT_ASOC_PRIMITIVE
 

hitted primitive has been associated

Definition at line 54 of file PointEnv.h.

Referenced by Intersector::processCandidate(), and OSGAdapter::rayIntersection().

#define ENV_HAVE_DISTANCE   ENV_WANT_DISTANCE
 

PoI distance is valid.

Definition at line 55 of file PointEnv.h.

Referenced by Intersector::processCandidate(), Surface::rayIntersection(), Sphere::rayIntersection(), Polygon::rayIntersection(), Point3D::rayIntersection(), Hemisphere::rayIntersection(), and Cylinder::rayIntersection().

#define ENV_HAVE_ENERGY   ENV_WANT_ENERGY
 

energy is valid

Definition at line 57 of file PointEnv.h.

#define ENV_HAVE_INTERFERENCE   ENV_WANT_INTERFERENCE
 

interference found

Definition at line 50 of file PointEnv.h.

Referenced by IteratorBVH::_first_ray_intersection(), IteratorBVH::_next_ray_intersection(), Triangle::randomSample(), Surface::rayIntersection(), Sphere::rayIntersection(), Polygon::rayIntersection(), Point3D::rayIntersection(), Hemisphere::rayIntersection(), and Cylinder::rayIntersection().

#define ENV_HAVE_INTERSECTION   ENV_WANT_INTERSECTION
 

intersection found and PoI is valid

Definition at line 51 of file PointEnv.h.

Referenced by Geometry::randomDirection(), Triangle::randomSample(), Surface::rayIntersection(), Sphere::rayIntersection(), Polygon::rayIntersection(), Point3D::rayIntersection(), OSGAdapter::rayIntersection(), Hemisphere::rayIntersection(), and Cylinder::rayIntersection().

#define ENV_HAVE_N_DOT_D   ENV_WANT_N_DOT_D
 

NxD is valid.

Definition at line 58 of file PointEnv.h.

Referenced by Surface::rayIntersection(), and Polygon::rayIntersection().

#define ENV_HAVE_N_DOT_O   ENV_WANT_N_DOT_O
 

NxO is valid.

Definition at line 59 of file PointEnv.h.

Referenced by Surface::rayIntersection(), and Polygon::rayIntersection().

#define ENV_HAVE_NORMAL   ENV_WANT_NORMAL
 

normal at PoI is valid

Definition at line 53 of file PointEnv.h.

Referenced by LightArray::emitPhoton(), Triangle::randomSample(), Sphere::randomSample(), Rectangle::randomSample(), Hemisphere::randomSample(), Surface::rayIntersection(), Sphere::rayIntersection(), Polygon::rayIntersection(), OSGAdapter::rayIntersection(), Hemisphere::rayIntersection(), and Cylinder::rayIntersection().

#define ENV_HAVE_NOTHING   ENV_WANT_NOTHING
 

nothing set

The following variables are set as a result of the ray intersection calculations in Geometry::rayIntersection() method. They are the values of PointEnv bitmask returned by the method.

Definition at line 49 of file PointEnv.h.

Referenced by Triangle::randomSample(), Surface::randomSample(), Sphere::randomSample(), Rectangle::randomSample(), Polygon::randomSample(), Point3D::randomSample(), Hemisphere::randomSample(), FDH::randomSample(), Cylinder::randomSample(), NurbsSurface::randomSample(), Surface::rayIntersection(), Sphere::rayIntersection(), Polygon::rayIntersection(), Point3D::rayIntersection(), NurbsSurface::rayIntersection(), Hemisphere::rayIntersection(), FDH::rayIntersection(), and Cylinder::rayIntersection().

#define ENV_HAVE_SURFACE_POINT   ENV_WANT_SURFACE_POINT
 

just another name for intersection

Definition at line 52 of file PointEnv.h.

Referenced by LightArray::emitPhoton(), Sphere::randomSample(), Rectangle::randomSample(), Point3D::randomSample(), Hemisphere::randomSample(), and PointEmittance::stochasticEmission().

#define ENV_HAVE_TRANSFORMATION   ENV_WANT_TRANSFORMATION
 

PoI is transformed, tr. mat. is valid.

Definition at line 56 of file PointEnv.h.

Referenced by OSGAdapter::rayIntersection(), and RayIntExplorer::result().

#define ENV_HAVE_UV_COORD   ENV_WANT_UV_COORD
 

UV coordinates are set.

Definition at line 60 of file PointEnv.h.

Referenced by Triangle::randomSample(), Sphere::randomSample(), Rectangle::randomSample(), Point3D::randomSample(), Hemisphere::randomSample(), Sphere::rayIntersection(), Polygon::rayIntersection(), Point3D::rayIntersection(), and Hemisphere::rayIntersection().

#define ENV_HAVE_VIEWER_DIR   (1<<10)
 

normalized vector from PoI to viewer is set

Definition at line 61 of file PointEnv.h.

#define ENV_USE_CACHE   (1<<11)
 

to cache common ray infos

Sometimes we can precompute some parts of intersection calculation for some kind of geometry. These precomputed values can be then used to speed up final calculations.

For instance, in mohogenous FDH14 tree we can precompute some values that depend on the ray, but do not depend ot the FDH14 themselvs. Because such values are common for tho whole tree, they are computed only one for the tree, stored in the cache and then reused in the final per-FDH intersection calculations.

The following variable determines whether to speed up intersection calculations using precomputed cached values.

Definition at line 42 of file PointEnv.h.

Referenced by IteratorBVH::_first_ray_intersection(), IteratorBVH::_next_ray_intersection(), and FDH::rayIntersection().

#define ENV_WANT_ASOC_PRIMITIVE   (1<<3)
 

to associate hitted primitive object

Definition at line 19 of file PointEnv.h.

Referenced by Intersector::processCandidate().

#define ENV_WANT_DISTANCE   (1<<4)
 

to get distance of PoI from ray origin

Definition at line 20 of file PointEnv.h.

Referenced by Intersector::init(), Surface::rayIntersection(), Point3D::rayIntersection(), and Cylinder::rayIntersection().

#define ENV_WANT_ENERGY   (1<<6)
 

to get energy (color) at PoI

Definition at line 22 of file PointEnv.h.

#define ENV_WANT_INTERFERENCE   (1<<0)
 

to indicate existance interference

Definition at line 15 of file PointEnv.h.

Referenced by IteratorBVH::_first_ray_intersection(), and IteratorBVH::_next_ray_intersection().

#define ENV_WANT_INTERSECTION   (1<<1)
 

to find point of intersection (PoI)

Definition at line 16 of file PointEnv.h.

Referenced by Geometry::randomDirection(), Surface::rayIntersection(), Sphere::rayIntersection(), Point3D::rayIntersection(), Hemisphere::rayIntersection(), and Cylinder::rayIntersection().

#define ENV_WANT_N_DOT_D   (1<<7)
 

to get dot-product of ray's diretion and normal at PoI

Definition at line 23 of file PointEnv.h.

#define ENV_WANT_N_DOT_O   (1<<8)
 

to get dot-product of ray's origin and normal at PoI

Definition at line 24 of file PointEnv.h.

#define ENV_WANT_NORMAL   (1<<2)
 

to get the normal vector at PoI

Definition at line 18 of file PointEnv.h.

Referenced by LightArray::emitPhoton(), Triangle::randomSample(), Sphere::randomSample(), Rectangle::randomSample(), Polygon::randomSample(), Hemisphere::randomSample(), Surface::rayIntersection(), Sphere::rayIntersection(), Polygon::rayIntersection(), Hemisphere::rayIntersection(), FDH::rayIntersection(), and Cylinder::rayIntersection().

#define ENV_WANT_NOTHING   (0<<0)
 

empty mask

The following variables represents actions performed during the ray intersection calculations in Geometry::rayIntersection() method.

Definition at line 14 of file PointEnv.h.

Referenced by LightArray::emitPhoton().

#define ENV_WANT_SURFACE_POINT   (1<<1)
 

just another name for intersection

Definition at line 17 of file PointEnv.h.

Referenced by LightArray::emitPhoton(), Triangle::randomSample(), Sphere::randomSample(), Rectangle::randomSample(), Polygon::randomSample(), Point3D::randomSample(), Hemisphere::randomSample(), and PointEmittance::stochasticEmission().

#define ENV_WANT_TRANSFORMATION   (1<<5)
 

not used - set automatically

Definition at line 21 of file PointEnv.h.

#define ENV_WANT_UV_COORD   (1<<9)
 

to get UV coordinates of PoI

Definition at line 25 of file PointEnv.h.

Referenced by Triangle::randomSample(), Sphere::randomSample(), Rectangle::randomSample(), Polygon::randomSample(), Point3D::randomSample(), Hemisphere::randomSample(), Sphere::rayIntersection(), Polygon::rayIntersection(), Point3D::rayIntersection(), Hemisphere::rayIntersection(), and FDH::rayIntersection().

#define ENV_WANT_VIEWER_DIR   (1<<10)
 

not used

Definition at line 26 of file PointEnv.h.


Generated on Wed Jun 28 12:24:32 2006 for esg by  doxygen 1.4.6