gdcmSurface.h
Go to the documentation of this file.
/*=========================================================================
Program: GDCM (Grassroots DICOM). A DICOM library
Copyright (c) 2006-2011 Mathieu Malaterre
All rights reserved.
See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
#ifndef GDCMSURFACE_H
#define GDCMSURFACE_H
#include <gdcmObject.h>
#include <gdcmDataElement.h>
#include <gdcmMeshPrimitive.h>
#include "gdcmSegmentHelper.h" // for BasicCodedEntry
namespace gdcm
{
class GDCM_EXPORT Surface : public Object
{
public:
typedef enum {
NO = 0,
YES,
UNKNOWN,
STATES_END
} STATES;
static const char * GetSTATESString(STATES state);
static STATES GetSTATES(const char * state);
typedef enum {
SURFACE = 0,
WIREFRAME,
POINTS,
VIEWType_END
} VIEWType;
static const char * GetVIEWTypeString(VIEWType type);
static VIEWType GetVIEWType(const char * type);
Surface();
~Surface() override;
//** Common getters/setters **//
unsigned long GetSurfaceNumber() const;
void SetSurfaceNumber(const unsigned long nb);
const char * GetSurfaceComments() const;
void SetSurfaceComments(const char * comment);
bool GetSurfaceProcessing() const;
void SetSurfaceProcessing(bool b);
float GetSurfaceProcessingRatio() const;
void SetSurfaceProcessingRatio(const float ratio);
const char * GetSurfaceProcessingDescription() const;
void SetSurfaceProcessingDescription(const char * description);
SegmentHelper::BasicCodedEntry const & GetProcessingAlgorithm() const;
SegmentHelper::BasicCodedEntry & GetProcessingAlgorithm();
void SetProcessingAlgorithm(SegmentHelper::BasicCodedEntry const & BSE);
unsigned short GetRecommendedDisplayGrayscaleValue() const;
void SetRecommendedDisplayGrayscaleValue(const unsigned short vl);
const unsigned short * GetRecommendedDisplayCIELabValue() const;
unsigned short GetRecommendedDisplayCIELabValue(const unsigned int idx) const;
void SetRecommendedDisplayCIELabValue(const unsigned short vl[3]);
void SetRecommendedDisplayCIELabValue(const unsigned short vl, const unsigned int idx = 0);
void SetRecommendedDisplayCIELabValue(const std::vector< unsigned short > & vl);
float GetRecommendedPresentationOpacity() const;
void SetRecommendedPresentationOpacity(const float opacity);
VIEWType GetRecommendedPresentationType() const;
void SetRecommendedPresentationType(VIEWType type);
STATES GetFiniteVolume() const;
void SetFiniteVolume(STATES state);
STATES GetManifold() const;
void SetManifold(STATES state);
SegmentHelper::BasicCodedEntry const & GetAlgorithmFamily() const;
SegmentHelper::BasicCodedEntry & GetAlgorithmFamily();
void SetAlgorithmFamily(SegmentHelper::BasicCodedEntry const & BSE);
const char * GetAlgorithmVersion() const;
void SetAlgorithmVersion(const char * str);
const char * GetAlgorithmName() const;
void SetAlgorithmName(const char * str);
//** Points getters/setters **//
unsigned long GetNumberOfSurfacePoints() const;
void SetNumberOfSurfacePoints(const unsigned long nb);
const DataElement & GetPointCoordinatesData() const;
DataElement & GetPointCoordinatesData();
void SetPointCoordinatesData(DataElement const & de);
const float * GetPointPositionAccuracy() const;
void SetPointPositionAccuracy(const float * accuracies);
float GetMeanPointDistance() const;
void SetMeanPointDistance(float average);
float GetMaximumPointDistance() const;
void SetMaximumPointDistance(float maximum);
const float * GetPointsBoundingBoxCoordinates() const;
void SetPointsBoundingBoxCoordinates(const float * coordinates);
const float * GetAxisOfRotation() const;
void SetAxisOfRotation(const float * axis);
const float * GetCenterOfRotation() const;
void SetCenterOfRotation(const float * center);
//** Vectors getters/setters **//
unsigned long GetNumberOfVectors() const;
void SetNumberOfVectors(const unsigned long nb);
unsigned short GetVectorDimensionality() const;
void SetVectorDimensionality(const unsigned short dim);
const float * GetVectorAccuracy() const;
void SetVectorAccuracy(const float * accuracy);
const DataElement & GetVectorCoordinateData() const;
DataElement & GetVectorCoordinateData();
void SetVectorCoordinateData(DataElement const & de);
//** Primitive getters/setters **//
MeshPrimitive const & GetMeshPrimitive() const;
MeshPrimitive & GetMeshPrimitive();
void SetMeshPrimitive(MeshPrimitive & mp);
private:
//** Common members **//
//0066 0003 UL 1 Surface Number
unsigned long SurfaceNumber;
//0066 0004 LT 1 Surface Comments
std::string SurfaceComments;
//0066 0009 CS 1 Surface Processing
bool SurfaceProcessing;
//0066 000a FL 1 Surface Processing Ratio
float SurfaceProcessingRatio;
//0066 000b LO 1 Surface Processing Description
std::string SurfaceProcessingDescription;
// Processing Algorithm Code
SegmentHelper::BasicCodedEntry ProcessingAlgorithm;
//0062 000c US 1 Recommended Display Grayscale Value
unsigned short RecommendedDisplayGrayscaleValue;
//0062 000d US 3 Recommended Display CIELab Value
unsigned short RecommendedDisplayCIELabValue[3];
// 0066 000c FL 1 Recommended Presentation Opacity
float RecommendedPresentationOpacity;
// 0066 000d CS 1 Recommended Presentation Type
VIEWType RecommendedPresentationType;
//0066 000e CS 1 Finite Volume
STATES FiniteVolume;
//0066 0010 CS 1 Manifold
STATES Manifold;
// Algorithm Family Code
SegmentHelper::BasicCodedEntry AlgorithmFamily;
//0066 0031 LO 1 Algorithm Version
std::string AlgorithmVersion;
//0066 0032 LT 1 Algorithm Parameters
//0066 0036 LO 1 Algorithm Name
std::string AlgorithmName;
//** Point members **//
//0066 0015 UL 1 Number of Surface Points
unsigned long NumberOfSurfacePoints;
//0066 0016 OF 1 Point Coordinates Data
DataElement PointCoordinatesData;
//0066 0017 FL 3 Point Position Accuracy
float * PointPositionAccuracy;
//0066 0018 FL 1 Mean Point Distance
float MeanPointDistance;
//0066 0019 FL 1 Maximum Point Distance
float MaximumPointDistance;
//0066 001a FL 6 Points Bounding Box Coordinates
float * PointsBoundingBoxCoordinates;
//0066 001b FL 3 Axis of Rotation
float * AxisOfRotation;
//0066 001c FL 3 Center of Rotation
float * CenterOfRotation;
//** Normal members **//
//0066 001e UL 1 Number of Vectors
unsigned long NumberOfVectors;
//0066 001f US 1 Vector Dimensionality
unsigned short VectorDimensionality;
//0066 0020 FL 1-n Vector Accuracy
float * VectorAccuracy;
//0066 0021 OF 1 Vector Coordinate Data
DataElement VectorCoordinateData;
//** Primitive members **//
SmartPointer< MeshPrimitive > Primitive;
};
}
#endif // GDCMSURFACE_H
gdcm::DataElement
Class to represent a Data Element either Implicit or Explicit.
Definition gdcmDataElement.h:59
gdcm::MeshPrimitive
This class defines surface mesh primitives.
Definition gdcmMeshPrimitive.h:31
gdcm::Object::Object
Object()
Definition gdcmObject.h:42
gdcm::Object::SmartPointer
friend class SmartPointer
Definition gdcmObject.h:38
gdcm::Surface::SetPointPositionAccuracy
void SetPointPositionAccuracy(const float *accuracies)
gdcm::Surface::SetSurfaceProcessingRatio
void SetSurfaceProcessingRatio(const float ratio)
gdcm::Surface::GetSTATESString
static const char * GetSTATESString(STATES state)
gdcm::Surface::GetSurfaceNumber
unsigned long GetSurfaceNumber() const
gdcm::Surface::GetCenterOfRotation
const float * GetCenterOfRotation() const
gdcm::Surface::GetAxisOfRotation
const float * GetAxisOfRotation() const
gdcm::Surface::SetAxisOfRotation
void SetAxisOfRotation(const float *axis)
gdcm::Surface::SetMaximumPointDistance
void SetMaximumPointDistance(float maximum)
gdcm::Surface::GetManifold
STATES GetManifold() const
gdcm::Surface::GetAlgorithmFamily
SegmentHelper::BasicCodedEntry const & GetAlgorithmFamily() const
gdcm::Surface::SetSurfaceProcessing
void SetSurfaceProcessing(bool b)
gdcm::Surface::GetMeshPrimitive
MeshPrimitive & GetMeshPrimitive()
gdcm::Surface::GetPointsBoundingBoxCoordinates
const float * GetPointsBoundingBoxCoordinates() const
gdcm::Surface::GetMeanPointDistance
float GetMeanPointDistance() const
gdcm::Surface::Surface
Surface()
gdcm::Surface::GetSurfaceComments
const char * GetSurfaceComments() const
gdcm::Surface::GetVIEWType
static VIEWType GetVIEWType(const char *type)
gdcm::Surface::VIEWType
VIEWType
Enumeration for Recommended Presentation Type.
Definition gdcmSurface.h:50
gdcm::Surface::SURFACE
@ SURFACE
Definition gdcmSurface.h:51
gdcm::Surface::VIEWType_END
@ VIEWType_END
Definition gdcmSurface.h:54
gdcm::Surface::WIREFRAME
@ WIREFRAME
Definition gdcmSurface.h:52
gdcm::Surface::POINTS
@ POINTS
Definition gdcmSurface.h:53
gdcm::Surface::SetRecommendedDisplayGrayscaleValue
void SetRecommendedDisplayGrayscaleValue(const unsigned short vl)
gdcm::Surface::GetRecommendedDisplayCIELabValue
const unsigned short * GetRecommendedDisplayCIELabValue() const
gdcm::Surface::GetPointCoordinatesData
DataElement & GetPointCoordinatesData()
gdcm::Surface::SetSurfaceNumber
void SetSurfaceNumber(const unsigned long nb)
gdcm::Surface::SetManifold
void SetManifold(STATES state)
gdcm::Surface::GetMeshPrimitive
MeshPrimitive const & GetMeshPrimitive() const
gdcm::Surface::SetSurfaceProcessingDescription
void SetSurfaceProcessingDescription(const char *description)
gdcm::Surface::SetMeshPrimitive
void SetMeshPrimitive(MeshPrimitive &mp)
gdcm::Surface::SetAlgorithmVersion
void SetAlgorithmVersion(const char *str)
gdcm::Surface::SetMeanPointDistance
void SetMeanPointDistance(float average)
gdcm::Surface::GetVectorDimensionality
unsigned short GetVectorDimensionality() const
gdcm::Surface::SetVectorDimensionality
void SetVectorDimensionality(const unsigned short dim)
gdcm::Surface::GetVectorAccuracy
const float * GetVectorAccuracy() const
gdcm::Surface::SetRecommendedDisplayCIELabValue
void SetRecommendedDisplayCIELabValue(const unsigned short vl[3])
gdcm::Surface::GetSurfaceProcessingRatio
float GetSurfaceProcessingRatio() const
gdcm::Surface::GetVIEWTypeString
static const char * GetVIEWTypeString(VIEWType type)
gdcm::Surface::SetVectorCoordinateData
void SetVectorCoordinateData(DataElement const &de)
gdcm::Surface::GetNumberOfVectors
unsigned long GetNumberOfVectors() const
gdcm::Surface::SetRecommendedPresentationOpacity
void SetRecommendedPresentationOpacity(const float opacity)
gdcm::Surface::GetSTATES
static STATES GetSTATES(const char *state)
gdcm::Surface::~Surface
~Surface() override
gdcm::Surface::SetVectorAccuracy
void SetVectorAccuracy(const float *accuracy)
gdcm::Surface::SetAlgorithmFamily
void SetAlgorithmFamily(SegmentHelper::BasicCodedEntry const &BSE)
gdcm::Surface::SetCenterOfRotation
void SetCenterOfRotation(const float *center)
gdcm::Surface::GetAlgorithmName
const char * GetAlgorithmName() const
gdcm::Surface::SetPointCoordinatesData
void SetPointCoordinatesData(DataElement const &de)
gdcm::Surface::SetNumberOfVectors
void SetNumberOfVectors(const unsigned long nb)
gdcm::Surface::SetPointsBoundingBoxCoordinates
void SetPointsBoundingBoxCoordinates(const float *coordinates)
gdcm::Surface::GetProcessingAlgorithm
SegmentHelper::BasicCodedEntry const & GetProcessingAlgorithm() const
gdcm::Surface::GetVectorCoordinateData
DataElement & GetVectorCoordinateData()
gdcm::Surface::GetSurfaceProcessing
bool GetSurfaceProcessing() const
gdcm::Surface::SetRecommendedDisplayCIELabValue
void SetRecommendedDisplayCIELabValue(const std::vector< unsigned short > &vl)
gdcm::Surface::GetRecommendedDisplayGrayscaleValue
unsigned short GetRecommendedDisplayGrayscaleValue() const
gdcm::Surface::GetFiniteVolume
STATES GetFiniteVolume() const
gdcm::Surface::GetProcessingAlgorithm
SegmentHelper::BasicCodedEntry & GetProcessingAlgorithm()
gdcm::Surface::SetRecommendedPresentationType
void SetRecommendedPresentationType(VIEWType type)
gdcm::Surface::GetAlgorithmVersion
const char * GetAlgorithmVersion() const
gdcm::Surface::GetRecommendedPresentationType
VIEWType GetRecommendedPresentationType() const
gdcm::Surface::GetRecommendedDisplayCIELabValue
unsigned short GetRecommendedDisplayCIELabValue(const unsigned int idx) const
gdcm::Surface::SetFiniteVolume
void SetFiniteVolume(STATES state)
gdcm::Surface::SetAlgorithmName
void SetAlgorithmName(const char *str)
gdcm::Surface::STATES
STATES
Definition gdcmSurface.h:35
gdcm::Surface::NO
@ NO
Definition gdcmSurface.h:36
gdcm::Surface::YES
@ YES
Definition gdcmSurface.h:37
gdcm::Surface::UNKNOWN
@ UNKNOWN
Definition gdcmSurface.h:38
gdcm::Surface::STATES_END
@ STATES_END
Definition gdcmSurface.h:39
gdcm::Surface::GetPointCoordinatesData
const DataElement & GetPointCoordinatesData() const
gdcm::Surface::GetSurfaceProcessingDescription
const char * GetSurfaceProcessingDescription() const
gdcm::Surface::SetNumberOfSurfacePoints
void SetNumberOfSurfacePoints(const unsigned long nb)
gdcm::Surface::GetMaximumPointDistance
float GetMaximumPointDistance() const
gdcm::Surface::GetPointPositionAccuracy
const float * GetPointPositionAccuracy() const
gdcm::Surface::GetRecommendedPresentationOpacity
float GetRecommendedPresentationOpacity() const
gdcm::Surface::SetSurfaceComments
void SetSurfaceComments(const char *comment)
gdcm::Surface::GetAlgorithmFamily
SegmentHelper::BasicCodedEntry & GetAlgorithmFamily()
gdcm::Surface::GetVectorCoordinateData
const DataElement & GetVectorCoordinateData() const
gdcm::Surface::GetNumberOfSurfacePoints
unsigned long GetNumberOfSurfacePoints() const
gdcm::Surface::SetRecommendedDisplayCIELabValue
void SetRecommendedDisplayCIELabValue(const unsigned short vl, const unsigned int idx=0)
gdcm::Surface::SetProcessingAlgorithm
void SetProcessingAlgorithm(SegmentHelper::BasicCodedEntry const &BSE)
gdcmDataElement.h
gdcmMeshPrimitive.h
gdcmObject.h
gdcmSegmentHelper.h
GDCM_EXPORT
#define GDCM_EXPORT
Definition gdcmWin32.h:34
gdcm
Definition gdcmASN1.h:21
gdcm::SegmentHelper::BasicCodedEntry
This structure defines a basic coded entry with all of its attributes.
Definition gdcmSegmentHelper.h:33