Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
CDxf.hpp
Go to the documentation of this file.
1#ifndef LIBS_CAD_CDxf_HPP_
2#define LIBS_CAD_CDxf_HPP_
3
4#include "math/structs.hpp"
6
7#include <memory>
8#include <string>
9#include <vector>
10
11class CGeoBlock;
12class CMesh;
14class IGraphics;
15struct SEntity;
16
18{
19public:
20 virtual ~IBlockExportDxf() = default;
21
22 [[maybe_unused]] virtual void setColorARgb(iv::types::color colorARgb) = 0;
23};
24
26{
27 SLayerDxf(const std::string &nameLayer, bool isColorRGB, uint64_t colorIndex, bool isVisible, int64_t lineWidth);
28 SLayerDxf(const SLayerDxf &other) = default;
29 ~SLayerDxf() = default;
30
31 std::string m_name;
32 uint64_t m_colorIndex;
35 int64_t m_lineWidth;
36};
37
39{
40 SProcessEntitiesGeoBlocks(CStackTransformation **stackTransformation, std::vector<CGeoBlock *> **geoBlocks);
42
43 bool exists(const std::string &itemSearch, uint32_t *ind) const;
44
46 std::vector<CGeoBlock *> *m_geoBlocks;
47};
48
50{
52 std::vector<std::vector<iv::math::geometry::Point3d>> **polylines);
54
55 std::vector<std::vector<iv::math::geometry::Point3d>> *movePolylines();
56
58 std::vector<std::vector<iv::math::geometry::Point3d>> *m_polylines;
59};
60
62{
63 SBlockDxf(std::string nameBlock, double xOrg, double yOrg, double zOrg);
64 SBlockDxf(const SBlockDxf &other);
65 ~SBlockDxf() = default;
66
67 std::string m_name;
68 double m_xOrg;
69 double m_yOrg;
70 double m_zOrg;
71 uint64_t m_idBlock;
72 std::vector<SEntity *> m_entities;
73};
74
75struct SEntity
76{
77 SEntity(const std::string &nameLayer, bool isColorRGB, uint64_t colorIndex, int64_t lineWidth, double Nx, double Ny,
78 double Nz);
79 virtual ~SEntity() = default;
80
81 void drawEntity(uint64_t colorBlocRGB, int64_t lineWidthBlock, std::vector<SBlockDxf *> *blocks,
82 const std::vector<SLayerDxf *> *layers, IGraphics *graphics);
83 virtual void processEntityGeoBlock(CGeoBlock *currentGeoBlock, std::vector<SBlockDxf *> *blocks,
84 SProcessEntitiesGeoBlocks *dataProcess) const = 0;
85 virtual void processEntityPolyline(const std::vector<SBlockDxf *> *blocks, SProcessEntitiesPolylines *dataProcess,
86 const std::string &nameLayerOpt) const = 0;
87
88 void setColorARGB(iv::types::color colorARGB);
89
90 [[nodiscard]] bool isLayer(const std::string &nameLayer) const;
91
92private:
93 virtual void draw(IGraphics *graphics) const = 0;
94
95 uint64_t m_colorIndex;
96 std::string m_nameLayer;
101 double m_Nx;
102 double m_Ny;
103 double m_Nz;
104 int64_t m_lineWidth;
107};
108
109struct SEntityInsert final : SEntity
110{
111 SEntityInsert(const std::string &nameLayer, const std::string &nameBlock, double xInsert, double yInsert,
112 double xScale, double yScale, double angle, bool isColorRGB, uint64_t colorIndex, int64_t lineWidth,
113 double Nx, double Ny, double Nz);
114 ~SEntityInsert() override = default;
115
116 void drawBlock(uint64_t colorBlock, int64_t lineWidth, std::vector<SBlockDxf *> *blocks,
117 const std::vector<SLayerDxf *> *layers, IGraphics *graphics) const;
118
119 std::string m_nameBlock;
120 uint64_t m_colorIndex;
121 double m_xInsert;
122 double m_yInsert;
123 double m_xScale;
124 double m_yScale;
125 double m_angle;
126
127private:
128 void processEntityGeoBlock(CGeoBlock *currentGeoBlock, std::vector<SBlockDxf *> *blocks,
129 SProcessEntitiesGeoBlocks *dataProcess) const override;
130 void processEntityPolyline(const std::vector<SBlockDxf *> *blocks, SProcessEntitiesPolylines *dataProcess,
131 const std::string &nameLayerOpt) const override;
132 void draw(IGraphics *graphics) const override;
133};
134
135struct SEntityPoint final : SEntity
136{
137 SEntityPoint(const std::string &nameLayer, double x, double y, double z, bool isColorRGB, uint64_t colorIndex,
138 int64_t lineWidth, double Nx, double Ny, double Nz);
139
140 double m_x;
141 double m_y;
142 double m_z;
143
144private:
145 void draw(IGraphics *graphics) const override;
146 void processEntityGeoBlock(CGeoBlock *currentGeoBlock, std::vector<SBlockDxf *> *blocks,
147 SProcessEntitiesGeoBlocks *dataProcess) const override;
148 void processEntityPolyline(const std::vector<SBlockDxf *> *blocks, SProcessEntitiesPolylines *dataProcess,
149 const std::string &nameLayerOpt) const override;
150};
151
152struct SEntityLine final : SEntity
153{
154 SEntityLine(const std::string &nameLayer, double x1, double y1, double x2, double y2, bool isColorRGB,
155 uint64_t colorIndex, int64_t lineWidth, double Nx, double Ny, double Nz);
156
157 double m_x1;
158 double m_x2;
159 double m_y1;
160 double m_y2;
161
162private:
163 void draw(IGraphics *graphics) const override;
164 void processEntityGeoBlock(CGeoBlock *currentGeoBlock, std::vector<SBlockDxf *> *blocks,
165 SProcessEntitiesGeoBlocks *dataProcess) const override;
166 void processEntityPolyline(const std::vector<SBlockDxf *> *blocks, SProcessEntitiesPolylines *dataProcess,
167 const std::string &nameLayerOpt) const override;
168};
169
171{
172 SEntityPolyline(const std::string &nameLayer, float **vertex, uint64_t numVertex, bool isColorRGB,
173 uint64_t colorRGB, int64_t lineWidth, double Nx, double Ny, double Nz, double elevation);
174 ~SEntityPolyline() override;
175
176 uint64_t m_numVertex;
177 float *m_vertex;
179
180private:
181 void draw(IGraphics *graphics) const override;
182 void processEntityGeoBlock(CGeoBlock *currentGeoBlock, std::vector<SBlockDxf *> *blocks,
183 SProcessEntitiesGeoBlocks *dataProcess) const override;
184 void processEntityPolyline(const std::vector<SBlockDxf *> *blocks, SProcessEntitiesPolylines *dataProcess,
185 const std::string &nameLayerOpt) const override;
186};
187
189{
190 SEntityArc(const std::string &nameLayer, double xCenter, double yCenter, double radius, double startAngle,
191 double endAngle, uint64_t numVertex, float **vertex, bool isColorRGB, uint64_t colorIndex,
192 int64_t lineWidth, double Nx, double Ny, double Nz);
193
194 double m_xCenter;
195 double m_yCenter;
196 double m_radius;
199};
200
202{
203 SEntityCircle(const std::string &nameLayer, double xCenter, double yCenter, double radius, uint64_t numVertex,
204 float **vertex, bool isColorRGB, uint64_t colorIndex, int64_t lineWidth, double Nx, double Ny,
205 double Nz);
206
207 double m_xCenter;
208 double m_yCenter;
209 double m_radius;
210};
211
213{
214 SEntityEllipse(const std::string &nameLayer, double xCenter, double yCenter, double mx, double my, double mz,
215 double ratio, double startAngle, double endAngle, uint64_t numVertex, float **vertex,
216 bool isColorRGB, uint64_t colorIndex, int64_t lineWidth, double Nx, double Ny, double Nz);
217
218 double m_xCenter;
219 double m_yCenter;
220 double m_mx;
221 double m_my;
222 double m_mz;
223 double m_ratio;
226};
227
229{
230 SEntityLeader(const std::string &nameLayer, float **vertex, uint64_t numVertex, bool isColorRGB, uint64_t colorRGB,
231 int64_t lineWidth, double Nx, double Ny, double Nz);
232};
233
234struct SEntityHatch final : SEntity
235{
236 SEntityHatch(const std::string &nameLayer,
237 std::vector<std::shared_ptr<std::vector<iv::math::geometry::Point3d>>> **contoursHatch, CMesh **mesh,
238 bool isColorRGB, uint64_t colorRGB, int64_t lineWidth, double Nx, double Ny, double Nz);
239 ~SEntityHatch() override;
240
242 std::vector<std::shared_ptr<std::vector<iv::math::geometry::Point3d>>> *m_contoursHatch;
243
244private:
245 void draw(IGraphics *graphics) const override;
246 void processEntityGeoBlock(CGeoBlock *currentGeoBlock, std::vector<SBlockDxf *> *blocks,
247 SProcessEntitiesGeoBlocks *dataProcess) const override;
248 void processEntityPolyline(const std::vector<SBlockDxf *> *blocks, SProcessEntitiesPolylines *dataProcess,
249 const std::string &nameLayerOpt) const override;
250};
251
252struct SEntityText final : SEntity
253{
254 SEntityText(const std::string &nameLayer, const std::string &text, double x, double y, double z, double height,
255 unsigned char justify, double angle, uint64_t colorIndex, bool isColorRGB, int64_t lineWidth, double Nx,
256 double Ny, double Nz);
257 ~SEntityText() override = default;
258
259 std::string m_text;
260 double m_x;
261 double m_y;
262 double m_z;
263 double m_height;
264 unsigned char m_justify;
266
267private:
268 void draw(IGraphics *graphics) const override;
269 void processEntityGeoBlock(CGeoBlock *currentGeoBlock, std::vector<SBlockDxf *> *blocks,
270 SProcessEntitiesGeoBlocks *dataProcess) const override;
271 void processEntityPolyline(const std::vector<SBlockDxf *> *blocks, SProcessEntitiesPolylines *dataProcess,
272 const std::string &nameLayerOpt) const override;
273};
274
275struct SEntitySolid final : SEntity
276{
277 SEntitySolid(const std::string &nameLayer, double x1, double y1, double x2, double y2, double x3, double y3,
278 double x4, double y4, bool isColorRGB, uint64_t colorRGB, int64_t lineWidth, double Nx, double Ny,
279 double Nz);
280
281 double m_x1;
282 double m_y1;
283 double m_x2;
284 double m_y2;
285 double m_x3;
286 double m_y3;
287 double m_x4;
288 double m_y4;
289
290private:
291 void draw(IGraphics *graphics) const override;
292 void processEntityGeoBlock(CGeoBlock *currentGeoBlock, std::vector<SBlockDxf *> *blocks,
293 SProcessEntitiesGeoBlocks *dataProcess) const override;
294 void processEntityPolyline(const std::vector<SBlockDxf *> *blocks, SProcessEntitiesPolylines *dataProcess,
295 const std::string &nameLayerOpt) const override;
296};
297
298class CDxf
299{
300public:
301 enum class EPrvUnits
302 {
303 Inch,
306 Meter
307 };
308
309 enum class EEndEntityType
310 {
311 Polyline,
312 Hatch,
313 Leader
314 };
315
316 CDxf();
317 explicit CDxf(std::string_view nameFileDxf);
318 explicit CDxf(const std::shared_ptr<iv::streams::IInputStream> &inputStream);
319 explicit CDxf(const CDxf *other);
320 ~CDxf();
321
322 void addLine(double x1, double y1, double z1, double x2, double y2, double z2) const;
323 [[maybe_unused]] void addPoint(double x, double y, double z) const;
324 void addPolyLine(float **vertex, uint64_t numVertex) const;
325 void addRectangle(double x1, double y1, double x2, double y2) const;
326 void addSolid(double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3,
327 double x4, double y4, double z4) const;
328 void addText(const std::string &text, double x, double y, double z, double height, unsigned char justify) const;
329 void addTriangle(double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3,
330 double z3) const;
331
332 void draw(IGraphics *graphics) const;
333
334 [[nodiscard]] std::vector<std::string> getAllBlocksNames() const;
335 [[maybe_unused]] [[nodiscard]] std::vector<std::vector<iv::math::geometry::Point3d>> *getAllPolylines() const;
336 [[nodiscard]] std::vector<std::vector<iv::math::geometry::Point3d>> *
337 getAllPolylinesInLayer(const std::string &nameLayer) const;
338 [[maybe_unused]] [[nodiscard]] IBlockExportDxf *getEntityLogicExpression(const std::string &nameBlock) const;
339 [[nodiscard]] std::vector<CGeoBlock *> getGeoBlocksByNames(const std::vector<std::string> &nameBlocks) const;
340 [[maybe_unused]] [[nodiscard]] std::string getNameDXF() const;
341 [[nodiscard]] std::vector<iv::math::geometry::Point2d>
342 getPositionsDigitalChannel(const std::string &nameBlock) const;
343 [[nodiscard]] CGeoBlock *getOnlyOneGeoBlock(const std::string &nameBlock) const;
344
345 void setVisibleLayer(const std::string &nameLayer, bool isVisible);
346
347 [[nodiscard]] bool existLayer(const std::string &nameLayer) const;
348 [[nodiscard]] bool existOnlyOneGeoBlock(const std::string &nameBlock) const;
349 bool hasCapture(double x, double y, double radiusCapture, double *xCaptured, double *yCaptured) const;
350 [[nodiscard]] bool hasCaptureInclusive(double xMin, double yMin, double xMax, double yMax,
351 double radiusCapture) const;
352 [[nodiscard]] bool hasCaptureNoInclusive(double xMin, double yMin, double xMax, double yMax,
353 double radiusCapture) const;
354 [[nodiscard]] bool hasCaptureByGraphic(double xMin, double yMin, double xMax, double yMax,
355 double radiusCapture) const;
356
357private:
358 std::string m_nameDXF;
361 std::vector<SLayerDxf *> *m_layers;
362 std::vector<SBlockDxf *> *m_blocks;
363};
364
365#endif /* LIBS_CAD_CDxf_HPP_ */
Definition CDxf.hpp:299
~CDxf()
Definition CDxf.cpp:2207
EPrvUnits
Definition CDxf.hpp:302
void addLine(double x1, double y1, double z1, double x2, double y2, double z2) const
Definition CDxf.cpp:2217
std::vector< SBlockDxf * > * m_blocks
Definition CDxf.hpp:362
bool hasCaptureNoInclusive(double xMin, double yMin, double xMax, double yMax, double radiusCapture) const
Definition CDxf.cpp:3214
void addPoint(double x, double y, double z) const
Definition CDxf.cpp:2232
void addRectangle(double x1, double y1, double x2, double y2) const
Definition CDxf.cpp:2260
std::vector< std::vector< iv::math::geometry::Point3d > > * getAllPolylines() const
Definition CDxf.cpp:2401
CDxf()
Definition CDxf.cpp:1939
bool hasCapture(double x, double y, double radiusCapture, double *xCaptured, double *yCaptured) const
Definition CDxf.cpp:2898
void setVisibleLayer(const std::string &nameLayer, bool isVisible)
Definition CDxf.cpp:2587
void addText(const std::string &text, double x, double y, double z, double height, unsigned char justify) const
Definition CDxf.cpp:2297
std::string getNameDXF() const
Definition CDxf.cpp:2517
std::vector< std::string > getAllBlocksNames() const
Definition CDxf.cpp:2352
bool hasCaptureByGraphic(double xMin, double yMin, double xMax, double yMax, double radiusCapture) const
Definition CDxf.cpp:3234
void addSolid(double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3, double x4, double y4, double z4) const
Definition CDxf.cpp:2282
std::vector< std::vector< iv::math::geometry::Point3d > > * getAllPolylinesInLayer(const std::string &nameLayer) const
Definition CDxf.cpp:2433
bool existLayer(const std::string &nameLayer) const
Definition CDxf.cpp:2598
void addPolyLine(float **vertex, uint64_t numVertex) const
Definition CDxf.cpp:2246
std::vector< CGeoBlock * > getGeoBlocksByNames(const std::vector< std::string > &nameBlocks) const
Definition CDxf.cpp:2487
SBlockDxf * m_modelBlock
Definition CDxf.hpp:360
std::vector< iv::math::geometry::Point2d > getPositionsDigitalChannel(const std::string &nameBlock) const
Definition CDxf.cpp:2522
CGeoBlock * getOnlyOneGeoBlock(const std::string &nameBlock) const
Definition CDxf.cpp:2567
std::vector< SLayerDxf * > * m_layers
Definition CDxf.hpp:361
bool existOnlyOneGeoBlock(const std::string &nameBlock) const
Definition CDxf.cpp:2606
void draw(IGraphics *graphics) const
Definition CDxf.cpp:2334
EPrvUnits m_units
Definition CDxf.hpp:359
EEndEntityType
Definition CDxf.hpp:310
bool hasCaptureInclusive(double xMin, double yMin, double xMax, double yMax, double radiusCapture) const
Definition CDxf.cpp:3070
std::string m_nameDXF
Definition CDxf.hpp:358
IBlockExportDxf * getEntityLogicExpression(const std::string &nameBlock) const
Definition CDxf.cpp:2473
void addTriangle(double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3) const
Definition CDxf.cpp:2312
Definition CGeoBlock.hpp:12
Definition CMesh.hpp:11
Definition CStackTransformation.hpp:7
Definition CDxf.hpp:18
virtual void setColorARgb(iv::types::color colorARgb)=0
virtual ~IBlockExportDxf()=default
Definition IGraphics.hpp:20
uint32_t color
Definition types.hpp:12
Definition CDxf.hpp:62
double m_zOrg
Definition CDxf.hpp:70
std::vector< SEntity * > m_entities
Definition CDxf.hpp:72
double m_xOrg
Definition CDxf.hpp:68
~SBlockDxf()=default
double m_yOrg
Definition CDxf.hpp:69
std::string m_name
Definition CDxf.hpp:67
SBlockDxf(std::string nameBlock, double xOrg, double yOrg, double zOrg)
Definition CDxf.cpp:1633
uint64_t m_idBlock
Definition CDxf.hpp:71
Definition CDxf.hpp:189
SEntityArc(const std::string &nameLayer, double xCenter, double yCenter, double radius, double startAngle, double endAngle, uint64_t numVertex, float **vertex, bool isColorRGB, uint64_t colorIndex, int64_t lineWidth, double Nx, double Ny, double Nz)
Definition CDxf.cpp:3322
double m_xCenter
Definition CDxf.hpp:194
double m_yCenter
Definition CDxf.hpp:195
double m_endAngle
Definition CDxf.hpp:198
double m_radius
Definition CDxf.hpp:196
double m_startAngle
Definition CDxf.hpp:197
Definition CDxf.hpp:202
double m_yCenter
Definition CDxf.hpp:208
double m_xCenter
Definition CDxf.hpp:207
double m_radius
Definition CDxf.hpp:209
SEntityCircle(const std::string &nameLayer, double xCenter, double yCenter, double radius, uint64_t numVertex, float **vertex, bool isColorRGB, uint64_t colorIndex, int64_t lineWidth, double Nx, double Ny, double Nz)
Definition CDxf.cpp:3418
Definition CDxf.hpp:213
double m_ratio
Definition CDxf.hpp:223
SEntityEllipse(const std::string &nameLayer, double xCenter, double yCenter, double mx, double my, double mz, double ratio, double startAngle, double endAngle, uint64_t numVertex, float **vertex, bool isColorRGB, uint64_t colorIndex, int64_t lineWidth, double Nx, double Ny, double Nz)
Definition CDxf.cpp:3429
double m_mx
Definition CDxf.hpp:220
double m_mz
Definition CDxf.hpp:222
double m_yCenter
Definition CDxf.hpp:219
double m_startAngle
Definition CDxf.hpp:224
double m_endAngle
Definition CDxf.hpp:225
double m_xCenter
Definition CDxf.hpp:218
double m_my
Definition CDxf.hpp:221
Definition CDxf.hpp:235
SEntityHatch(const std::string &nameLayer, std::vector< std::shared_ptr< std::vector< iv::math::geometry::Point3d > > > **contoursHatch, CMesh **mesh, bool isColorRGB, uint64_t colorRGB, int64_t lineWidth, double Nx, double Ny, double Nz)
Definition CDxf.cpp:3446
~SEntityHatch() override
Definition CDxf.cpp:3456
void processEntityGeoBlock(CGeoBlock *currentGeoBlock, std::vector< SBlockDxf * > *blocks, SProcessEntitiesGeoBlocks *dataProcess) const override
Definition CDxf.cpp:3491
CMesh * m_mesh
Definition CDxf.hpp:241
std::vector< std::shared_ptr< std::vector< iv::math::geometry::Point3d > > > * m_contoursHatch
Definition CDxf.hpp:242
void processEntityPolyline(const std::vector< SBlockDxf * > *blocks, SProcessEntitiesPolylines *dataProcess, const std::string &nameLayerOpt) const override
Definition CDxf.cpp:3508
void draw(IGraphics *graphics) const override
Definition CDxf.cpp:3464
Definition CDxf.hpp:110
double m_xScale
Definition CDxf.hpp:123
SEntityInsert(const std::string &nameLayer, const std::string &nameBlock, double xInsert, double yInsert, double xScale, double yScale, double angle, bool isColorRGB, uint64_t colorIndex, int64_t lineWidth, double Nx, double Ny, double Nz)
Definition CDxf.cpp:1797
uint64_t m_colorIndex
Definition CDxf.hpp:120
std::string m_nameBlock
Definition CDxf.hpp:119
void drawBlock(uint64_t colorBlock, int64_t lineWidth, std::vector< SBlockDxf * > *blocks, const std::vector< SLayerDxf * > *layers, IGraphics *graphics) const
Definition CDxf.cpp:1834
void processEntityGeoBlock(CGeoBlock *currentGeoBlock, std::vector< SBlockDxf * > *blocks, SProcessEntitiesGeoBlocks *dataProcess) const override
Definition CDxf.cpp:1855
double m_yInsert
Definition CDxf.hpp:122
double m_angle
Definition CDxf.hpp:125
void draw(IGraphics *graphics) const override
Definition CDxf.cpp:1934
void processEntityPolyline(const std::vector< SBlockDxf * > *blocks, SProcessEntitiesPolylines *dataProcess, const std::string &nameLayerOpt) const override
Definition CDxf.cpp:1897
~SEntityInsert() override=default
double m_xInsert
Definition CDxf.hpp:121
double m_yScale
Definition CDxf.hpp:124
Definition CDxf.hpp:229
SEntityLeader(const std::string &nameLayer, float **vertex, uint64_t numVertex, bool isColorRGB, uint64_t colorRGB, int64_t lineWidth, double Nx, double Ny, double Nz)
Definition CDxf.cpp:3513
Definition CDxf.hpp:153
void processEntityGeoBlock(CGeoBlock *currentGeoBlock, std::vector< SBlockDxf * > *blocks, SProcessEntitiesGeoBlocks *dataProcess) const override
Definition CDxf.cpp:3303
void processEntityPolyline(const std::vector< SBlockDxf * > *blocks, SProcessEntitiesPolylines *dataProcess, const std::string &nameLayerOpt) const override
Definition CDxf.cpp:3317
double m_x2
Definition CDxf.hpp:158
double m_y1
Definition CDxf.hpp:159
double m_y2
Definition CDxf.hpp:160
void draw(IGraphics *graphics) const override
Definition CDxf.cpp:3297
SEntityLine(const std::string &nameLayer, double x1, double y1, double x2, double y2, bool isColorRGB, uint64_t colorIndex, int64_t lineWidth, double Nx, double Ny, double Nz)
Definition CDxf.cpp:3286
double m_x1
Definition CDxf.hpp:157
Definition CDxf.hpp:136
void processEntityPolyline(const std::vector< SBlockDxf * > *blocks, SProcessEntitiesPolylines *dataProcess, const std::string &nameLayerOpt) const override
Definition CDxf.cpp:3281
SEntityPoint(const std::string &nameLayer, double x, double y, double z, bool isColorRGB, uint64_t colorIndex, int64_t lineWidth, double Nx, double Ny, double Nz)
Definition CDxf.cpp:3253
void draw(IGraphics *graphics) const override
Definition CDxf.cpp:3263
void processEntityGeoBlock(CGeoBlock *currentGeoBlock, std::vector< SBlockDxf * > *blocks, SProcessEntitiesGeoBlocks *dataProcess) const override
Definition CDxf.cpp:3269
double m_y
Definition CDxf.hpp:141
double m_x
Definition CDxf.hpp:140
double m_z
Definition CDxf.hpp:142
Definition CDxf.hpp:171
float * m_vertex
Definition CDxf.hpp:177
void processEntityGeoBlock(CGeoBlock *currentGeoBlock, std::vector< SBlockDxf * > *blocks, SProcessEntitiesGeoBlocks *dataProcess) const override
Definition CDxf.cpp:3357
uint64_t m_numVertex
Definition CDxf.hpp:176
~SEntityPolyline() override
Definition CDxf.cpp:3345
void draw(IGraphics *graphics) const override
Definition CDxf.cpp:3351
void processEntityPolyline(const std::vector< SBlockDxf * > *blocks, SProcessEntitiesPolylines *dataProcess, const std::string &nameLayerOpt) const override
Definition CDxf.cpp:3390
SEntityPolyline(const std::string &nameLayer, float **vertex, uint64_t numVertex, bool isColorRGB, uint64_t colorRGB, int64_t lineWidth, double Nx, double Ny, double Nz, double elevation)
Definition CDxf.cpp:3335
double m_elevation
Definition CDxf.hpp:178
Definition CDxf.hpp:276
double m_x4
Definition CDxf.hpp:287
double m_y4
Definition CDxf.hpp:288
void processEntityPolyline(const std::vector< SBlockDxf * > *blocks, SProcessEntitiesPolylines *dataProcess, const std::string &nameLayerOpt) const override
Definition CDxf.cpp:3606
SEntitySolid(const std::string &nameLayer, double x1, double y1, double x2, double y2, double x3, double y3, double x4, double y4, bool isColorRGB, uint64_t colorRGB, int64_t lineWidth, double Nx, double Ny, double Nz)
Definition CDxf.cpp:3562
double m_y1
Definition CDxf.hpp:282
double m_y3
Definition CDxf.hpp:286
double m_y2
Definition CDxf.hpp:284
double m_x1
Definition CDxf.hpp:281
double m_x3
Definition CDxf.hpp:285
void draw(IGraphics *graphics) const override
Definition CDxf.cpp:3581
double m_x2
Definition CDxf.hpp:283
void processEntityGeoBlock(CGeoBlock *currentGeoBlock, std::vector< SBlockDxf * > *blocks, SProcessEntitiesGeoBlocks *dataProcess) const override
Definition CDxf.cpp:3587
Definition CDxf.hpp:253
std::string m_text
Definition CDxf.hpp:259
SEntityText(const std::string &nameLayer, const std::string &text, double x, double y, double z, double height, unsigned char justify, double angle, uint64_t colorIndex, bool isColorRGB, int64_t lineWidth, double Nx, double Ny, double Nz)
Definition CDxf.cpp:3520
double m_angleGrd
Definition CDxf.hpp:265
unsigned char m_justify
Definition CDxf.hpp:264
double m_x
Definition CDxf.hpp:260
~SEntityText() override=default
void processEntityPolyline(const std::vector< SBlockDxf * > *blocks, SProcessEntitiesPolylines *dataProcess, const std::string &nameLayerOpt) const override
Definition CDxf.cpp:3557
double m_y
Definition CDxf.hpp:261
void draw(IGraphics *graphics) const override
Definition CDxf.cpp:3537
void processEntityGeoBlock(CGeoBlock *currentGeoBlock, std::vector< SBlockDxf * > *blocks, SProcessEntitiesGeoBlocks *dataProcess) const override
Definition CDxf.cpp:3552
double m_height
Definition CDxf.hpp:263
double m_z
Definition CDxf.hpp:262
Definition CDxf.hpp:76
double m_Nx
Definition CDxf.hpp:101
double m_Nz
Definition CDxf.hpp:103
bool isLayer(const std::string &nameLayer) const
Definition CDxf.cpp:1792
uint64_t m_colorIndex
Definition CDxf.hpp:95
virtual void draw(IGraphics *graphics) const =0
virtual void processEntityGeoBlock(CGeoBlock *currentGeoBlock, std::vector< SBlockDxf * > *blocks, SProcessEntitiesGeoBlocks *dataProcess) const =0
bool m_isColorRGB
Definition CDxf.hpp:98
iv::types::color m_colorARGBCalculated
Definition CDxf.hpp:99
bool m_hasLineWidthCalculated
Definition CDxf.hpp:105
int64_t m_lineWidthCalculated
Definition CDxf.hpp:106
int64_t m_lineWidth
Definition CDxf.hpp:104
void drawEntity(uint64_t colorBlocRGB, int64_t lineWidthBlock, std::vector< SBlockDxf * > *blocks, const std::vector< SLayerDxf * > *layers, IGraphics *graphics)
Definition CDxf.cpp:1712
void setColorARGB(iv::types::color colorARGB)
Definition CDxf.cpp:1787
bool m_isAttributedCalculated
Definition CDxf.hpp:97
double m_Ny
Definition CDxf.hpp:102
std::string m_nameLayer
Definition CDxf.hpp:96
virtual void processEntityPolyline(const std::vector< SBlockDxf * > *blocks, SProcessEntitiesPolylines *dataProcess, const std::string &nameLayerOpt) const =0
virtual ~SEntity()=default
SEntity(const std::string &nameLayer, bool isColorRGB, uint64_t colorIndex, int64_t lineWidth, double Nx, double Ny, double Nz)
Definition CDxf.cpp:1660
bool m_isVisibleByLayer
Definition CDxf.hpp:100
Definition CDxf.hpp:26
SLayerDxf(const std::string &nameLayer, bool isColorRGB, uint64_t colorIndex, bool isVisible, int64_t lineWidth)
Definition CDxf.cpp:1562
~SLayerDxf()=default
std::string m_name
Definition CDxf.hpp:31
bool m_isColorRGB
Definition CDxf.hpp:34
SLayerDxf(const SLayerDxf &other)=default
uint64_t m_colorIndex
Definition CDxf.hpp:32
int64_t m_lineWidth
Definition CDxf.hpp:35
bool m_isVisible
Definition CDxf.hpp:33
Definition CDxf.hpp:39
std::vector< CGeoBlock * > * m_geoBlocks
Definition CDxf.hpp:46
CStackTransformation * m_stackTransformation
Definition CDxf.hpp:45
bool exists(const std::string &itemSearch, uint32_t *ind) const
Definition CDxf.cpp:1586
~SProcessEntitiesGeoBlocks()
Definition CDxf.cpp:1579
SProcessEntitiesGeoBlocks(CStackTransformation **stackTransformation, std::vector< CGeoBlock * > **geoBlocks)
Definition CDxf.cpp:1572
Definition CDxf.hpp:50
SProcessEntitiesPolylines(CStackTransformation **stackTransformation, std::vector< std::vector< iv::math::geometry::Point3d > > **polylines)
Definition CDxf.cpp:1610
std::vector< std::vector< iv::math::geometry::Point3d > > * movePolylines()
Definition CDxf.cpp:1624
CStackTransformation * m_stackTransformation
Definition CDxf.hpp:57
~SProcessEntitiesPolylines()
Definition CDxf.cpp:1617
std::vector< std::vector< iv::math::geometry::Point3d > > * m_polylines
Definition CDxf.hpp:58