18#ifndef itkSpatialObject_h
19#define itkSpatialObject_h
57template <
unsigned int VDimension = 3>
69 static constexpr unsigned int MaximumDepth = std::numeric_limits<unsigned int>::max();
142 itkGetConstReferenceMacro(Id,
int);
148 itkSetMacro(TypeName, std::string);
175 this->m_Property = property;
184 return this->m_Property;
190 return this->m_Property;
203 return Superclass::GetMTime();
279 unsigned int depth = 0,
280 const std::string & name =
"")
const;
304 unsigned int depth = 0,
305 const std::string & name =
"")
const;
310 unsigned int depth = 0,
311 const std::string & name =
"")
const;
321 itkSetMacro(DefaultInsideValue,
double);
322 itkGetConstMacro(DefaultInsideValue,
double);
327 itkSetMacro(DefaultOutsideValue,
double);
328 itkGetConstMacro(DefaultOutsideValue,
double);
337#ifndef ITK_FUTURE_LEGACY_REMOVE
343 unsigned int depth = 0,
344 const std::string & name =
"")
const;
352#ifndef ITK_FUTURE_LEGACY_REMOVE
369#ifndef ITK_FUTURE_LEGACY_REMOVE
379 short unsigned int order,
381 unsigned int depth = 0,
382 const std::string & name =
"",
391#ifndef ITK_FUTURE_LEGACY_REMOVE
396 short unsigned int order,
398 unsigned int depth = 0,
399 const std::string & name =
"",
434 itkSetMacro(ParentId,
int);
435 itkGetConstReferenceMacro(ParentId,
int);
467 GetChildren(
unsigned int depth = 0,
const std::string & name =
"")
const;
482 unsigned int depth = 0,
483 const std::string & name =
"")
const;
577 return m_LargestPossibleRegion;
592 return m_BufferedRegion;
616 return m_RequestedRegion;
682 return this->IsInsideInWorldSpace(
point);
685#if !defined(ITK_LEGACY_REMOVE)
686 itkLegacyMacro(
void ComputeObjectToWorldTransform())
691 itkLegacyMacro(
void ComputeBoundingBox())
697 itkLegacyMacro(
virtual bool IsInside(
const PointType &
point,
unsigned int depth = 0,
const std::string & name =
"")
700 return IsInsideInObjectSpace(
point, depth, name);
730 return m_MyBoundingBoxInObjectSpace.GetPointer();
741 std::string m_TypeName{
"SpatialObject" };
745 int m_ParentId{ -1 };
766 double m_DefaultInsideValue{ 1.0 };
769 double m_DefaultOutsideValue{ 0.0 };
774#if !defined(ITK_WRAPPING_PARSER)
775# ifndef ITK_MANUAL_INSTANTIATION
776# include "itkSpatialObject.hxx"
Represent and compute information about bounding boxes.
A templated class holding a n-Dimensional covariant vector.
Base class for all data objects in ITK.
Control indentation during Print() invocation.
Base class for most ITK classes.
A templated class holding a geometric point in n-Dimensional space.
Implementation of the composite pattern.
typename TransformType::Pointer TransformPointer
void SetObjectToParentTransform(const TransformType *transform)
virtual const BoundingBoxType * GetFamilyBoundingBoxInWorldSpace() const
virtual void ComputeMyBoundingBox()
std::list< ConstPointer > ChildrenConstListType
virtual Self * GetParent()
void SetProperty(const PropertyType &property)
virtual ChildrenListType * GetChildren(unsigned int depth=0, const std::string &name="") const
virtual ChildrenConstListType * GetConstChildren(unsigned int depth=0, const std::string &name="") const
virtual bool IsInsideChildrenInObjectSpace(const PointType &point, unsigned int depth=0, const std::string &name="") const
virtual void AddChildrenToList(ChildrenListType *childrenList, unsigned int depth=0, const std::string &name="") const
void UpdateOutputInformation() override
virtual std::string GetTypeName() const
ChildrenListType * ChildrenListPointer
bool VerifyRequestedRegion() override
virtual const BoundingBoxType * GetMyBoundingBoxInWorldSpace() const
virtual void DerivativeAtInObjectSpace(const PointType &point, short unsigned int order, CovariantVectorType &value, unsigned int depth=0, const std::string &name="", const DerivativeOffsetType &offset=MakeFilled< DerivativeOffsetType >(1))
virtual std::string GetClassNameAndDimension() const
virtual bool IsInsideInObjectSpace(const PointType &point) const
const PropertyType & GetProperty() const
virtual void SetLargestPossibleRegion(const RegionType ®ion)
virtual bool IsEvaluableAtChildrenInObjectSpace(const PointType &point, unsigned int depth=0, const std::string &name="") const
virtual void AddChildrenToConstList(ChildrenConstListType *childrenList, unsigned int depth=0, const std::string &name="") const
virtual const Self * GetParent() const
int GetNextAvailableId() const
void SetRequestedRegionToLargestPossibleRegion() override
void SetRequestedRegion(const DataObject *data) override
void SetParent(Self *parent)
bool ValueAtInWorldSpace(const PointType &point, double &value, unsigned int depth=0, const std::string &name="") const
virtual const RegionType & GetRequestedRegion() const
virtual void SetRequestedRegion(const RegionType ®ion)
bool RequestedRegionIsOutsideOfTheBufferedRegion() override
void PrintSelf(std::ostream &os, Indent indent) const override
bool RemoveChild(Self *pointer)
bool IsInsideInWorldSpace(const PointType &point, unsigned int depth, const std::string &name="") const
void DerivativeAtInWorldSpace(const PointType &point, short unsigned int order, CovariantVectorType &value, unsigned int depth=0, const std::string &name="", const DerivativeOffsetType &offset=MakeFilled< DerivativeOffsetType >(1))
unsigned int GetMaximumDepth() const
virtual bool ComputeFamilyBoundingBox(unsigned int depth=0, const std::string &name="") const
ModifiedTimeType GetMTime() const override
void ProtectedComputeObjectToWorldTransform()
virtual const RegionType & GetLargestPossibleRegion() const
virtual bool ValueAtInObjectSpace(const PointType &point, double &value, unsigned int depth=0, const std::string &name="") const
unsigned int ObjectDimensionType
bool IsInsideInObjectSpace(const PointType &point, unsigned int depth, const std::string &name="") const
LightObject::Pointer InternalClone() const override
std::list< Pointer > ObjectListType
bool IsEvaluableAtInWorldSpace(const PointType &point, unsigned int depth=0, const std::string &name="") const
unsigned int GetObjectDimension() const
void SetChildren(ChildrenListType &children)
SpatialObject< VDimension > * GetObjectById(int id)
ChildrenConstListType * ChildrenConstListPointer
bool FixParentChildHierarchyUsingParentIds()
unsigned int GetNumberOfChildren(unsigned int depth=0, const std::string &name="") const
void AddChild(Self *pointer)
const TransformType * GetObjectToWorldTransformInverse() const
virtual bool ValueAtChildrenInObjectSpace(const PointType &point, double &value, unsigned int depth=0, const std::string &name="") const
void RemoveAllChildren(unsigned int depth=MaximumDepth)
~SpatialObject() override
ModifiedTimeType GetMyMTime() const
const TransformType * GetObjectToParentTransformInverse() const
virtual bool HasParent() const
virtual void SetBufferedRegion(const RegionType ®ion)
bool Evaluate(const PointType &point) const
void SetObjectToWorldTransform(const TransformType *transform)
void ComputeObjectToParentTransform()
typename BoundingBoxType::Pointer BoundingBoxPointer
virtual bool IsEvaluableAtInObjectSpace(const PointType &point, unsigned int depth=0, const std::string &name="") const
PropertyType & GetProperty()
BoundingBoxType * GetModifiableMyBoundingBoxInObjectSpace()
std::list< ConstPointer > ObjectConstListType
std::list< Pointer > ChildrenListType
bool CheckIdValidity() const
bool IsInsideInWorldSpace(const PointType &point) const
virtual const RegionType & GetBufferedRegion() const
void CopyInformation(const DataObject *data) override
A templated class holding a n-Dimensional vector.
Define a front-end to the STL "vector" container that conforms to the IndexedContainerInterface.
SmartPointer< Self > Pointer
ImageBaseType::PointType PointType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
class ITK_FORWARD_EXPORT DataObject
*par Constraints *The filter image with at least two dimensions and a vector *length of at least The theory supports extension to scalar but *the implementation of the itk vector classes do not **The template parameter TRealType must be floating point(float or double) or *a user-defined "real" numerical type with arithmetic operations defined *sufficient to compute derivatives. **\par Performance *This filter will automatically multithread if run with *SetUsePrincipleComponents
SizeValueType ModifiedTimeType