Clarisse 5.0 SP8 SDK  5.0.5.8.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Classes | Public Member Functions | Public Attributes | Protected Attributes | List of all members
GeometrySphereSampler< REAL > Class Template Reference
Inheritance diagram for GeometrySphereSampler< REAL >:
GeometryPrimitive

Classes

struct  RayScatterData
 

Public Member Functions

 GeometrySphereSampler (const REAL &radius=GMath< REAL >::half(), SideFlags side=SIDE_FRONT, SideFlags sided=SIDE_BOTH)
 
const REAL & get_radius () const
 Get the radius of the sphere.
 
void set_radius (const REAL &radius)
 Set the radius of the sphere.
 
void set_sidedness (SideFlags sidedness)
 
REAL estimate_area (const GMathVec3< REAL > &scaling) const
 
void compute_surface_point (GMathVec3< REAL > &position, GMathVec3< REAL > &dpdu, GMathVec3< REAL > &dpdv, GMathVec3< REAL > &normal, GMathVec3< REAL > &dndu, GMathVec3< REAL > &dndv, REAL u, REAL v) const
 
void compute_uv (const GMathVec3< REAL > &pos, REAL &u, REAL &v) const
 
unsigned int intersect_primitive (const GMathBasicRay< REAL > &ray, REAL tnear, REAL tfar, REAL ts[2], REAL us[2], REAL vs[2]) const
 
REAL compute_solid_angle (const GMathVec3< REAL > &center, const GMathVec3< REAL > &position, const GMathVec3< REAL > &normal) const
 
REAL direction_sample (const GMathMatrix4x4< REAL > &xform, const GMathMatrix4x4< REAL > &inv_xform, REAL det_xform, const GMathVec3< REAL > &position, const GMathVec3< REAL > &normal, const GMathVec2< REAL > &sample, GMathVec3< REAL > &direction, REAL &distance) const
 
REAL direction_pdf (const GMathMatrix4x4< REAL > &xform, const GMathMatrix4x4< REAL > &inv_xform, REAL det_xform, const GMathVec3< REAL > &position, const GMathVec3< REAL > &normal, const GMathVec3< REAL > &direction) const
 
REAL init_ray_scatter (RayScatterData &ray_scatter, const GRandomDefault &rng, const GMathVec3< REAL > &center, const GMathMatrix4x4< REAL > &xform, const GMathMatrix4x4< REAL > &inv_xform, const GMathBasicRay< REAL > *ray, const REAL &t_min, const REAL &t_max) const
 

Public Attributes

SideFlags m_sidedness
 

Protected Attributes

REAL m_radius
 
SideFlags m_side
 

Additional Inherited Members

- Public Types inherited from GeometryPrimitive
enum  SideFlags {
  SIDE_FRONT = 1,
  SIDE_BACK = 2,
  SIDE_BOTH = 3
}
 Visible side flags. More...
 
- Static Public Member Functions inherited from GeometryPrimitive
template<typename REAL >
static bool is_visible (SideFlags side, REAL dot_normal)
 
template<typename REAL >
static void compute_dndu_dndv (GMathVec3< REAL > &dndu, GMathVec3< REAL > &dndv, const GMathVec3< REAL > &dpdu, const GMathVec3< REAL > &dpdv, const GMathVec3< REAL > &normal, const GMathVec3< REAL > &d2pduu, const GMathVec3< REAL > &d2pduv, const GMathVec3< REAL > &d2pdvv)
 Compute the partial derivatives of the normal.