Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
CGraphicsAttribute.hpp
Go to the documentation of this file.
1#ifndef LIBS_VIEWCAD_CGRAPHICSATRIBUTE_HPP_
2#define LIBS_VIEWCAD_CGRAPHICSATRIBUTE_HPP_
3
6
8{
9public:
11 CGraphicsAttribute(IGraphics *graphicsRef, iv::types::color colorARGB);
13 CGraphicsAttribute(const CGraphicsAttribute &other) = delete;
15
18
19 void setBackGroundColor(iv::types::color rgb) override;
20 void setClearColor() override;
21 void initDevice() override;
22 void initLight() override;
23 void clear() override;
24 void defineMaterial(const iv::ui::graphics::Material *material, const bool &isChanged) override;
25 bool isDefinedMaterial(const std::string &materialName) override;
26 void pushMaterial() override;
27 void setMaterial(const std::string &materialName) override;
28 void popMaterial() override;
29 void setColorRGB(iv::types::color rgb) override;
30 void setColorARGB(iv::types::color argb) override;
31 void setLineWidth(float width) override;
32 void setAlpha(float alpha) override;
33 void resetAlpha() override;
34 void setOnTexture(bool enableTexture) override;
35 std::shared_ptr<iv::ui::graphics::Image> loadImage(const iv::ui::resources::ImageResource &resource) override;
36 void setModelMatrix(IGraphics::EMatrixModel modelMatrix) override;
37 void resetTransformation() override;
38 void pushTransformation() override;
39 void defineLight(IGraphics::ELight light, IGraphics::ELightType typeLight, double r_color, double g_color,
40 double b_color) override;
41 void positionLight(ELight light, double x, double y, double z) override;
42 void viewport(int32_t x, int32_t y, uint64_t sizeX, uint64_t sizeY) override;
43 void definePerspective(double fovy, double ratioXForY, double zNear, double zFar) override;
44 void defineOrthogonal(double xOrg, double yOrg, double zOrg, double xMin, double yMin, double zMin, double xMax,
45 double yMax, double zMax) override;
46 void positionCamera(double eyeX, double eyeY, double eyeZ, double pointReferenceX, double pointReferenceY,
47 double pointReferenceZ, double upX, double upY, double upZ) override;
48 void translation(double tx, double ty, double tz) override;
49 void rotation(double angleDegrees, double Ux, double Uy, double Uz) override;
50 void scale(double sx, double sy, double sz) override;
51 void appendMatrix(const CMatrix4x4 &matrix) override;
52 void setNormal(double Nx, double Ny, double Nz) override;
53 void popTransformation() override;
54 void drawLine(double x1, double y1, double z1, double x2, double y2, double z2) override;
55
56 void drawLineWithStyle(double x1, double y1, double z1, double x2, double y2, double z2,
57 IGraphics::EDashedLineType typeLine) override;
58 void drawRect(double x1, double y1, double x2, double y2) override;
59 void drawRectFilled(double x1, double y1, double x2, double y2) override;
60 void drawArc(double radiusMark, iv::types::radian angleInitial, iv::types::radian angleFinal, float thickness,
61 uint64_t kPrvNumPoints) override;
62 void drawPolyline(const float *vertex, uint64_t numVertex) override;
63 [[nodiscard]] bool hasDrawPolylineFilled() const override;
64 void drawContours(const std::vector<std::shared_ptr<std::vector<iv::math::geometry::Point3d>>> &contours) override;
65 void drawPolylineFilled(const float *vertex, uint64_t numVertex) override;
66 void drawPolylinesWithColors(const std::shared_ptr<std::vector<iv::math::geometry::Point2d>> &points,
67 const std::vector<iv::math::geometry::Point3d> &rgb) override;
68 void drawTriangle(double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3,
69 double z3) override;
70 void drawQuads(double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3,
71 double x4, double y4, double z4) override;
72 void setModeDraw(IGraphics::EDrawSolidType typeDraw) override;
73 void drawUnitCube() override;
74 void drawUnitSphere(IGraphics::EDetailLevel levelDetail) override;
75 void drawUnitCylinder(IGraphics::EDetailLevel levelDetail) override;
76 void drawUnitCone(IGraphics::EDetailLevel levelDetail) override;
77 void drawUnitDisk(IGraphics::EDetailLevel levelDetail) override;
78 void drawImage(double x, double y, double width, double height,
79 const iv::ui::resources::ImageResource &resource) override;
80 void drawImageRawSize(double x, double y, const iv::ui::resources::ImageResource &resource) override;
81 void drawImageWithColor(double x, double y, iv::types::color colorRGB, double width, double height,
82 const iv::ui::resources::ImageResource &resourceName) override;
83 void getCoordTextCornerLeftDown(const std::string &text, double x, double y, double heightCharacter,
84 unsigned char justify, double *xCornerLeftDown, double *yCornerLeftDown,
85 double *widthTextOpt, double *heightTextOpt) override;
86 void getSizeText(const std::string &text, double heightCharacter, double *widthText, double *heightText) override;
87 void drawText(const std::string &text, double x, double y, double height, unsigned char justify) override;
88 void drawTextWithDeviceHeight(const std::string &text, double x, double y, double height,
89 unsigned char justify) override;
90 uint32_t blockTextWithModifiers(const std::string &text, const iv::ui::TextModifier &textModifier,
91 double *widthText, double *heightTextOut) override;
92
93 void drawBlockText(uint32_t idBlockText, double x, double y, double widthText, double heightText,
94 unsigned char justify) override;
95 void endBlockText(uint32_t *idBlockText) override;
96 [[nodiscard]] bool hasManagerBlocks() const override;
97 uint32_t beginBlock() override;
98 void endBlock(uint32_t id_block) override;
99 void drawBlock(uint32_t id_block) override;
100 void removeBlock(uint32_t *id_block) override;
101 void drawTriangles(const float *points, const float *normals, const float *textureOpt, const float *rgbaOpt,
102 uint64_t numPoints, const uint32_t *indVertex, uint64_t numVertex) override;
103 void drawStripTriangles(const float *points, const float *normals, const float *textureOpt, const float *rgbaOpt,
104 uint64_t numPoints, const uint32_t *indVertex, uint64_t numVertex) override;
105
106 void drawFanTriangles(const float *points, const float *normals, const float *textureOpt, const float *rgbaOpt,
107 uint64_t numPoints, const uint32_t *indVertex, uint64_t numVertex) override;
108 void setTestDepth(bool isEnable) override;
109 void setBlend(bool isEnable) override;
110 void beginStencilBuffer() override;
111 void endStencilBuffer() override;
112 void onStencilBuffer() override;
113 void offStencilBuffer() override;
114 void getSizePixelToWorld(double sizeXpx, double sizeYpx, double *sizeXwdOpt, double *sizeYwdOpt) override;
115 [[nodiscard]] bool hasBlockText() const override;
116
117private:
119 uint64_t m_colorRGB;
120};
121
122#endif /* LIBS_VIEWCAD_CGRAPHICSATRIBUTE_HPP_ */
static constexpr uint64_t kPrvNumPoints
Definition CDrawShapes.cpp:16
Definition CGraphicsAttribute.hpp:8
void setBlend(bool isEnable) override
Definition CGraphicsAttribute.cpp:387
void setColorARGB(iv::types::color argb) override
Definition CGraphicsAttribute.cpp:60
void drawUnitDisk(IGraphics::EDetailLevel levelDetail) override
Definition CGraphicsAttribute.cpp:253
void initDevice() override
Definition CGraphicsAttribute.cpp:15
void endBlock(uint32_t id_block) override
Definition CGraphicsAttribute.cpp:340
IGraphics * m_graphicsRef
Definition CGraphicsAttribute.hpp:118
void drawPolylinesWithColors(const std::shared_ptr< std::vector< iv::math::geometry::Point2d > > &points, const std::vector< iv::math::geometry::Point3d > &rgb) override
Definition CGraphicsAttribute.cpp:201
void setModeDraw(IGraphics::EDrawSolidType typeDraw) override
Definition CGraphicsAttribute.cpp:223
void getSizeText(const std::string &text, double heightCharacter, double *widthText, double *heightText) override
Definition CGraphicsAttribute.cpp:289
CGraphicsAttribute()=delete
void endStencilBuffer() override
Definition CGraphicsAttribute.cpp:399
void removeBlock(uint32_t *id_block) override
Definition CGraphicsAttribute.cpp:351
void setTestDepth(bool isEnable) override
Definition CGraphicsAttribute.cpp:381
void drawBlockText(uint32_t idBlockText, double x, double y, double widthText, double heightText, unsigned char justify) override
Definition CGraphicsAttribute.cpp:315
void setModelMatrix(IGraphics::EMatrixModel modelMatrix) override
Definition CGraphicsAttribute.cpp:91
void drawPolyline(const float *vertex, uint64_t numVertex) override
Definition CGraphicsAttribute.cpp:176
void beginStencilBuffer() override
Definition CGraphicsAttribute.cpp:393
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 CGraphicsAttribute.cpp:357
void endBlockText(uint32_t *idBlockText) override
Definition CGraphicsAttribute.cpp:322
CGraphicsAttribute(CGraphicsAttribute &&other)=delete
void drawArc(double radiusMark, iv::types::radian angleInitial, iv::types::radian angleFinal, float thickness, uint64_t kPrvNumPoints) override
Definition CGraphicsAttribute.cpp:170
bool hasDrawPolylineFilled() const override
Definition CGraphicsAttribute.cpp:182
void setOnTexture(bool enableTexture) override
Definition CGraphicsAttribute.cpp:80
void drawTriangle(double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3) override
Definition CGraphicsAttribute.cpp:209
void clear() override
Definition CGraphicsAttribute.cpp:25
void defineMaterial(const iv::ui::graphics::Material *material, const bool &isChanged) override
Definition CGraphicsAttribute.cpp:30
void setAlpha(float alpha) override
Definition CGraphicsAttribute.cpp:70
void onStencilBuffer() override
Definition CGraphicsAttribute.cpp:405
bool hasBlockText() const override
Definition CGraphicsAttribute.cpp:423
void resetTransformation() override
Definition CGraphicsAttribute.cpp:97
void drawBlock(uint32_t id_block) override
Definition CGraphicsAttribute.cpp:346
void setColorRGB(iv::types::color rgb) override
Definition CGraphicsAttribute.cpp:55
void drawRect(double x1, double y1, double x2, double y2) override
Definition CGraphicsAttribute.cpp:158
void drawLine(double x1, double y1, double z1, double x2, double y2, double z2) override
Definition CGraphicsAttribute.cpp:145
void rotation(double angleDegrees, double Ux, double Uy, double Uz) override
Definition CGraphicsAttribute.cpp:115
void setMaterial(const std::string &materialName) override
Definition CGraphicsAttribute.cpp:45
void drawTextWithDeviceHeight(const std::string &text, double x, double y, double height, unsigned char justify) override
Definition CGraphicsAttribute.cpp:302
void positionCamera(double eyeX, double eyeY, double eyeZ, double pointReferenceX, double pointReferenceY, double pointReferenceZ, double upX, double upY, double upZ) override
Definition CGraphicsAttribute.cpp:450
void popMaterial() override
Definition CGraphicsAttribute.cpp:50
uint32_t beginBlock() override
Definition CGraphicsAttribute.cpp:334
void drawContours(const std::vector< std::shared_ptr< std::vector< iv::math::geometry::Point3d > > > &contours) override
Definition CGraphicsAttribute.cpp:188
void drawImageRawSize(double x, double y, const iv::ui::resources::ImageResource &resource) override
Definition CGraphicsAttribute.cpp:266
CGraphicsAttribute & operator=(const CGraphicsAttribute &other)=delete
void setBackGroundColor(iv::types::color rgb) override
Definition CGraphicsAttribute.cpp:456
void popTransformation() override
Definition CGraphicsAttribute.cpp:139
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 CGraphicsAttribute.cpp:365
void drawImage(double x, double y, double width, double height, const iv::ui::resources::ImageResource &resource) override
Definition CGraphicsAttribute.cpp:259
void drawText(const std::string &text, double x, double y, double height, unsigned char justify) override
Definition CGraphicsAttribute.cpp:296
void defineLight(IGraphics::ELight light, IGraphics::ELightType typeLight, double r_color, double g_color, double b_color) override
Definition CGraphicsAttribute.cpp:428
void drawUnitSphere(IGraphics::EDetailLevel levelDetail) override
Definition CGraphicsAttribute.cpp:235
void definePerspective(double fovy, double ratioXForY, double zNear, double zFar) override
Definition CGraphicsAttribute.cpp:441
void appendMatrix(const CMatrix4x4 &matrix) override
Definition CGraphicsAttribute.cpp:127
void setNormal(double Nx, double Ny, double Nz) override
Definition CGraphicsAttribute.cpp:133
uint32_t blockTextWithModifiers(const std::string &text, const iv::ui::TextModifier &textModifier, double *widthText, double *heightTextOut) override
Definition CGraphicsAttribute.cpp:309
bool isDefinedMaterial(const std::string &materialName) override
Definition CGraphicsAttribute.cpp:35
void setLineWidth(float width) override
Definition CGraphicsAttribute.cpp:65
void viewport(int32_t x, int32_t y, uint64_t sizeX, uint64_t sizeY) override
Definition CGraphicsAttribute.cpp:437
void initLight() override
Definition CGraphicsAttribute.cpp:20
void pushTransformation() override
Definition CGraphicsAttribute.cpp:103
void drawUnitCylinder(IGraphics::EDetailLevel levelDetail) override
Definition CGraphicsAttribute.cpp:241
void drawUnitCube() override
Definition CGraphicsAttribute.cpp:229
void drawImageWithColor(double x, double y, iv::types::color colorRGB, double width, double height, const iv::ui::resources::ImageResource &resourceName) override
Definition CGraphicsAttribute.cpp:272
void scale(double sx, double sy, double sz) override
Definition CGraphicsAttribute.cpp:121
CGraphicsAttribute & operator=(CGraphicsAttribute &&other)=delete
void translation(double tx, double ty, double tz) override
Definition CGraphicsAttribute.cpp:109
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 CGraphicsAttribute.cpp:279
void getSizePixelToWorld(double sizeXpx, double sizeYpx, double *sizeXwdOpt, double *sizeYwdOpt) override
Definition CGraphicsAttribute.cpp:417
void drawUnitCone(IGraphics::EDetailLevel levelDetail) override
Definition CGraphicsAttribute.cpp:247
void drawPolylineFilled(const float *vertex, uint64_t numVertex) override
Definition CGraphicsAttribute.cpp:195
void drawLineWithStyle(double x1, double y1, double z1, double x2, double y2, double z2, IGraphics::EDashedLineType typeLine) override
Definition CGraphicsAttribute.cpp:151
bool hasManagerBlocks() const override
Definition CGraphicsAttribute.cpp:328
void resetAlpha() override
Definition CGraphicsAttribute.cpp:75
uint64_t m_colorRGB
Definition CGraphicsAttribute.hpp:119
void defineOrthogonal(double xOrg, double yOrg, double zOrg, double xMin, double yMin, double zMin, double xMax, double yMax, double zMax) override
Definition CGraphicsAttribute.cpp:445
void setClearColor() override
Definition CGraphicsAttribute.cpp:460
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 CGraphicsAttribute.cpp:373
void pushMaterial() override
Definition CGraphicsAttribute.cpp:40
~CGraphicsAttribute() override
CGraphicsAttribute(const CGraphicsAttribute &other)=delete
void positionLight(ELight light, double x, double y, double z) override
Definition CGraphicsAttribute.cpp:433
std::shared_ptr< iv::ui::graphics::Image > loadImage(const iv::ui::resources::ImageResource &resource) override
Definition CGraphicsAttribute.cpp:85
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 CGraphicsAttribute.cpp:216
void drawRectFilled(double x1, double y1, double x2, double y2) override
Definition CGraphicsAttribute.cpp:164
void offStencilBuffer() override
Definition CGraphicsAttribute.cpp:411
Definition CMatrix4x4.hpp:23
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