/usr/include/openigtlink/igtlPointMessage.h is in libopenigtlink-dev 1.10.5-1.
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 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 | /*=========================================================================
Program: The OpenIGTLink Library
Language: C++
Web page: http://openigtlink.org/
Copyright (c) Insight Software Consortium. All rights reserved.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notices for more information.
=========================================================================*/
#ifndef __igtlPointMessage_h
#define __igtlPointMessage_h
#include <vector>
#include <string>
#include "igtlObject.h"
#include "igtlMath.h"
#include "igtlMessageBase.h"
#include "igtlTypes.h"
#include "igtlImageMessage.h"
namespace igtl
{
/// A class to manage point information.
class IGTLCommon_EXPORT PointElement: public Object
{
public:
typedef PointElement Self;
typedef Object Superclass;
typedef SmartPointer<Self> Pointer;
typedef SmartPointer<const Self> ConstPointer;
igtlTypeMacro(igtl::PointElement, igtl::Object);
igtlNewMacro(igtl::PointElement);
public:
/// Sets the name/description of the point. The string 'name' must not exceed 64 characters.
int SetName(const char* name);
/// Gets the name/description of the point.
const char* GetName() { return this->m_Name.c_str(); };
/// Sets the group name e.g. "Labeled Point", "Landmark", "Fiducial", etc.
int SetGroupName(const char* grpname);
/// Gets the group name
const char* GetGroupName() { return this->m_GroupName.c_str(); };
/// Sets the color of the point specified by an array of R, G, B and A.
void SetRGBA(igtlUint8 rgba[4]);
/// Sets the color of the point specified by values of R, G, B and A.
void SetRGBA(igtlUint8 r, igtlUint8 g, igtlUint8 b, igtlUint8 a);
/// Gets the color of the point using an array of R, G, B and A.
void GetRGBA(igtlUint8* rgba);
/// Gets the color of the point using values of R, G, B and A.
void GetRGBA(igtlUint8& r, igtlUint8& g, igtlUint8& b, igtlUint8& a);
/// Sets the position of the point by an array of x, y and z coordinates.
void SetPosition(igtlFloat32 position[3]);
/// Sets the position of the point by x, y and z coordinates.
void SetPosition(igtlFloat32 x, igtlFloat32 y, igtlFloat32 z);
/// Gets the position of the point using an array of x, y and z coordinates.
void GetPosition(igtlFloat32* position);
/// Gets the position of the point using x, y and z coordinates.
void GetPosition(igtlFloat32& x, igtlFloat32& y, igtlFloat32& z);
/// Sets the radius of the point.
void SetRadius(igtlFloat32 radius) { this->m_Radius = radius; };
/// Gets the radius of the point.
igtlFloat32 GetRadius() { return this->m_Radius; };
/// Sets the name of the image that owns this label map.
int SetOwner(const char* owner);
/// Gets the name of the image that owns this label map.
const char* GetOwner() { return this->m_Owner.c_str(); };
protected:
PointElement();
~PointElement();
protected:
/// name / description (< 64 bytes)
std::string m_Name;
/// Can be "Labeled Point", "Landmark", Fiducial", ...
std::string m_GroupName;
/// Color in R/G/B/A
igtlUint8 m_RGBA[4];
/// Position
igtlFloat32 m_Position[3];
/// Radius of the point. Can be 0.
igtlFloat32 m_Radius;
/// Device name of the ower image
std::string m_Owner;
};
/// A class for the GET_POINT message type.
class IGTLCommon_EXPORT GetPointMessage: public MessageBase
{
public:
typedef GetPointMessage Self;
typedef MessageBase Superclass;
typedef SmartPointer<Self> Pointer;
typedef SmartPointer<const Self> ConstPointer;
igtlTypeMacro(igtl::GetPointMessage, igtl::MessageBase);
igtlNewMacro(igtl::GetPointMessage);
protected:
GetPointMessage() : MessageBase() { this->m_DefaultBodyType = "GET_POINT"; };
~GetPointMessage() {};
protected:
virtual int GetBodyPackSize() { return 0; };
virtual int PackBody() { AllocatePack(); return 1; };
virtual int UnpackBody() { return 1; };
};
/// A class for the POINT message type.
/// The POINT message type is designed to transfer information about fiducials, which are often used in surgical planning and navigation in the image-guided therapy.
class IGTLCommon_EXPORT PointMessage: public MessageBase
{
public:
typedef PointMessage Self;
typedef MessageBase Superclass;
typedef SmartPointer<Self> Pointer;
typedef SmartPointer<const Self> ConstPointer;
igtlTypeMacro(igtl::PointMessage, igtl::MessageBase);
igtlNewMacro(igtl::PointMessage);
public:
/// Adds a point to the list. It returns the number of points in the list after
/// adding the point.
int AddPointElement(PointElement::Pointer& elem);
/// Clears the points in the list.
void ClearPointElement();
/// Gets the number of points in the list.
int GetNumberOfPointElement();
/// Gets a pointer to the point specified by 'index'.
void GetPointElement(int index, PointElement::Pointer& elem);
protected:
PointMessage();
~PointMessage();
protected:
virtual int GetBodyPackSize();
virtual int PackBody();
virtual int UnpackBody();
/// A list of pointers to the points.
std::vector<PointElement::Pointer> m_PointList;
};
} // namespace igtl
#endif // _igtlPointMessage_h
|