SurfacePoint Class Reference
Core class representing a single point on the surface of a Shape, which was likely generated by either an intersection with a Ray or random sampling on the surface of the shape. SurfacePoint encapsulates all of the different information about a surface point and is used for shading evaluation (BSDF), emittance evaluation (Emitter), and so-called importance evaluation (Sensor). More...
#include <SurfacePoint.h>

Public Member Functions | |
Constructors | |
| SurfacePoint () | |
| SurfacePoint (Shape *shape_, const Point3 &p0, const Point3 &p1) | |
| ~SurfacePoint () | |
Initialization | |
| bool | init (const Ray &ray, real_t t) |
| Initializes this point, assuming shape has already been filled in, in addition to any optional shape or material-specific utility data (index, normalCase). | |
| void | init () |
| Initializes this point, assuming shape/position have already been filled in, in addition to any optional shape or material-specific utility data (UV, index, normalCase). | |
Public Attributes | |
Surface data lazily filled in by Shape::initSurfacePoint | |
| Shape * | shape |
| intersected shape | |
| Point3 | position |
| world-space position | |
| Vector3 | normalG |
| geometric normal | |
| Vector3 | normalS |
| UV | uv |
| UV coordinates. | |
Material data evaluated lazily by Material::initSurfacePoint | |
| BSDF * | bsdf |
| reflectance | |
| Emitter * | emitter |
| emittance | |
| Sensor * | sensor |
| importance aka sensor response (for cameras) | |
| real_t | ior1 |
| incident index of refraction | |
| real_t | ior2 |
| exitent index of refraction | |
Shape-specific, lazy-helper data | |
| unsigned | index |
| unsigned | normalCase |
Utility normal accessor | |
| struct SurfacePoint::SurfacePointNormal | normal |
| Convenience stand-in normal which plays nicely with shapes that don't support the concept of a normal (ex. point lights). | |
Classes | |
| struct | SurfacePointNormal |
| Convenience stand-in normal which plays nicely with shapes that don't support the concept of a normal (ex. point lights). More... | |
Detailed Description
Core class representing a single point on the surface of a Shape, which was likely generated by either an intersection with a Ray or random sampling on the surface of the shape. SurfacePoint encapsulates all of the different information about a surface point and is used for shading evaluation (BSDF), emittance evaluation (Emitter), and so-called importance evaluation (Sensor).
- Date:
- Fall 2008
- Note:
- When finding the closest intersection point between a Ray and a set of objects in the scene, SurfacePoint is used to hold the 'current' closest object and any metadata that shape may need to lazily fill in the rest of the SurfacePoint structure later on (see Shape::initSurfacePoint).
Definition at line 48 of file SurfacePoint.h.
Constructor & Destructor Documentation
| SurfacePoint::SurfacePoint | ( | ) | [inline] |
Definition at line 101 of file SurfacePoint.h.
Definition at line 107 of file SurfacePoint.h.
| SurfacePoint::~SurfacePoint | ( | ) |
Definition at line 37 of file SurfacePoint.cpp.
Member Function Documentation
Initializes this point, assuming shape has already been filled in, in addition to any optional shape or material-specific utility data (index, normalCase).
- Returns:
- false if this point is invalid and can't be initialized (in the case of an invalid t-value)
Definition at line 47 of file SurfacePoint.cpp.
| void SurfacePoint::init | ( | ) |
Initializes this point, assuming shape/position have already been filled in, in addition to any optional shape or material-specific utility data (UV, index, normalCase).
Definition at line 65 of file SurfacePoint.cpp.
Member Data Documentation
shading normal (possibly a perturbed version of the geometric normal, normalG)
Definition at line 63 of file SurfacePoint.h.
| unsigned SurfacePoint::index |
Definition at line 93 of file SurfacePoint.h.
| unsigned SurfacePoint::normalCase |
Definition at line 94 of file SurfacePoint.h.
Convenience stand-in normal which plays nicely with shapes that don't support the concept of a normal (ex. point lights).
The documentation for this class was generated from the following files:
Generated on 28 Feb 2009 for Milton by
1.5.6