/usr/include/ITK-4.5/itkSceneSpatialObject.h is in libinsighttoolkit4-dev 4.5.0-3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 | /*=========================================================================
*
* Copyright Insight Software Consortium
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0.txt
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*=========================================================================*/
#ifndef __itkSceneSpatialObject_h
#define __itkSceneSpatialObject_h
#include "itkSpatialObject.h"
#include <list>
namespace itk
{
/** \class SceneSpatialObject
* \brief a SceneSpatialObject has a list of SpatialObjects
*
* This class represent a SceneSpatialObject object into which one can
* plug any kind of spatial object.
*
* \sa SpatialObject
* \ingroup ITKSpatialObjects
*/
template< unsigned int TSpaceDimension = 3 >
class SceneSpatialObject:
public Object
{
public:
typedef SceneSpatialObject< TSpaceDimension > Self;
typedef Object Superclass;
typedef Superclass::Pointer SuperclassPointer;
typedef SmartPointer< Self > Pointer;
typedef SmartPointer< const Self > ConstPointer;
typedef SpatialObject< TSpaceDimension > ObjectType;
typedef SpatialObject< TSpaceDimension > SpatialObjectType;
typedef typename SpatialObjectType::Pointer SpatialObjectPointer;
typedef std::list< SpatialObjectPointer > ObjectListType;
itkStaticConstMacro(MaximumDepth, unsigned int, 9999999);
/** Method for creation through the object factory */
itkNewMacro(Self);
itkTypeMacro(SceneSpatialObject, Object);
/** Add an object to the list of children. */
void AddSpatialObject(SpatialObject< TSpaceDimension > *pointer);
/** Remove the object passed as arguments from the list of
* children. May this function
* should return a false value if the object to remove is
* not found in the list. */
void RemoveSpatialObject(SpatialObject< TSpaceDimension > *object);
/** Returns a list of pointer to the objects in the scene.
* \warning This function creates a new list therefore
* the user is responsible for the deletion of the list. */
ObjectListType * GetObjects(unsigned int depth = MaximumDepth,
char *name = NULL);
/** Returns the number of children currently assigned to
* the SceneSpatialObject object. */
unsigned int GetNumberOfObjects(unsigned int depth = MaximumDepth,
char *name = NULL);
/** Set the list of pointers to children to the list passed as
* argument. */
void SetObjects(ObjectListType & children);
/** Returns the latest modified time of all the objects contained
* in this SceneSpatialObject object. */
ModifiedTimeType GetMTime(void) const;
/** Get/Set the ParentID */
void SetParentId(int parentid) { m_ParentId = parentid; }
int GetParentId(void) { return m_ParentId; }
/** Return a SpatialObject in the SceneSpatialObject given its ID */
SpatialObject< TSpaceDimension > * GetObjectById(int Id);
/** In practice, this is used to transform an imported MetaIO scene hierarchy
* specified only by Ids into the SceneSpatialObject hierarchy specified by
* Ids and Child/Parent lists. */
bool FixHierarchy(void);
bool CheckIdValidity(void);
void FixIdValidity(void);
int GetNextAvailableId();
/** Clear function : Remove all the objects in the scene */
void Clear();
protected:
SceneSpatialObject(const Self &); //purposely not implemented
void operator=(const Self &); //purposely not implemented
/** List of the children object plug to the SceneSpatialObject
* spatial object. */
ObjectListType m_Objects;
/** constructor */
SceneSpatialObject();
/** destructor */
virtual ~SceneSpatialObject();
/** Print the object informations in a stream. */
virtual void PrintSelf(std::ostream & os, Indent indent) const;
/** Parent ID : default = -1 */
int m_ParentId;
};
} // end of namespace itk
#ifndef ITK_MANUAL_INSTANTIATION
#include "itkSceneSpatialObject.hxx"
#endif
#endif // __SceneSpatialObject_h
|