Field3D
NullFieldMapping Class Reference

Trivial class, world space is equal to local space, i.e. the field is contained in the unit cube [0..1] in all axes. More...

#include <FieldMapping.h>

Inheritance diagram for NullFieldMapping:
FieldMapping RefBase

Public Types

typedef NullFieldMapping class_type
 
typedef boost::intrusive_ptr< NullFieldMappingPtr
 Convenience typedef. More...
 
- Public Types inherited from FieldMapping
typedef FieldMapping class_type
 
typedef boost::intrusive_ptr< FieldMappingPtr
 
- Public Types inherited from RefBase
typedef boost::intrusive_ptr< RefBasePtr
 
typedef boost::weak_ptr< RefBaseWeakPtr
 

Public Member Functions

Constructors & destructor
 NullFieldMapping ()
 
 NullFieldMapping (const Box3i &extents)
 
From FieldMapping
virtual void worldToVoxel (const V3d &wsP, V3d &vsP) const
 Transform from world space position into voxel space. More...
 
virtual void worldToVoxel (const V3d &wsP, V3d &vsP, float) const
 
virtual void voxelToWorld (const V3d &vsP, V3d &wsP) const
 Transform from voxel space position into world space. More...
 
virtual void voxelToWorld (const V3d &vsP, V3d &wsP, float) const
 
virtual void worldToLocal (const V3d &wsP, V3d &lsP) const
 Transform from world space position into local space. More...
 
virtual void worldToLocal (const V3d &wsP, V3d &lsP, float) const
 
virtual void localToWorld (const V3d &lsP, V3d &wsP) const
 Transform from local space position into world space. More...
 
virtual void localToWorld (const V3d &lsP, V3d &wsP, float) const
 
virtual std::string className () const
 Returns the FieldMapping type name. Used when writing/reading from disk. More...
 
virtual bool isIdentical (FieldMapping::Ptr other, double tolerance=0.0) const
 Whether the mapping is identical to another mapping. More...
 
virtual V3d wsVoxelSize (int, int, int) const
 Returns world-space size of a voxel at the specified coordinate. More...
 
virtual FieldMapping::Ptr clone () const
 Returns a pointer to a copy of the mapping, pure virtual so ensure derived classes properly implement it. More...
 
- Public Member Functions inherited from FieldMapping
const V3dorigin () const
 Returns the origin. More...
 
const V3dresolution () const
 Returns the resolution. More...
 
void setExtents (const Box3i &extents)
 This sets the field extents information to use for defining the local coordinate space. More...
 
 FieldMapping ()
 Constructor. More...
 
 FieldMapping (const Box3i &extents)
 Construct with known extents. More...
 
virtual ~FieldMapping ()
 Destructor. More...
 
virtual void extentsChanged ()
 Implement this if the subclass needs to update itself when the resolution changes. More...
 
void localToVoxel (const V3d &lsP, V3d &vsP) const
 Transform from local space to voxel space. This is just a multiplication by the resolution of the Field that we're mapping. More...
 
void voxelToLocal (const V3d &vsP, V3d &lsP) const
 Inverse of localToVoxel. More...
 
- Public Member Functions inherited from RefBase
void ref () const
 Used by boost::intrusive_pointer. More...
 
size_t refcnt ()
 Used by boost::intrusive_pointer. More...
 
void unref () const
 Used by boost::intrusive_pointer. More...
 
WeakPtr weakPtr () const
 
 RefBase ()
 
 RefBase (const RefBase &)
 Copy constructor. More...
 
RefBaseoperator= (const RefBase &)
 Assignment operator. More...
 
virtual ~RefBase ()
 Destructor. More...
 
virtual bool checkRTTI (const char *typenameStr)=0
 This function is only implemented by concrete classes and triggers the actual RTTI check through matchRTTI();. More...
 
bool matchRTTI (const char *typenameStr)
 Performs a check to see if the given typename string matches this class' This needs to be implemented in -all- subclasses, even abstract ones. More...
 

Static Public Member Functions

static const char * staticClassType ()
 
- Static Public Member Functions inherited from FieldMapping
static const char * staticClassType ()
 
- Static Public Member Functions inherited from RefBase
static const char * staticClassType ()
 

Public Attributes

 DEFINE_FIELD_RTTI_CONCRETE_CLASS
 
- Public Attributes inherited from FieldMapping
 DEFINE_FIELD_RTTI_ABSTRACT_CLASS
 

Private Types

typedef FieldMapping base
 Convenience typedef for referring to base class. More...
 

Additional Inherited Members

- Protected Attributes inherited from FieldMapping
V3d m_origin
 The integer voxel-space origin of the underlying Field object. Is equal to field.extents.min. More...
 
V3d m_res
 The integer voxel-space resolution of the underlying Field object. Is equal to field.extents.max - field.extents.min + 1. More...
 

Detailed Description

Trivial class, world space is equal to local space, i.e. the field is contained in the unit cube [0..1] in all axes.

Refer to using_mappings for examples of how to use this in your code.

Definition at line 229 of file FieldMapping.h.

Member Typedef Documentation

typedef boost::intrusive_ptr<NullFieldMapping> NullFieldMapping::Ptr

Convenience typedef.

Definition at line 236 of file FieldMapping.h.

Definition at line 240 of file FieldMapping.h.

Convenience typedef for referring to base class.

Definition at line 304 of file FieldMapping.h.

Constructor & Destructor Documentation

NullFieldMapping::NullFieldMapping ( )
inline

Definition at line 253 of file FieldMapping.h.

254  : FieldMapping()
255  { /* Empty */ }
FieldMapping()
Constructor.
NullFieldMapping::NullFieldMapping ( const Box3i extents)
inline

Definition at line 256 of file FieldMapping.h.

257  : FieldMapping(extents)
258  { /* Empty */ }
FieldMapping()
Constructor.

Member Function Documentation

static const char* NullFieldMapping::staticClassType ( )
inlinestatic

Definition at line 243 of file FieldMapping.h.

244  {
245  return "NullFieldMapping";
246  }
virtual void NullFieldMapping::worldToVoxel ( const V3d wsP,
V3d vsP 
) const
inlinevirtual

Transform from world space position into voxel space.

Implements FieldMapping.

Definition at line 267 of file FieldMapping.h.

References FieldMapping::localToVoxel().

268  { localToVoxel(wsP, vsP); }
void localToVoxel(const V3d &lsP, V3d &vsP) const
Transform from local space to voxel space. This is just a multiplication by the resolution of the Fie...
virtual void NullFieldMapping::worldToVoxel ( const V3d wsP,
V3d vsP,
float   
) const
inlinevirtual

Implements FieldMapping.

Definition at line 269 of file FieldMapping.h.

References FieldMapping::localToVoxel().

270  { localToVoxel(wsP, vsP); }
void localToVoxel(const V3d &lsP, V3d &vsP) const
Transform from local space to voxel space. This is just a multiplication by the resolution of the Fie...
virtual void NullFieldMapping::voxelToWorld ( const V3d vsP,
V3d wsP 
) const
inlinevirtual

Transform from voxel space position into world space.

Implements FieldMapping.

Definition at line 272 of file FieldMapping.h.

References FieldMapping::voxelToLocal().

273  { voxelToLocal(vsP, wsP); }
void voxelToLocal(const V3d &vsP, V3d &lsP) const
Inverse of localToVoxel.
virtual void NullFieldMapping::voxelToWorld ( const V3d vsP,
V3d wsP,
float   
) const
inlinevirtual

Implements FieldMapping.

Definition at line 274 of file FieldMapping.h.

References FieldMapping::voxelToLocal().

275  { voxelToLocal(vsP, wsP); }
void voxelToLocal(const V3d &vsP, V3d &lsP) const
Inverse of localToVoxel.
virtual void NullFieldMapping::worldToLocal ( const V3d wsP,
V3d lsP 
) const
inlinevirtual

Transform from world space position into local space.

Implements FieldMapping.

Definition at line 277 of file FieldMapping.h.

278  { lsP = wsP; }
virtual void NullFieldMapping::worldToLocal ( const V3d wsP,
V3d lsP,
float   
) const
inlinevirtual

Implements FieldMapping.

Definition at line 279 of file FieldMapping.h.

280  { lsP = wsP; }
virtual void NullFieldMapping::localToWorld ( const V3d lsP,
V3d wsP 
) const
inlinevirtual

Transform from local space position into world space.

Implements FieldMapping.

Definition at line 282 of file FieldMapping.h.

283  { wsP = lsP; }
virtual void NullFieldMapping::localToWorld ( const V3d lsP,
V3d wsP,
float   
) const
inlinevirtual

Implements FieldMapping.

Definition at line 284 of file FieldMapping.h.

References FieldMapping::className(), and FieldMapping::isIdentical().

285  { wsP = lsP; }
std::string NullFieldMapping::className ( ) const
virtual

Returns the FieldMapping type name. Used when writing/reading from disk.

Implements FieldMapping.

Definition at line 202 of file FieldMapping.cpp.

References FieldMapping::staticClassType().

203 {
204  return std::string(staticClassType());
205 }
static const char * staticClassType()
Definition: FieldMapping.h:243
bool NullFieldMapping::isIdentical ( FieldMapping::Ptr  other,
double  tolerance = 0.0 
) const
virtual

Whether the mapping is identical to another mapping.

Implements FieldMapping.

Definition at line 209 of file FieldMapping.cpp.

References FIELD3D_NAMESPACE_OPEN::k_nullMappingName().

211 {
212  // For null mappings it's simple - if the other one is also a null mapping
213  // then true, otherwise it's false.
214 
215  return other->className() == k_nullMappingName;
216 }
const string k_nullMappingName("NullFieldMapping")
virtual V3d NullFieldMapping::wsVoxelSize ( int  i,
int  j,
int  k 
) const
inlinevirtual

Returns world-space size of a voxel at the specified coordinate.

Implements FieldMapping.

Definition at line 292 of file FieldMapping.h.

References FieldMapping::clone().

293  { return V3d(1.0 / m_res.x, 1.0 / m_res.y, 1.0 / m_res.z); }
V3d m_res
The integer voxel-space resolution of the underlying Field object. Is equal to field.extents.max - field.extents.min + 1.
Definition: FieldMapping.h:193
Imath::V3d V3d
Definition: SpiMathLib.h:74
FieldMapping::Ptr NullFieldMapping::clone ( ) const
virtual

Returns a pointer to a copy of the mapping, pure virtual so ensure derived classes properly implement it.

Implements FieldMapping.

Definition at line 220 of file FieldMapping.cpp.

221 {
222  return Ptr(new NullFieldMapping(*this));
223 }
boost::intrusive_ptr< NullFieldMapping > Ptr
Convenience typedef.
Definition: FieldMapping.h:236

Member Data Documentation

NullFieldMapping::DEFINE_FIELD_RTTI_CONCRETE_CLASS

Definition at line 241 of file FieldMapping.h.


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