Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
CGraphicsRect.hpp
Go to the documentation of this file.
1#ifndef LIBS_GRAPHICS_CGRAPHICSRECT_HPP_
2#define LIBS_GRAPHICS_CGRAPHICSRECT_HPP_
3
4#include "IGraphics.hpp"
5#include "math/CLimits.hpp"
8
9#include <string>
10
12{
13public:
15
16 CGraphicsRect(const CGraphicsRect &) = delete;
17
18 ~CGraphicsRect() override;
19
21
22 explicit CGraphicsRect(IGraphics *graphics);
23
24 [[nodiscard]] CLimits *getLimits() const;
25
26 bool getLimits(double *xMin, double *yMin, double *zMin, double *xMax, double *yMax, double *zMax) const;
27
28 void scale(double sx, double sy, double sz) override;
29
30private:
31 void setBackGroundColor(iv::types::color rgb) override;
32 void setClearColor() override;
33
34 void initDevice() override;
35
36 void initLight() override;
37
38 void clear() override;
39
40 void defineMaterial(const iv::ui::graphics::Material *material, const bool &isChanged) override;
41
42 bool isDefinedMaterial(const std::string &materialName) override;
43
44 void pushMaterial() override;
45
46 void setMaterial(const std::string &layerName) override;
47
48 void popMaterial() override;
49
50 void setColorRGB(iv::types::color rgb) override;
51
52 void setColorARGB(iv::types::color argb) override;
53
54 void setLineWidth(float width) override;
55
56 void setAlpha(float alpha) override;
57
58 void resetAlpha() override;
59
60 void setOnTexture(bool enableTexture) override;
61
62 std::shared_ptr<iv::ui::graphics::Image> loadImage(const iv::ui::resources::ImageResource &resource) override;
63
64 void appendMatrix(const CMatrix4x4 &matrix) override;
65
66 void setModelMatrix(IGraphics::EMatrixModel matrixModel) override;
67
68 void popTransformation() override;
69
70 void pushTransformation() override;
71
72 void resetTransformation() override;
73
74 void defineLight(IGraphics::ELight light, IGraphics::ELightType lightType, double rColor, double gColor,
75 double bColor) override;
76
77 void positionLight(IGraphics::ELight light, double x, double y, double z) override;
78
79 void viewport(int32_t x, int32_t y, uint64_t sizeX, uint64_t sizeY) override;
80
81 void definePerspective(double fovy, double ratioXForY, double zNear, double zFar) override;
82
83 void defineOrthogonal(double xOrg, double yOrg, double zOrg, double xMin, double yMin, double zMin, double xMax,
84 double yMax, double zMax) override;
85
86 void positionCamera(double eyeX, double eyeY, double eyeZ, double pointReferenceX, double pointReferenceY,
87 double pointReferenceZ, double upX, double upY, double upZ) override;
88
89 void rotation(double angleDegrees, double Ux, double Uy, double Uz) override;
90
91 void setNormal(double Nx, double Ny, double Nz) override;
92
93 void translation(double tx, double ty, double tz) override;
94
95 void drawContours(const std::vector<std::shared_ptr<std::vector<iv::math::geometry::Point3d>>> &contours) override;
96
97 void drawFanTriangles(const float *points, const float *normals, const float *textureOpt, const float *rgbaOpt,
98 uint64_t numPoints, const uint32_t *indVertex, uint64_t numVertex) override;
99
100 void drawImage(double x, double y, double width, double height,
101 const iv::ui::resources::ImageResource &resource) override;
102
103 void drawImageRawSize(double x, double y, const iv::ui::resources::ImageResource &resource) override;
104
105 void drawImageWithColor(double x, double y, iv::types::color colorRGB, double width, double height,
106 const iv::ui::resources::ImageResource &resource) override;
107
108 void drawLine(double x1, double y1, double z1, double x2, double y2, double z2) override;
109
110 void drawLineWithStyle(double x1, double y1, double z1, double x2, double y2, double z2,
111 IGraphics::EDashedLineType dashedLineType) override;
112
113 void drawArc(double radiusMark, iv::types::radian angleInitial, iv::types::radian angleFinal, float thickness,
114 uint64_t kPrvNumPoints) override;
115
116 void drawPolyline(const float *vertex, uint64_t numVertex) override;
117
118 void drawPolylineFilled(const float *vertex, uint64_t numVertex) override;
119
120 void drawPolylinesWithColors(const std::shared_ptr<std::vector<iv::math::geometry::Point2d>> &points,
121 const std::vector<iv::math::geometry::Point3d> &rgb) override;
122
123 void drawQuads(double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3,
124 double x4, double y4, double z4) override;
125
126 void drawRect(double x1, double y1, double x2, double y2) override;
127
128 void drawRectFilled(double x1, double y1, double x2, double y2) override;
129
130 void drawStripTriangles(const float *points, const float *normals, const float *textureOpt, const float *rgbaOpt,
131 uint64_t numPoints, const uint32_t *indVertex, uint64_t numVertex) override;
132
133 void drawText(const std::string &text, double x, double y, double height, unsigned char justify) override;
134
135 void drawTextWithDeviceHeight(const std::string &text, double x, double y, double height,
136 unsigned char justify) override;
137
138 void drawTriangle(double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3,
139 double z3) override;
140
141 void drawTriangles(const float *points, const float *normals, const float *textureOpt, const float *rgbaOpt,
142 uint64_t numPoints, const uint32_t *indVertex, uint64_t numVertex) override;
143
144 void drawUnitCone(IGraphics::EDetailLevel detailLevel) override;
145
146 void drawUnitCube() override;
147
148 void drawUnitCylinder(IGraphics::EDetailLevel detailLevel) override;
149
150 void drawUnitDisk(IGraphics::EDetailLevel detailLevel) override;
151
152 void drawUnitSphere(IGraphics::EDetailLevel detailLevel) override;
153
154 [[nodiscard]] bool hasDrawPolylineFilled() const override;
155
156 void setModeDraw(IGraphics::EDrawSolidType drawSolidType) override;
157
158 uint32_t blockTextWithModifiers(const std::string &text, const iv::ui::TextModifier &textModifier,
159 double *widthText, double *heightTextOut) override;
160
161 void drawBlockText(uint32_t idBlockText, double x, double y, double widthText, double heightText,
162 unsigned char justify) override;
163
164 void endBlockText(uint32_t *idBlockText) override;
165
166 [[nodiscard]] bool hasBlockText() const override;
167
168 uint32_t beginBlock() override;
169
170 void drawBlock(uint32_t idBlock) override;
171
172 void endBlock(uint32_t idBlock) override;
173
174 [[nodiscard]] bool hasManagerBlocks() const override;
175
176 void removeBlock(uint32_t *idBlock) override;
177
178 void beginStencilBuffer() override;
179
180 void endStencilBuffer() override;
181
182 void offStencilBuffer() override;
183
184 void onStencilBuffer() override;
185
186 void getCoordTextCornerLeftDown(const std::string &text, double x, double y, double heightCharacter,
187 unsigned char justify, double *xCornerLeftDown, double *yCornerLeftDown,
188 double *widthTextOpt, double *heightTextOpt) override;
189
190 void getSizePixelToWorld(double sizePixelX, double sizePixelY, double *sizeWorldXOpt,
191 double *sizeWorldYOpt) override;
192
193 void getSizeText(const std::string &text, double heightCharacter, double *widthText, double *heightText) override;
194
195 void setBlend(bool isEnable) override;
196
197 void setTestDepth(bool isEnable) override;
198
200
204};
205
206#endif /* LIBS_GRAPHICS_CGRAPHICSRECT_HPP_ */
static constexpr uint64_t kPrvNumPoints
Definition CDrawShapes.cpp:16
Definition CGraphicsRect.hpp:12
CGraphicsRect & operator=(const CGraphicsRect &)=delete
void positionLight(IGraphics::ELight light, double x, double y, double z) override
Definition CGraphicsRect.cpp:160
void defineLight(IGraphics::ELight light, IGraphics::ELightType lightType, double rColor, double gColor, double bColor) override
Definition CGraphicsRect.cpp:155
void getCoordTextCornerLeftDown(const std::string &text, double x, double y, double heightCharacter, unsigned char justify, double *xCornerLeftDown, double *yCornerLeftDown, double *widthTextOpt, double *heightTextOpt) override
Definition CGraphicsRect.cpp:506
void drawUnitCube() override
Definition CGraphicsRect.cpp:385
void pushMaterial() override
Definition CGraphicsRect.cpp:90
void defineMaterial(const iv::ui::graphics::Material *material, const bool &isChanged) override
Definition CGraphicsRect.cpp:81
bool isDefinedMaterial(const std::string &materialName) override
Definition CGraphicsRect.cpp:85
void drawPolylineFilled(const float *vertex, uint64_t numVertex) override
Definition CGraphicsRect.cpp:271
void drawRectFilled(double x1, double y1, double x2, double y2) override
Definition CGraphicsRect.cpp:307
void drawUnitCone(IGraphics::EDetailLevel detailLevel) override
Definition CGraphicsRect.cpp:379
bool m_hasDelete
Definition CGraphicsRect.hpp:201
IGraphics * m_graphicsDestinyOpt
Definition CGraphicsRect.hpp:202
void drawFanTriangles(const float *points, const float *normals, const float *textureOpt, const float *rgbaOpt, uint64_t numPoints, const uint32_t *indVertex, uint64_t numVertex) override
Definition CGraphicsRect.cpp:213
void setBlend(bool isEnable) override
Definition CGraphicsRect.cpp:610
void drawText(const std::string &text, double x, double y, double height, unsigned char justify) override
Definition CGraphicsRect.cpp:320
void drawUnitCylinder(IGraphics::EDetailLevel detailLevel) override
Definition CGraphicsRect.cpp:391
void onStencilBuffer() override
Definition CGraphicsRect.cpp:502
void offStencilBuffer() override
Definition CGraphicsRect.cpp:498
void drawPolylinesWithColors(const std::shared_ptr< std::vector< iv::math::geometry::Point2d > > &points, const std::vector< iv::math::geometry::Point3d > &rgb) override
Definition CGraphicsRect.cpp:276
void drawStripTriangles(const float *points, const float *normals, const float *textureOpt, const float *rgbaOpt, uint64_t numPoints, const uint32_t *indVertex, uint64_t numVertex) override
Definition CGraphicsRect.cpp:313
void setColorARGB(iv::types::color argb) override
Definition CGraphicsRect.cpp:106
void resetTransformation() override
Definition CGraphicsRect.cpp:150
void setOnTexture(bool enableTexture) override
Definition CGraphicsRect.cpp:122
bool hasBlockText() const override
Definition CGraphicsRect.cpp:448
void drawPolyline(const float *vertex, uint64_t numVertex) override
Definition CGraphicsRect.cpp:266
void drawUnitSphere(IGraphics::EDetailLevel detailLevel) override
Definition CGraphicsRect.cpp:403
void drawArc(double radiusMark, iv::types::radian angleInitial, iv::types::radian angleFinal, float thickness, uint64_t kPrvNumPoints) override
Definition CGraphicsRect.cpp:252
~CGraphicsRect() override
Definition CGraphicsRect.cpp:50
void drawTriangle(double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3) override
Definition CGraphicsRect.cpp:364
void getSizeText(const std::string &text, double heightCharacter, double *widthText, double *heightText) override
Definition CGraphicsRect.cpp:588
void resetAlpha() override
Definition CGraphicsRect.cpp:118
void endStencilBuffer() override
Definition CGraphicsRect.cpp:494
void endBlock(uint32_t idBlock) override
Definition CGraphicsRect.cpp:465
void endBlockText(uint32_t *idBlockText) override
Definition CGraphicsRect.cpp:442
void initDevice() override
Definition CGraphicsRect.cpp:69
bool hasDrawPolylineFilled() const override
Definition CGraphicsRect.cpp:409
void setColorRGB(iv::types::color rgb) override
Definition CGraphicsRect.cpp:102
void translation(double tx, double ty, double tz) override
Definition CGraphicsRect.cpp:197
void pushTransformation() override
Definition CGraphicsRect.cpp:145
void drawContours(const std::vector< std::shared_ptr< std::vector< iv::math::geometry::Point3d > > > &contours) override
Definition CGraphicsRect.cpp:202
void initLight() override
Definition CGraphicsRect.cpp:73
CStackTransformation m_stackTransformation
Definition CGraphicsRect.hpp:203
void drawTextWithDeviceHeight(const std::string &text, double x, double y, double height, unsigned char justify) override
Definition CGraphicsRect.cpp:354
void appendMatrix(const CMatrix4x4 &matrix) override
Definition CGraphicsRect.cpp:131
CLimits * m_limits
Definition CGraphicsRect.hpp:199
void drawQuads(double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3, double x4, double y4, double z4) override
Definition CGraphicsRect.cpp:292
void positionCamera(double eyeX, double eyeY, double eyeZ, double pointReferenceX, double pointReferenceY, double pointReferenceZ, double upX, double upY, double upZ) override
Definition CGraphicsRect.cpp:177
void drawLineWithStyle(double x1, double y1, double z1, double x2, double y2, double z2, IGraphics::EDashedLineType dashedLineType) override
Definition CGraphicsRect.cpp:245
void drawLine(double x1, double y1, double z1, double x2, double y2, double z2) override
Definition CGraphicsRect.cpp:239
void beginStencilBuffer() override
Definition CGraphicsRect.cpp:490
void drawBlock(uint32_t idBlock) override
Definition CGraphicsRect.cpp:459
void getSizePixelToWorld(double sizePixelX, double sizePixelY, double *sizeWorldXOpt, double *sizeWorldYOpt) override
Definition CGraphicsRect.cpp:557
void drawImageRawSize(double x, double y, const iv::ui::resources::ImageResource &resource) override
Definition CGraphicsRect.cpp:227
bool hasManagerBlocks() const override
Definition CGraphicsRect.cpp:471
void popTransformation() override
Definition CGraphicsRect.cpp:140
void rotation(double angleDegrees, double Ux, double Uy, double Uz) override
Definition CGraphicsRect.cpp:182
void drawImageWithColor(double x, double y, iv::types::color colorRGB, double width, double height, const iv::ui::resources::ImageResource &resource) override
Definition CGraphicsRect.cpp:233
void drawTriangles(const float *points, const float *normals, const float *textureOpt, const float *rgbaOpt, uint64_t numPoints, const uint32_t *indVertex, uint64_t numVertex) override
Definition CGraphicsRect.cpp:372
uint32_t beginBlock() override
Definition CGraphicsRect.cpp:453
void setLineWidth(float width) override
Definition CGraphicsRect.cpp:110
void clear() override
Definition CGraphicsRect.cpp:77
void defineOrthogonal(double xOrg, double yOrg, double zOrg, double xMin, double yMin, double zMin, double xMax, double yMax, double zMax) override
Definition CGraphicsRect.cpp:172
CLimits * getLimits() const
Definition CGraphicsRect.cpp:59
void drawRect(double x1, double y1, double x2, double y2) override
Definition CGraphicsRect.cpp:301
void removeBlock(uint32_t *idBlock) override
Definition CGraphicsRect.cpp:476
void drawImage(double x, double y, double width, double height, const iv::ui::resources::ImageResource &resource) override
Definition CGraphicsRect.cpp:220
void viewport(int32_t x, int32_t y, uint64_t sizeX, uint64_t sizeY) override
Definition CGraphicsRect.cpp:164
std::shared_ptr< iv::ui::graphics::Image > loadImage(const iv::ui::resources::ImageResource &resource) override
Definition CGraphicsRect.cpp:126
void setModeDraw(IGraphics::EDrawSolidType drawSolidType) override
Definition CGraphicsRect.cpp:414
void drawBlockText(uint32_t idBlockText, double x, double y, double widthText, double heightText, unsigned char justify) override
Definition CGraphicsRect.cpp:424
void popMaterial() override
Definition CGraphicsRect.cpp:98
void setAlpha(float alpha) override
Definition CGraphicsRect.cpp:114
void drawUnitDisk(IGraphics::EDetailLevel detailLevel) override
Definition CGraphicsRect.cpp:397
uint32_t blockTextWithModifiers(const std::string &text, const iv::ui::TextModifier &textModifier, double *widthText, double *heightTextOut) override
Definition CGraphicsRect.cpp:418
CGraphicsRect(const CGraphicsRect &)=delete
void setMaterial(const std::string &layerName) override
Definition CGraphicsRect.cpp:94
void setModelMatrix(IGraphics::EMatrixModel matrixModel) override
Definition CGraphicsRect.cpp:136
void scale(double sx, double sy, double sz) override
Definition CGraphicsRect.cpp:187
void setBackGroundColor(iv::types::color rgb) override
Definition CGraphicsRect.cpp:618
void definePerspective(double fovy, double ratioXForY, double zNear, double zFar) override
Definition CGraphicsRect.cpp:168
void setClearColor() override
Definition CGraphicsRect.cpp:622
CGraphicsRect()
Definition CGraphicsRect.cpp:36
void setTestDepth(bool isEnable) override
Definition CGraphicsRect.cpp:614
void setNormal(double Nx, double Ny, double Nz) override
Definition CGraphicsRect.cpp:192
Definition CLimits.hpp:5
Definition CMatrix4x4.hpp:23
Definition CStackTransformation.hpp:7
Definition IGraphics.hpp:20
EDetailLevel
Definition IGraphics.hpp:29
ELight
Definition IGraphics.hpp:44
EDashedLineType
Definition IGraphics.hpp:23
EMatrixModel
Definition IGraphics.hpp:57
ELightType
Definition IGraphics.hpp:50
EDrawSolidType
Definition IGraphics.hpp:37
Definition Material.hpp:49
Definition ImageResource.hpp:15
double radian
Definition types.hpp:19
uint32_t color
Definition types.hpp:12
Definition modifiers.hpp:15