File: metaContour.h

package info (click to toggle)
paraview 5.13.2%2Bdfsg-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 544,220 kB
  • sloc: cpp: 3,374,605; ansic: 1,332,409; python: 150,381; xml: 122,166; sql: 65,887; sh: 7,317; javascript: 5,262; yacc: 4,417; java: 3,977; perl: 2,363; lex: 1,929; f90: 1,397; makefile: 170; objc: 153; tcl: 59; pascal: 50; fortran: 29
file content (195 lines) | stat: -rw-r--r-- 4,088 bytes parent folder | download | duplicates (8)
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
190
191
192
193
194
195
/*============================================================================
  MetaIO
  Copyright 2000-2010 Insight Software Consortium

  Distributed under the OSI-approved BSD License (the "License");
  see accompanying file Copyright.txt for details.

  This software is distributed WITHOUT ANY WARRANTY; without even the
  implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  See the License for more information.
============================================================================*/
#include "metaTypes.h"

#ifndef ITKMetaIO_METACONTOUR_H
#  define ITKMetaIO_METACONTOUR_H

#  include "metaUtils.h"
#  include "metaObject.h"

#  ifdef _MSC_VER
#    pragma warning(disable : 4786)
#    pragma warning(disable : 4251)
#  endif

#  include <list>

#  if (METAIO_USE_NAMESPACE)
namespace METAIO_NAMESPACE
{
#  endif

/**
 * Description:
 *    Reads and Writes MetaContour Files.
 *
 * \author Julien Jomier
 *
 * \date March 2006
 *
 */
class METAIO_EXPORT ContourControlPnt
{
public:
  explicit ContourControlPnt(int dim);
  ~ContourControlPnt();

  unsigned int m_Dim;
  unsigned int m_Id;
  float *      m_X;
  float *      m_XPicked;
  float *      m_V;
  float        m_Color[4]{};
};


class METAIO_EXPORT ContourInterpolatedPnt
{
public:
  explicit ContourInterpolatedPnt(int dim)
  {
    m_Dim = static_cast<unsigned int>(dim);
    m_Id = 0;
    m_X = new float[m_Dim];
    // Color is red by default
    m_Color[0] = 1.0f;
    m_Color[1] = 0.0f;
    m_Color[2] = 0.0f;
    m_Color[3] = 1.0f;
  }

  ~ContourInterpolatedPnt() { delete[] m_X; }

  unsigned int m_Dim;
  float *      m_X;
  unsigned int m_Id;
  float        m_Color[4]{};
};


class METAIO_EXPORT MetaContour : public MetaObject
{

public:
  typedef std::list<ContourControlPnt *>      ControlPointListType;
  typedef std::list<ContourInterpolatedPnt *> InterpolatedPointListType;

  MetaContour();
  explicit MetaContour(const char * _headerName);
  explicit MetaContour(const MetaContour * _contour);
  explicit MetaContour(unsigned int dim);

  ~MetaContour() override;

  void
  PrintInfo() const override;
  void
  CopyInfo(const MetaObject * _object) override;

  //    NPoints(...)
  //       Required Field
  //       Number of points which compose the tube
  int
  NControlPoints() const;

  //    ControlPointDim(...)
  //       Required Field
  //       Definition of points
  void
  ControlPointDim(const char * pointDim);
  const char *
  ControlPointDim() const;

  MET_InterpolationEnumType
  Interpolation() const;
  void
  Interpolation(MET_InterpolationEnumType _interpolation);

  int
  NInterpolatedPoints() const;

  void
  InterpolatedPointDim(const char * pointDim);
  const char *
  InterpolatedPointDim() const;

  void
  Closed(bool close);
  bool
  Closed() const;

  void
  AttachedToSlice(long int slice);
  long int
  AttachedToSlice() const;

  void
  DisplayOrientation(int display);
  int
  DisplayOrientation() const;

  void
  Clear() override;

  ControlPointListType &
  GetControlPoints()
  {
    return m_ControlPointsList;
  }
  const ControlPointListType &
  GetControlPoints() const
  {
    return m_ControlPointsList;
  }

  InterpolatedPointListType &
  GetInterpolatedPoints()
  {
    return m_InterpolatedPointsList;
  }
  const InterpolatedPointListType &
  GetInterpolatedPoints() const
  {
    return m_InterpolatedPointsList;
  }

protected:
  bool m_ElementByteOrderMSB{};
  void
  M_SetupReadFields() override;
  void
  M_SetupWriteFields() override;
  bool
  M_Read() override;
  bool
  M_Write() override;

  int                       m_NControlPoints{};
  int                       m_NInterpolatedPoints{};
  char                      m_ControlPointDim[255]{};
  char                      m_InterpolatedPointDim[255]{};
  bool                      m_Closed{};
  MET_InterpolationEnumType m_InterpolationType;
  ControlPointListType      m_ControlPointsList;
  InterpolatedPointListType m_InterpolatedPointsList;

  int  m_DisplayOrientation{};
  long m_AttachedToSlice{};
};

#  if (METAIO_USE_NAMESPACE)
};
#  endif


#endif