Free Electron
|
VDB Surface. More...
#include <SurfaceVDB.h>
Public Member Functions | |
virtual Protectable * | clone (Protectable *pInstance=NULL) |
virtual void | bind (Instance a_instance) |
associate with model data More... | |
virtual Containment | containment (const SpatialVector &a_origin) const |
virtual sp< SurfaceI::ImpactI > | nearestPoint (const SpatialVector &a_origin) const |
virtual sp< SurfaceI::ImpactI > | rayImpact (const SpatialVector &a_origin, const SpatialVector &a_direction, Real a_maxDistance, BWORD a_anyHit) const |
virtual void | draw (const SpatialTransform &, sp< DrawI > a_spDrawI, const fe::Color *a_color, sp< DrawBufferI > a_spDrawBuffer, sp< PartitionI > a_spPartition) const |
I32 | vertexCount (void) const |
BWORD | getVertexPoint (I32 a_index, SpatialVector &a_rPoint) |
BWORD | getVertexNormal (I32 a_index, SpatialVector &a_rNormal) |
BWORD | getVertexCpt (I32 a_index, SpatialVector &a_rCpt) |
BWORD | getVertexValue (I32 a_index, Real &a_rValue) |
Public Member Functions inherited from fe::ext::SurfaceSphere | |
virtual SpatialVector | center (void) |
virtual SpatialVector | center (void) const |
virtual Real | radius (void) |
virtual Real | radius (void) const |
virtual Color | diffuse (void) const |
Return the diffuse color. More... | |
virtual SpatialTransform | sample (Vector2 a_uv) const |
virtual sp< ImpactI > | nearestPoint (const SpatialVector &a_origin, Real a_maxDistance) const |
virtual void | bind (Record &rRecord) |
void | setRadius (Real a_radius) |
void | setCenter (const SpatialVector &a_rCenter) |
Public Member Functions inherited from fe::ext::SurfaceBase | |
virtual void | protect (void) |
virtual void | setSampleMethod (SampleMethod a_sampleMethod) |
virtual void | setNodeName (String a_nodeName) |
virtual String | nodeName (void) const |
virtual void | setRestrictions (Restrictions a_restrictions) |
virtual Restrictions | restrictions (void) const |
virtual void | setRefinement (U32 a_refinement) |
Set limitation of surface improvement, such as subdivision. More... | |
virtual void | setAccuracy (SurfaceI::Accuracy a_accuracy) |
Set what primitive to search down to. More... | |
virtual void | setSearchable (BWORD a_searchable) |
Set whether this surface may be searched. More... | |
virtual void | setSearch (String a_searchName) |
Set component to use for searching. More... | |
virtual void | setTriangulation (Triangulation a_triangulation) |
Set how 4+ vertex polygons break down. More... | |
virtual I32 | triangleCount (void) |
Number of barycentric elements. More... | |
virtual SpatialTransform | sample (Vector2 a_uv) |
virtual SpatialTransform | sample (I32 a_triangleIndex, SpatialBary a_barycenter) |
virtual SpatialTransform | sample (I32 a_triangleIndex, SpatialBary a_barycenter) const |
virtual SpatialTransform | sample (I32 a_triangleIndex, SpatialBary a_barycenter, SpatialVector a_tangent) const |
virtual sp< ImpactI > | sampleImpact (I32 a_triangleIndex, SpatialBary a_barycenter) |
virtual sp< ImpactI > | sampleImpact (I32 a_triangleIndex, SpatialBary a_barycenter) const |
virtual sp< ImpactI > | sampleImpact (I32 a_triangleIndex, SpatialBary a_barycenter, SpatialVector a_tangent) const |
virtual SpatialVector | samplePoint (const SpatialTransform &a_transform, Vector2 a_uv) |
virtual SpatialVector | samplePoint (Vector2 a_uv) |
virtual SpatialVector | samplePoint (const SpatialTransform &a_transform, Vector2 a_uv) const |
virtual SpatialVector | samplePoint (Vector2 a_uv) const |
virtual SpatialVector | sampleNormal (const SpatialTransform &a_transform, Vector2 a_uv) |
virtual SpatialVector | sampleNormal (Vector2 a_uv) |
virtual SpatialVector | sampleNormal (const SpatialTransform &a_transform, Vector2 a_uv) const |
virtual SpatialVector | sampleNormal (Vector2 a_uv) const |
virtual void | prepareForSample (void) |
virtual void | prepareForSearch (void) |
virtual void | prepareForUVSearch (void) |
virtual Containment | containment (const SpatialVector &a_origin) |
virtual sp< ImpactI > | nearestPoint (const SpatialTransform &a_transform, const SpatialVector &a_origin, Real a_maxDistance) |
virtual sp< ImpactI > | nearestPoint (const SpatialVector &a_origin, Real a_maxDistance, BWORD a_anyHit) |
virtual sp< ImpactI > | nearestPoint (const SpatialVector &a_origin, Real a_maxDistance) |
virtual sp< ImpactI > | nearestPoint (const SpatialVector &a_origin) |
virtual sp< ImpactI > | nearestPoint (const Vector2 &a_uv) |
virtual sp< ImpactI > | nearestPoint (const SpatialTransform &a_transform, const SpatialVector &a_origin, Real a_maxDistance) const |
virtual sp< ImpactI > | nearestPoint (const SpatialVector &a_origin, Real a_maxDistance, BWORD a_anyHit) const |
virtual sp< ImpactI > | nearestPoint (const Vector2 &a_uv) const |
virtual Array< sp< SurfaceI::ImpactI > > | nearestPoints (const Vector2 &a_uv, Real a_maxDistance, U32 a_hitLimit) |
virtual Array< sp< SurfaceI::ImpactI > > | nearestPoints (const Vector2 &a_uv, Real a_maxDistance, U32 a_hitLimit) const |
virtual Array< sp< SurfaceI::ImpactI > > | nearestPoints (const SpatialVector &a_origin, Real a_maxDistance, U32 a_hitLimit) |
virtual Array< sp< SurfaceI::ImpactI > > | nearestPoints (const SpatialVector &a_origin, Real a_maxDistance, U32 a_hitLimit) const |
virtual Array< sp< SurfaceI::ImpactI > > | nearestPoints (const SpatialVector &a_origin, Real a_maxDistance, U32 a_hitLimit, sp< PartitionI > a_spPartition) |
virtual Array< sp< SurfaceI::ImpactI > > | nearestPoints (const SpatialVector &a_origin, Real a_maxDistance, U32 a_hitLimit, sp< PartitionI > a_spPartition) const |
virtual sp< ImpactI > | rayImpact (const SpatialTransform &a_transform, const SpatialVector &a_origin, const SpatialVector &a_direction, Real a_maxDistance, BWORD a_anyHit) |
virtual sp< ImpactI > | rayImpact (const SpatialTransform &a_transform, const SpatialVector &a_origin, const SpatialVector &a_direction, Real a_maxDistance, BWORD a_anyHit) const |
virtual sp< ImpactI > | rayImpact (const SpatialVector &a_origin, const SpatialVector &a_direction, Real a_maxDistance, BWORD a_anyHit) |
virtual sp< ImpactI > | rayImpact (const SpatialVector &a_origin, const SpatialVector &a_direction, Real a_maxDistance) |
virtual sp< ImpactI > | rayImpact (const SpatialVector &a_origin, const SpatialVector &a_direction, Real a_maxDistance) const |
virtual Array< sp< SurfaceI::ImpactI > > | rayImpacts (const SpatialVector &a_origin, const SpatialVector &a_direction, Real a_maxDistance, U32 a_hitLimit) |
virtual Array< sp< SurfaceI::ImpactI > > | rayImpacts (const SpatialVector &a_origin, const SpatialVector &a_direction, Real a_maxDistance, U32 a_hitLimit) const |
virtual sp< ImpactI > | coneImpact (const SpatialVector &a_origin, const SpatialVector &a_direction, Real a_maxDistance, Real a_coneAngle, sp< DrawI > a_spDrawI) |
virtual sp< ImpactI > | coneImpact (const SpatialTransform &a_transform, const SpatialVector &a_origin, const SpatialVector &a_direction, Real a_maxDistance, Real a_coneAngle, sp< DrawI > a_spDrawI) |
virtual sp< ImpactI > | capsuleImpact (const SpatialVector &a_origin, const SpatialVector &a_direction, Real a_maxDistance, Real a_radius, BWORD a_anyHit, sp< DrawI > a_spDrawI, sp< ImpactI > a_spLastImpact) |
virtual sp< ImpactI > | capsuleImpact (const SpatialTransform &a_transform, const SpatialVector &a_origin, const SpatialVector &a_direction, Real a_maxDistance, Real a_radius, BWORD a_anyHit, sp< DrawI > a_spDrawI, sp< ImpactI > a_spLastImpact) |
virtual sp< GaugeI > | gauge (void) |
virtual void | partitionWith (String a_attributeName) |
virtual U32 | partitionCount (void) const |
virtual String | partitionName (U32 a_index) const |
virtual Vector4 | partitionSphere (U32 a_index) const |
virtual I32 | setPartitionFilter (String a_filterString) |
virtual I32 | setPartitionFilter (String a_filterString, PartitionI::FilterMethod a_filterMethod) |
virtual sp< PartitionI > | createPartition (void) |
virtual void | draw (sp< DrawI > a_spDrawI, const fe::Color *a_pColor) |
Draw with current settings. More... | |
virtual void | draw (sp< DrawI > a_spDrawI, const fe::Color *a_pColor) const |
virtual void | draw (const SpatialTransform &a_transform, sp< DrawI > a_spDrawI, const fe::Color *a_pColor) |
virtual void | draw (const SpatialTransform &a_transform, sp< DrawI > a_spDrawI, const fe::Color *a_pColor) const |
virtual void | draw (const SpatialTransform &a_transform, sp< DrawI > a_spDrawI, const fe::Color *a_pColor, sp< DrawBufferI > a_spDrawBuffer, sp< PartitionI > a_spPartition) |
Public Member Functions inherited from fe::Component | |
const String & | name (void) const |
Return the components chosen name. More... | |
const String | verboseName (void) const |
Return the annotated chosen name. More... | |
void | setName (const String &name) |
Rename the component to anything you want. More... | |
hp< Registry > | registry (void) const |
Get the Registry that created this component. More... | |
void | adjoin (sp< Component > spComponent) |
Tie this component's lifetime to another. More... | |
sp< Component > | create (const String &implementation, BWORD quiet=FALSE) const |
Convienience function to registry()->create() More... | |
void | disjoin (void) |
Untie component from Hub, if connected. More... | |
String | factoryName (void) |
void | setLibrary (sp< Library > spLibrary) |
Store a reference to the library used to instantiate this component. More... | |
sp< Library > | library (void) |
Get the library that created the component. More... | |
void | setFactoryIndex (I32 a_factoryIndex) |
Set the library's factory index. More... | |
I32 | factoryIndex (void) |
Get the library's factory index. More... | |
void | setSingleton (BWORD set) |
Specify whether component is a singleton. More... | |
BWORD | isSingleton (void) |
Return whether component is a singleton. More... | |
virtual void | acquire (void) |
Specialized reference increment. More... | |
virtual void | release (void) |
Specialized reference decrement. More... | |
Public Member Functions inherited from fe::Handled< Component > | |
const hp< Component > & | getHandle (void) const |
Get a safe handle to this object. More... | |
Public Member Functions inherited from fe::Protectable | |
virtual I32 | protection (void) const |
virtual void | unprotect (void) |
Public Member Functions inherited from fe::Counted | |
virtual void | acquire (int &rCount) |
Increment the reference count (and get the count) More... | |
virtual void | abandon (void) |
Decrement the reference count. More... | |
int | count (void) const |
Return the count of references. More... | |
void | setName (const String &) |
void | trackReference (void *pReference, String what) |
void | untrackReference (void *pReference) |
void | registerRegion (void *pT, U32 bytes) |
Public Member Functions inherited from fe::Initialized | |
void | initializeAll (void) |
void | setActive (bool a_active) |
Public Member Functions inherited from fe::ext::SurfaceI | |
virtual void | setSampleMethod (SampleMethod a_sampleMethod)=0 |
Protected Member Functions | |
virtual void | cache (void) |
virtual void | resolveImpact (sp< ImpactI > a_spImpactI) const |
sp< SurfaceI::ImpactI > | computeImpact (const SpatialVector &a_origin, const SpatialVector &a_intersection, I32 a_vertexIndex) const |
openvdb::Vec3d | spatialToIndex (const SpatialVector &a_point) const |
SpatialVector | indexToSpatial (const openvdb::Vec3d &a_coord) const |
Protected Member Functions inherited from fe::ext::SurfaceBase | |
sp< ImpactI > | shootRay (const SpatialVector &a_origin, const SpatialVector &a_direction, Real a_maxDistance, BWORD a_anyHit, sp< ImpactI > a_spLastImpact) |
sp< ImpactI > | tubeImpact (const SpatialVector &a_origin, const SpatialVector &a_direction, Real a_maxDistance, Real a_radius0, Real a_radius1, BWORD a_anyHit, sp< DrawI > a_spDrawI, sp< ImpactI > a_spLastImpact) |
virtual void | checkCache (void) |
Protected Member Functions inherited from fe::Handled< Component > | |
void | abandonHandle (void) |
Protected Member Functions inherited from fe::Counted | |
int | releaseInternal (void) |
Decrement the reference count. More... | |
void | suppressReport (void) |
Protected Member Functions inherited from fe::Initialized | |
void | addInitializer (InitializeFunction function) |
Private Member Functions | |
I32 | nearestIndex (const SpatialVector &a_origin, Real a_maxDistance) const |
void | bindGridBase (openvdb::GridBase::ConstPtr &a_gridPtr) |
Private Attributes | |
String | m_vdbClass |
openvdb::FloatGrid::ConstPtr | m_floatGridPtr |
openvdb::Vec3SGrid::ConstPtr | m_cptGridPtr |
openvdb::Vec3SGrid::ConstPtr | m_normalGridPtr |
openvdb::Vec3SGrid::ConstPtr | m_uvGridPtr |
openvdb::tools::PointIndexGrid::Ptr | m_pointGridPtr |
PointList | m_pointList |
SpatialVector * | m_pVertexArray |
SpatialVector * | m_pNormalArray |
Color * | m_pColorArray |
SpatialVector * | m_pCptArray |
Real * | m_pValueArray |
I32 | m_vertexCount |
CountedPool< Impact > | m_vdbImpactPool |
Additional Inherited Members | |
Public Types inherited from fe::ext::SurfaceI | |
enum | SampleMethod { e_flat, e_linear, e_pointNormal, e_spline } |
enum | Containment { e_unknown, e_inside, e_outside } |
enum | Accuracy { e_sphere, e_triangle } |
enum | Triangulation { e_existingPoints, e_balanced } |
enum | Restrictions { e_unrestricted = 0x0, e_excludeCurves = 0x1, e_excludePolygons = 0x2 } |
Static Public Member Functions inherited from fe::Counted | |
static String | reportTracker (void) |
static U32 | trackerCount (void) |
Protected Types inherited from fe::Initialized | |
typedef void(* | InitializeFunction) (Initialized *) |
Static Protected Member Functions inherited from fe::ext::SurfaceBase | |
static void | drawHit (sp< DrawI > a_spDrawI, SpatialVector a_center, Real a_radius, Color a_color) |
Protected Attributes inherited from fe::ext::SurfaceSphere | |
WeakRecord | m_record |
SpatialVector | m_center |
Real | m_radius |
Color | m_emissive |
Color | m_ambient |
Color | m_diffuse |
Color | m_specular |
Real | m_shininess |
CountedPool< Impact > | m_sphereImpactPool |
Protected Attributes inherited from fe::ext::SurfaceBase | |
BWORD | m_cached |
SampleMethod | m_sampleMethod |
String | m_nodeName |
Restrictions | m_restrictions |
Related Functions inherited from fe::Component | |
FE_DL_EXPORT void FE_CDECL | checkUnload (sp< Library > &pLibrary, Component *pComponent=NULL) |
Delete the component and unload libraries where appropriate. More... | |
VDB Surface.
|
virtual |
associate with model data
Reimplemented from fe::ext::SurfaceBase.