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
 

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...
 
 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 * classType ()
 
- Static Public Member Functions inherited from FieldMapping
static const char * classType ()
 
- Static Public Member Functions inherited from RefBase
static const char * classType ()
 

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

Member Typedef Documentation

◆ Ptr

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

Convenience typedef.

Definition at line 225 of file FieldMapping.h.

◆ class_type

Definition at line 229 of file FieldMapping.h.

◆ base

Convenience typedef for referring to base class.

Definition at line 293 of file FieldMapping.h.

Constructor & Destructor Documentation

◆ NullFieldMapping() [1/2]

NullFieldMapping::NullFieldMapping ( )
inline

Definition at line 242 of file FieldMapping.h.

243  : FieldMapping()
244  { /* Empty */ }
FieldMapping()
Constructor.

◆ NullFieldMapping() [2/2]

NullFieldMapping::NullFieldMapping ( const Box3i extents)
inline

Definition at line 245 of file FieldMapping.h.

246  : FieldMapping(extents)
247  { /* Empty */ }
FieldMapping()
Constructor.

Member Function Documentation

◆ classType()

static const char* NullFieldMapping::classType ( )
inlinestatic

Definition at line 232 of file FieldMapping.h.

233  {
234  return "NullFieldMapping";
235  }

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

References FieldMapping::localToVoxel().

257  { 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...

◆ worldToVoxel() [2/2]

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

Implements FieldMapping.

Definition at line 258 of file FieldMapping.h.

References FieldMapping::localToVoxel().

259  { 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...

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

References FieldMapping::voxelToLocal().

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

◆ voxelToWorld() [2/2]

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

Implements FieldMapping.

Definition at line 263 of file FieldMapping.h.

References FieldMapping::voxelToLocal().

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

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

267  { lsP = wsP; }

◆ worldToLocal() [2/2]

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

Implements FieldMapping.

Definition at line 268 of file FieldMapping.h.

269  { lsP = wsP; }

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

272  { wsP = lsP; }

◆ localToWorld() [2/2]

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

Implements FieldMapping.

Definition at line 273 of file FieldMapping.h.

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

274  { wsP = lsP; }

◆ className()

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

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

Implements FieldMapping.

Definition at line 169 of file FieldMapping.cpp.

References FieldMapping::classType().

170 {
171  return std::string(classType());
172 }
static const char * classType()
Definition: FieldMapping.h:232

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

References FIELD3D_NAMESPACE_OPEN::k_nullMappingName().

178 {
179  // For null mappings it's simple - if the other one is also a null mapping
180  // then true, otherwise it's false.
181 
182  return other->className() == k_nullMappingName;
183 }
const string k_nullMappingName("NullFieldMapping")

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

References FieldMapping::clone(), and FieldMapping::m_res.

282  { 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

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

188 {
189  return Ptr(new NullFieldMapping(*this));
190 }
boost::intrusive_ptr< NullFieldMapping > Ptr
Convenience typedef.
Definition: FieldMapping.h:225

Member Data Documentation

◆ DEFINE_FIELD_RTTI_CONCRETE_CLASS

NullFieldMapping::DEFINE_FIELD_RTTI_CONCRETE_CLASS

Definition at line 230 of file FieldMapping.h.


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