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.
 
- 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.
 
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.
 
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.
 
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.
 
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.
 
virtual bool isIdentical (FieldMapping::Ptr other, double tolerance=0.0) const
 Whether the mapping is identical to another mapping.
 
virtual V3d wsVoxelSize (int, int, int) const
 Returns world-space size of a voxel at the specified coordinate.
 
virtual FieldMapping::Ptr clone () const
 Returns a pointer to a copy of the mapping, pure virtual so ensure derived classes properly implement it.
 
- Public Member Functions inherited from FieldMapping
const V3dorigin () const
 Returns the origin.
 
const V3dresolution () const
 Returns the resolution.
 
void setExtents (const Box3i &extents)
 This sets the field extents information to use for defining the local coordinate space.
 
 FieldMapping ()
 Constructor.
 
 FieldMapping (const Box3i &extents)
 Construct with known extents.
 
virtual ~FieldMapping ()
 Destructor.
 
virtual void extentsChanged ()
 Implement this if the subclass needs to update itself when the resolution changes.
 
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.
 
void voxelToLocal (const V3d &vsP, V3d &lsP) const
 Inverse of localToVoxel.
 
- Public Member Functions inherited from RefBase
void ref () const
 Used by boost::intrusive_pointer.
 
size_t refcnt ()
 Used by boost::intrusive_pointer.
 
void unref () const
 Used by boost::intrusive_pointer.
 
WeakPtr weakPtr () const
 
 RefBase ()
 
 RefBase (const RefBase &)
 Copy constructor.
 
RefBaseoperator= (const RefBase &)
 Assignment operator.
 
virtual ~RefBase ()
 Destructor.
 
virtual bool checkRTTI (const char *typenameStr)=0
 This function is only implemented by concrete classes and triggers the actual RTTI check through matchRTTI();.
 
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.
 

Static Public Member Functions

static const charstaticClassType ()
 
- Static Public Member Functions inherited from FieldMapping
static const charstaticClassType ()
 
- Static Public Member Functions inherited from RefBase
static const charstaticClassType ()
 

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.
 

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.
 
V3d m_res
 The integer voxel-space resolution of the underlying Field object. Is equal to field.extents.max - field.extents.min + 1.
 

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 236 of file FieldMapping.h.

Member Typedef Documentation

◆ Ptr

Convenience typedef.

Definition at line 243 of file FieldMapping.h.

◆ class_type

◆ base

Convenience typedef for referring to base class.

Definition at line 311 of file FieldMapping.h.

Constructor & Destructor Documentation

◆ NullFieldMapping() [1/2]

NullFieldMapping::NullFieldMapping ( )
inline

Definition at line 260 of file FieldMapping.h.

261 : FieldMapping()
262 { /* Empty */ }
FieldMapping()
Constructor.

Referenced by clone().

◆ NullFieldMapping() [2/2]

NullFieldMapping::NullFieldMapping ( const Box3i & extents)
inline

Definition at line 263 of file FieldMapping.h.

264 : FieldMapping(extents)
265 { /* Empty */ }

Member Function Documentation

◆ staticClassType()

static const char * NullFieldMapping::staticClassType ( )
inlinestatic

Definition at line 250 of file FieldMapping.h.

251 {
252 return "NullFieldMapping";
253 }

Referenced by className().

◆ worldToVoxel() [1/2]

virtual void NullFieldMapping::worldToVoxel ( const V3d & wsP,
V3d & vsP ) const
inlinevirtual

Transform from world space position into voxel space.

Implements FieldMapping.

Definition at line 274 of file FieldMapping.h.

275 { localToVoxel(wsP, vsP); }
#define FIELD3D_MTX_T
Definition StdMathLib.h:99
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...

References FIELD3D_MTX_T.

◆ worldToVoxel() [2/2]

virtual void NullFieldMapping::worldToVoxel ( const V3d & wsP,
V3d & vsP,
float  ) const
inlinevirtual

Implements FieldMapping.

Definition at line 276 of file FieldMapping.h.

277 { localToVoxel(wsP, vsP); }

References FIELD3D_MTX_T.

◆ voxelToWorld() [1/2]

virtual void NullFieldMapping::voxelToWorld ( const V3d & vsP,
V3d & wsP ) const
inlinevirtual

Transform from voxel space position into world space.

Implements FieldMapping.

Definition at line 279 of file FieldMapping.h.

280 { voxelToLocal(vsP, wsP); }
void voxelToLocal(const V3d &vsP, V3d &lsP) const
Inverse of localToVoxel.

References FIELD3D_MTX_T.

◆ voxelToWorld() [2/2]

virtual void NullFieldMapping::voxelToWorld ( const V3d & vsP,
V3d & wsP,
float  ) const
inlinevirtual

Implements FieldMapping.

Definition at line 281 of file FieldMapping.h.

282 { voxelToLocal(vsP, wsP); }

References FIELD3D_MTX_T.

◆ worldToLocal() [1/2]

virtual void NullFieldMapping::worldToLocal ( const V3d & wsP,
V3d & lsP ) const
inlinevirtual

Transform from world space position into local space.

Implements FieldMapping.

Definition at line 284 of file FieldMapping.h.

285 { lsP = wsP; }

References FIELD3D_MTX_T.

◆ worldToLocal() [2/2]

virtual void NullFieldMapping::worldToLocal ( const V3d & wsP,
V3d & lsP,
float  ) const
inlinevirtual

Implements FieldMapping.

Definition at line 286 of file FieldMapping.h.

287 { lsP = wsP; }

References FIELD3D_MTX_T.

◆ localToWorld() [1/2]

virtual void NullFieldMapping::localToWorld ( const V3d & lsP,
V3d & wsP ) const
inlinevirtual

Transform from local space position into world space.

Implements FieldMapping.

Definition at line 289 of file FieldMapping.h.

290 { wsP = lsP; }

References FIELD3D_MTX_T.

◆ localToWorld() [2/2]

virtual void NullFieldMapping::localToWorld ( const V3d & lsP,
V3d & wsP,
float  ) const
inlinevirtual

Implements FieldMapping.

Definition at line 291 of file FieldMapping.h.

292 { wsP = lsP; }

References FIELD3D_MTX_T.

◆ className()

std::string NullFieldMapping::className ( ) const
virtual

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

Implements FieldMapping.

Definition at line 226 of file FieldMapping.cpp.

227{
228 return std::string(staticClassType());
229}
static const char * staticClassType()

References staticClassType().

◆ isIdentical()

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 233 of file FieldMapping.cpp.

235{
236 // For null mappings it's simple - if the other one is also a null mapping
237 // then true, otherwise it's false.
238
239 return other->className() == k_nullMappingName;
240}
const string k_nullMappingName("NullFieldMapping")

References FIELD3D_MTX_T.

◆ wsVoxelSize()

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 299 of file FieldMapping.h.

300 { return V3d(1.0 / m_res.x, 1.0 / m_res.y, 1.0 / m_res.z); }
Imath::V3d V3d
Definition SpiMathLib.h:74
V3d m_res
The integer voxel-space resolution of the underlying Field object. Is equal to field....

◆ clone()

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 244 of file FieldMapping.cpp.

245{
246 return Ptr(new NullFieldMapping(*this));
247}
boost::intrusive_ptr< NullFieldMapping > Ptr
Convenience typedef.

References NullFieldMapping().

Member Data Documentation

◆ DEFINE_FIELD_RTTI_CONCRETE_CLASS

NullFieldMapping::DEFINE_FIELD_RTTI_CONCRETE_CLASS

Definition at line 248 of file FieldMapping.h.


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