#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 |
|
hitted primitive has been associated
Definition at line 54 of file PointEnv.h. Referenced by Intersector::processCandidate(), and OSGAdapter::rayIntersection(). |
|
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(). |
|
energy is valid
Definition at line 57 of file PointEnv.h. |
|
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(). |
|
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(). |
|
NxD is valid.
Definition at line 58 of file PointEnv.h. Referenced by Surface::rayIntersection(), and Polygon::rayIntersection(). |
|
NxO is valid.
Definition at line 59 of file PointEnv.h. Referenced by Surface::rayIntersection(), and Polygon::rayIntersection(). |
|
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(). |
|
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(). |
|
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(). |
|
PoI is transformed, tr. mat. is valid.
Definition at line 56 of file PointEnv.h. Referenced by OSGAdapter::rayIntersection(), and RayIntExplorer::result(). |
|
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(). |
|
normalized vector from PoI to viewer is set
Definition at line 61 of file PointEnv.h. |
|
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(). |
|
to associate hitted primitive object
Definition at line 19 of file PointEnv.h. Referenced by Intersector::processCandidate(). |
|
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(). |
|
to get energy (color) at PoI
Definition at line 22 of file PointEnv.h. |
|
to indicate existance interference
Definition at line 15 of file PointEnv.h. Referenced by IteratorBVH::_first_ray_intersection(), and IteratorBVH::_next_ray_intersection(). |
|
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(). |
|
to get dot-product of ray's diretion and normal at PoI
Definition at line 23 of file PointEnv.h. |
|
to get dot-product of ray's origin and normal at PoI
Definition at line 24 of file PointEnv.h. |
|
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(). |
|
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(). |
|
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(). |
|
not used - set automatically
Definition at line 21 of file PointEnv.h. |
|
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(). |
|
not used
Definition at line 26 of file PointEnv.h. |