Free Electron
Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes | List of all members
fe::ext::SurfaceVDB Class Reference

VDB Surface. More...

#include <SurfaceVDB.h>

Inheritance diagram for fe::ext::SurfaceVDB:
Inheritance graph
[legend]

Public Member Functions

virtual Protectableclone (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::ImpactInearestPoint (const SpatialVector &a_origin) const
 
virtual sp< SurfaceI::ImpactIrayImpact (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< ImpactInearestPoint (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< ImpactIsampleImpact (I32 a_triangleIndex, SpatialBary a_barycenter)
 
virtual sp< ImpactIsampleImpact (I32 a_triangleIndex, SpatialBary a_barycenter) const
 
virtual sp< ImpactIsampleImpact (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< ImpactInearestPoint (const SpatialTransform &a_transform, const SpatialVector &a_origin, Real a_maxDistance)
 
virtual sp< ImpactInearestPoint (const SpatialVector &a_origin, Real a_maxDistance, BWORD a_anyHit)
 
virtual sp< ImpactInearestPoint (const SpatialVector &a_origin, Real a_maxDistance)
 
virtual sp< ImpactInearestPoint (const SpatialVector &a_origin)
 
virtual sp< ImpactInearestPoint (const Vector2 &a_uv)
 
virtual sp< ImpactInearestPoint (const SpatialTransform &a_transform, const SpatialVector &a_origin, Real a_maxDistance) const
 
virtual sp< ImpactInearestPoint (const SpatialVector &a_origin, Real a_maxDistance, BWORD a_anyHit) const
 
virtual sp< ImpactInearestPoint (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< ImpactIrayImpact (const SpatialTransform &a_transform, const SpatialVector &a_origin, const SpatialVector &a_direction, Real a_maxDistance, BWORD a_anyHit)
 
virtual sp< ImpactIrayImpact (const SpatialTransform &a_transform, const SpatialVector &a_origin, const SpatialVector &a_direction, Real a_maxDistance, BWORD a_anyHit) const
 
virtual sp< ImpactIrayImpact (const SpatialVector &a_origin, const SpatialVector &a_direction, Real a_maxDistance, BWORD a_anyHit)
 
virtual sp< ImpactIrayImpact (const SpatialVector &a_origin, const SpatialVector &a_direction, Real a_maxDistance)
 
virtual sp< ImpactIrayImpact (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< ImpactIconeImpact (const SpatialVector &a_origin, const SpatialVector &a_direction, Real a_maxDistance, Real a_coneAngle, sp< DrawI > a_spDrawI)
 
virtual sp< ImpactIconeImpact (const SpatialTransform &a_transform, const SpatialVector &a_origin, const SpatialVector &a_direction, Real a_maxDistance, Real a_coneAngle, sp< DrawI > a_spDrawI)
 
virtual sp< ImpactIcapsuleImpact (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< ImpactIcapsuleImpact (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< GaugeIgauge (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< PartitionIcreatePartition (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 Stringname (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< Registryregistry (void) const
 Get the Registry that created this component. More...
 
void adjoin (sp< Component > spComponent)
 Tie this component's lifetime to another. More...
 
sp< Componentcreate (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< Librarylibrary (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::ImpactIcomputeImpact (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< ImpactIshootRay (const SpatialVector &a_origin, const SpatialVector &a_direction, Real a_maxDistance, BWORD a_anyHit, sp< ImpactI > a_spLastImpact)
 
sp< ImpactItubeImpact (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
 
SpatialVectorm_pVertexArray
 
SpatialVectorm_pNormalArray
 
Colorm_pColorArray
 
SpatialVectorm_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
 

Detailed Description

VDB Surface.

Member Function Documentation

◆ bind()

void fe::ext::SurfaceVDB::bind ( Instance  a_instance)
virtual

associate with model data

Reimplemented from fe::ext::SurfaceBase.


The documentation for this class was generated from the following files: