Nix (Dev) 3.5.10
dev - 3.5.10 - 1af9301
Loading...
Searching...
No Matches
CGraphicsGooCanvas.hpp
Go to the documentation of this file.
1#ifndef LIBS_GTK_CGRAPHICSGOOCANVAS_HPP_
2#define LIBS_GTK_CGRAPHICSGOOCANVAS_HPP_
3
4#include "logic/enums.hpp"
6#include "ui/enums.hpp"
8
9#include <bits/stdint-uintn.h>
10#include <gtk/gtk.h>
11#include <string>
12
13class ICanvasItem;
15
17{
18public:
20 explicit CGraphicsGooCanvas(GtkWidget *gooCanvasWidget);
21 CGraphicsGooCanvas(const CGraphicsGooCanvas &other) = delete;
23 ~CGraphicsGooCanvas() override = default;
24
27
28 void setBackGroundColor(iv::types::color rgb) override;
29 void setClearColor() override;
30 void initDevice() override;
31 void initLight() override;
32 void clear() override;
33 void defineMaterial(const iv::ui::graphics::Material *material, const bool &isChanged) override;
34 bool isDefinedMaterial(const std::string &materialName) override;
35 void pushMaterial() override;
36 void setMaterial(const std::string &materialName) override;
37 void popMaterial() override;
38 void setColorRGB(iv::types::color rgb) override;
39 void setColorARGB(iv::types::color argb) override;
40 void setLineWidth(float width) override;
41 void setAlpha(float alpha) override;
42 void resetAlpha() override;
43 void setOnTexture(bool enableTexture) override;
44 std::shared_ptr<iv::ui::graphics::Image> loadImage(const iv::ui::resources::ImageResource &resource) override;
45 void appendMatrix(const CMatrix4x4 &matrix) override;
46 void setModelMatrix(IGraphics::EMatrixModel matrixModel) override;
47 void popTransformation() override;
48 void pushTransformation() override;
49 void resetTransformation() override;
50 void defineLight(IGraphics::ELight light, IGraphics::ELightType lightType, double rColor, double gColor,
51 double bColor) override;
52 void positionLight(IGraphics::ELight light, double x, double y, double z) override;
53 void viewport(int32_t x, int32_t y, uint64_t sizeX, uint64_t sizeY) override;
54 void definePerspective(double fovY, double ratioXForY, double zNear, double zFar) override;
55 void defineOrthogonal(double xOrg, double yOrg, double zOrg, double xMin, double yMin, double zMin, double xMax,
56 double yMax, double zMax) override;
57 void positionCamera(double eyeX, double eyeY, double eyeZ, double pointReferenceX, double pointReferenceY,
58 double pointReferenceZ, double upX, double upY, double upZ) override;
59 void rotation(double angleDegrees, double Ux, double Uy, double Uz) override;
60 void scale(double sx, double sy, double sz) override;
61 void setNormal(double Nx, double Ny, double Nz) override;
62 void translation(double tx, double ty, double tz) override;
63 void drawContours(const std::vector<std::shared_ptr<std::vector<iv::math::geometry::Point3d>>> &contours) override;
64 void drawFanTriangles(const float *points, const float *normals, const float *textureOpt, const float *rgbaOpt,
65 uint64_t numPoints, const uint32_t *indVertex, uint64_t numVertex) override;
66 void drawImage(double x, double y, double width, double height,
67 const iv::ui::resources::ImageResource &resource) override;
68 void drawImageRawSize(double x, double y, const iv::ui::resources::ImageResource &resource) override;
69 void drawImageWithColor(double x, double y, iv::types::color colorRGB, double width, double height,
70 const iv::ui::resources::ImageResource &resourceName) override;
71 void drawLine(double x1, double y1, double z1, double x2, double y2, double z2) override;
72 void drawLineWithStyle(double x1, double y1, double z1, double x2, double y2, double z2,
73 IGraphics::EDashedLineType dashedLineType) override;
74 void drawArc(double radiusMark, iv::types::radian angleInitial, iv::types::radian angleFinal, float thickness,
75 uint64_t kPrvNumPoints) override;
76 void drawPolyline(const float *vertex, uint64_t numVertex) override;
77 void drawPolylineFilled(const float *vertex, uint64_t numVertex) override;
78 void drawPolylinesWithColors(const std::shared_ptr<std::vector<iv::math::geometry::Point2d>> &points,
79 const std::vector<iv::math::geometry::Point3d> &rgb) override;
80 void drawQuads(double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3,
81 double x4, double y4, double z4) override;
82 void drawRect(double x1, double y1, double x2, double y2) override;
83 void drawRectFilled(double x1, double y1, double x2, double y2) override;
84 void drawStripTriangles(const float *points, const float *normals, const float *textureOpt, const float *rgbaOpt,
85 uint64_t numPoints, const uint32_t *indVertex, uint64_t numVertex) override;
86 void drawText(const std::string &text, double x, double y, double height, unsigned char justify) override;
87 void drawTextWithDeviceHeight(const std::string &text, double x, double y, double height,
88 unsigned char justify) override;
89 void drawTriangle(double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3,
90 double z3) override;
91 void drawTriangles(const float *points, const float *normals, const float *textureOpt, const float *rgbaOpt,
92 uint64_t numPoints, const uint32_t *indVertex, uint64_t numVertex) override;
93 void drawUnitCone(IGraphics::EDetailLevel detailLevel) override;
94 void drawUnitCube() override;
95 void drawUnitCylinder(IGraphics::EDetailLevel detailLevel) override;
96 void drawUnitDisk(IGraphics::EDetailLevel detailLevel) override;
97 void drawUnitSphere(IGraphics::EDetailLevel detailLevel) override;
98 [[nodiscard]] bool hasDrawPolylineFilled() const override;
99 void setModeDraw(IGraphics::EDrawSolidType drawSolidType) override;
100 uint32_t blockTextWithModifiers(const std::string &text, const iv::ui::TextModifier &textModifier,
101 double *widthText, double *heightTextOut) override;
102 void drawBlockText(uint32_t idBlockText, double x, double y, double widthText, double heigthText,
103 unsigned char justify) override;
104 void endBlockText(uint32_t *idBlockText) override;
105 [[nodiscard]] bool hasBlockText() const override;
106 uint32_t beginBlock() override;
107 void drawBlock(uint32_t idBlock) override;
108 void endBlock(uint32_t idBlock) override;
109 [[nodiscard]] bool hasManagerBlocks() const override;
110 void removeBlock(uint32_t *idBlock) override;
111 void beginStencilBuffer() override;
112 void endStencilBuffer() override;
113 void offStencilBuffer() override;
114 void onStencilBuffer() override;
115 void getCoordTextCornerLeftDown(const std::string &text, double x, double y, double heightCharacter,
116 unsigned char justify, double *xCornerLeftDown, double *yCornerLeftDown,
117 double *widthTextOpt, double *heightTextOpt) override;
118 void getSizePixelToWorld(double sizePixelX, double sizePixelY, double *sizeWorldXOpt,
119 double *sizeWorldYOpt) override;
120 void getSizeText(const std::string &text, double heightCharacter, double *widthText, double *heightText) override;
121 void setBlend(bool isEnable) override;
122 void setTestDepth(bool isEnable) override;
123
126 ICanvasItem *newPathGooCanvas(ICanvasItem *parent, const std::string &pathData, ...);
127 static void deleteItemGooCanvas(ICanvasItem *canvasItem);
128 ICanvasItem *newRectGooCanvas(ICanvasItem *parent, double x, double y, double width, double height, ...);
129 void updateRectGooCanvas(ICanvasItem *parent, int32_t childNum, double width, double height);
130 ICanvasItem *newEllipseGooCanvas(ICanvasItem *parent, double x, double y, double radiusX, double radiusY, ...);
131 void updateEllipseGooCanvas(ICanvasItem *parent, int32_t childNum, double width, double height);
132 ICanvasItem *newTextGooCanvas(ICanvasItem *parent, const std::string &text, double x, double y, double width,
133 iv::ui::eAnchorPoint anchorPoint, ...);
134 static void raiseItemGooCanvas(ICanvasItem *canvasItem, ICanvasItem *aboveCanvasItem);
135 static void setItemTextPropertyGooCanvas(ICanvasItem *canvasItem, const std::string &propertyName,
136 const std::string &propertyValue);
137 void setChildTextPropertyGooCanvas(ICanvasItem *parent, int32_t childNum, const std::string &propertyName,
138 const std::string &propertyValue);
139 void setChildTextPropertyGooCanvas(ICanvasItem *parent, int32_t childNum, std::string_view propertyName,
140 double propertyValue);
141 void setItemSignalsGooCanvas(ICanvasItem *canvasItem, AbstractCanvasItem *abstractCanvasItem,
143 void setItemLineDashGooCanvas(ICanvasItem *canvasItem, uint16_t numDashes, float dashLength, float gapLength,
144 float startOffset, bool activate);
145 static void setItemPositionGooCanvas(ICanvasItem *canvasItem, double x, double y);
146 static void setItemStackIndexGooCanvas(ICanvasItem *parent, ICanvasItem *child, int32_t childIndex);
147 static void grabItemGooCanvas(ICanvasItem *canvasItem, bool grab);
148 void translateItemGooCanvas(ICanvasItem *canvasItem, double xDistance, double yDistance);
149
150private:
152};
153
154#endif /* LIBS_GTK_CGRAPHICSGOOCANVAS_HPP_ */
static constexpr uint64_t kPrvNumPoints
Definition CDrawShapes.cpp:16
Definition AbstractCanvasItem.hpp:24
Definition CGraphicsGooCanvas.hpp:17
void setNormal(double Nx, double Ny, double Nz) override
Definition CGraphicsGooCanvas.cpp:144
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 CGraphicsGooCanvas.cpp:331
static void setItemPositionGooCanvas(ICanvasItem *canvasItem, double x, double y)
Definition CGraphicsGooCanvas.cpp:1092
void translation(double tx, double ty, double tz) override
Definition CGraphicsGooCanvas.cpp:148
void drawRectFilled(double x1, double y1, double x2, double y2) override
Definition CGraphicsGooCanvas.cpp:214
void setColorARGB(iv::types::color argb) override
Definition CGraphicsGooCanvas.cpp:63
void onStencilBuffer() override
Definition CGraphicsGooCanvas.cpp:327
void endBlockText(uint32_t *idBlockText) override
Definition CGraphicsGooCanvas.cpp:284
void setItemLineDashGooCanvas(ICanvasItem *canvasItem, uint16_t numDashes, float dashLength, float gapLength, float startOffset, bool activate)
Definition CGraphicsGooCanvas.cpp:1050
CGraphicsGooCanvas & operator=(CGraphicsGooCanvas &&other)=delete
static void grabItemGooCanvas(ICanvasItem *canvasItem, bool grab)
Definition CGraphicsGooCanvas.cpp:1182
static void setItemStackIndexGooCanvas(ICanvasItem *parent, ICanvasItem *child, int32_t childIndex)
Definition CGraphicsGooCanvas.cpp:1115
void endBlock(uint32_t idBlock) override
Definition CGraphicsGooCanvas.cpp:302
void setAlpha(float alpha) override
Definition CGraphicsGooCanvas.cpp:71
void setChildTextPropertyGooCanvas(ICanvasItem *parent, int32_t childNum, const std::string &propertyName, const std::string &propertyValue)
Definition CGraphicsGooCanvas.cpp:937
void initDevice() override
Definition CGraphicsGooCanvas.cpp:26
void drawLineWithStyle(double x1, double y1, double z1, double x2, double y2, double z2, IGraphics::EDashedLineType dashedLineType) override
Definition CGraphicsGooCanvas.cpp:181
void pushMaterial() override
Definition CGraphicsGooCanvas.cpp:47
ICanvasItem * newPathGooCanvas(ICanvasItem *parent, const std::string &pathData,...)
Definition CGraphicsGooCanvas.cpp:596
void pushTransformation() override
Definition CGraphicsGooCanvas.cpp:100
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 CGraphicsGooCanvas.cpp:205
std::shared_ptr< iv::ui::graphics::Image > loadImage(const iv::ui::resources::ImageResource &resource) override
Definition CGraphicsGooCanvas.cpp:83
void drawTextWithDeviceHeight(const std::string &text, double x, double y, double height, unsigned char justify) override
Definition CGraphicsGooCanvas.cpp:228
void drawImageRawSize(double x, double y, const iv::ui::resources::ImageResource &resource) override
Definition CGraphicsGooCanvas.cpp:168
~CGraphicsGooCanvas() override=default
void beginStencilBuffer() override
Definition CGraphicsGooCanvas.cpp:315
static void raiseItemGooCanvas(ICanvasItem *canvasItem, ICanvasItem *aboveCanvasItem)
Definition CGraphicsGooCanvas.cpp:881
void resetAlpha() override
Definition CGraphicsGooCanvas.cpp:75
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 CGraphicsGooCanvas.cpp:238
void defineLight(IGraphics::ELight light, IGraphics::ELightType lightType, double rColor, double gColor, double bColor) override
Definition CGraphicsGooCanvas.cpp:108
ICanvasItem * rootItemGooCanvas()
Definition CGraphicsGooCanvas.cpp:531
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 CGraphicsGooCanvas.cpp:157
ICanvasItem * newTextGooCanvas(ICanvasItem *parent, const std::string &text, double x, double y, double width, iv::ui::eAnchorPoint anchorPoint,...)
Definition CGraphicsGooCanvas.cpp:832
uint32_t blockTextWithModifiers(const std::string &text, const iv::ui::TextModifier &textModifier, double *widthText, double *heightTextOut) override
Definition CGraphicsGooCanvas.cpp:273
CGraphicsGooCanvas(CGraphicsGooCanvas &&other)=delete
void translateItemGooCanvas(ICanvasItem *canvasItem, double xDistance, double yDistance)
Definition CGraphicsGooCanvas.cpp:1227
void viewport(int32_t x, int32_t y, uint64_t sizeX, uint64_t sizeY) override
Definition CGraphicsGooCanvas.cpp:117
void drawUnitCone(IGraphics::EDetailLevel detailLevel) override
Definition CGraphicsGooCanvas.cpp:244
void drawText(const std::string &text, double x, double y, double height, unsigned char justify) override
Definition CGraphicsGooCanvas.cpp:224
void drawUnitCube() override
Definition CGraphicsGooCanvas.cpp:248
GtkWidget * m_gooCanvasWidgetRef
Definition CGraphicsGooCanvas.hpp:151
void drawPolylineFilled(const float *vertex, uint64_t numVertex) override
Definition CGraphicsGooCanvas.cpp:195
void drawUnitCylinder(IGraphics::EDetailLevel detailLevel) override
Definition CGraphicsGooCanvas.cpp:252
void drawRect(double x1, double y1, double x2, double y2) override
Definition CGraphicsGooCanvas.cpp:210
CGraphicsGooCanvas & operator=(const CGraphicsGooCanvas &other)=delete
CGraphicsGooCanvas(const CGraphicsGooCanvas &other)=delete
void clear() override
Definition CGraphicsGooCanvas.cpp:34
void setModeDraw(IGraphics::EDrawSolidType drawSolidType) override
Definition CGraphicsGooCanvas.cpp:269
void getSizeText(const std::string &text, double heightCharacter, double *widthText, double *heightText) override
Definition CGraphicsGooCanvas.cpp:343
void drawImageWithColor(double x, double y, iv::types::color colorRGB, double width, double height, const iv::ui::resources::ImageResource &resourceName) override
Definition CGraphicsGooCanvas.cpp:172
void rotation(double angleDegrees, double Ux, double Uy, double Uz) override
Definition CGraphicsGooCanvas.cpp:136
void appendMatrix(const CMatrix4x4 &matrix) override
Definition CGraphicsGooCanvas.cpp:88
void setModelMatrix(IGraphics::EMatrixModel matrixModel) override
Definition CGraphicsGooCanvas.cpp:92
void drawContours(const std::vector< std::shared_ptr< std::vector< iv::math::geometry::Point3d > > > &contours) override
Definition CGraphicsGooCanvas.cpp:152
bool hasDrawPolylineFilled() const override
Definition CGraphicsGooCanvas.cpp:264
void definePerspective(double fovY, double ratioXForY, double zNear, double zFar) override
Definition CGraphicsGooCanvas.cpp:121
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 CGraphicsGooCanvas.cpp:218
void positionLight(IGraphics::ELight light, double x, double y, double z) override
Definition CGraphicsGooCanvas.cpp:113
bool isDefinedMaterial(const std::string &materialName) override
Definition CGraphicsGooCanvas.cpp:42
void drawBlockText(uint32_t idBlockText, double x, double y, double widthText, double heigthText, unsigned char justify) override
Definition CGraphicsGooCanvas.cpp:279
void updateRectGooCanvas(ICanvasItem *parent, int32_t childNum, double width, double height)
Definition CGraphicsGooCanvas.cpp:711
void drawArc(double radiusMark, iv::types::radian angleInitial, iv::types::radian angleFinal, float thickness, uint64_t kPrvNumPoints) override
Definition CGraphicsGooCanvas.cpp:186
void scale(double sx, double sy, double sz) override
Definition CGraphicsGooCanvas.cpp:140
void popMaterial() override
Definition CGraphicsGooCanvas.cpp:55
void setOnTexture(bool enableTexture) override
Definition CGraphicsGooCanvas.cpp:79
void drawPolyline(const float *vertex, uint64_t numVertex) override
Definition CGraphicsGooCanvas.cpp:191
ICanvasItem * newRectGooCanvas(ICanvasItem *parent, double x, double y, double width, double height,...)
Definition CGraphicsGooCanvas.cpp:664
void drawUnitSphere(IGraphics::EDetailLevel detailLevel) override
Definition CGraphicsGooCanvas.cpp:260
bool hasManagerBlocks() const override
Definition CGraphicsGooCanvas.cpp:306
void setMaterial(const std::string &materialName) override
Definition CGraphicsGooCanvas.cpp:51
void drawUnitDisk(IGraphics::EDetailLevel detailLevel) override
Definition CGraphicsGooCanvas.cpp:256
uint32_t beginBlock() override
Definition CGraphicsGooCanvas.cpp:293
CGraphicsGooCanvas()
Definition CGraphicsGooCanvas.cpp:15
void updateEllipseGooCanvas(ICanvasItem *parent, int32_t childNum, double width, double height)
Definition CGraphicsGooCanvas.cpp:795
void setBlend(bool isEnable) override
Definition CGraphicsGooCanvas.cpp:348
void setItemSignalsGooCanvas(ICanvasItem *canvasItem, AbstractCanvasItem *abstractCanvasItem, iv::logic::eLogicsElementType lEType)
Definition CGraphicsGooCanvas.cpp:1003
void drawTriangle(double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3) override
Definition CGraphicsGooCanvas.cpp:233
void offStencilBuffer() override
Definition CGraphicsGooCanvas.cpp:323
bool hasBlockText() const override
Definition CGraphicsGooCanvas.cpp:288
void setTestDepth(bool isEnable) override
Definition CGraphicsGooCanvas.cpp:352
static void deleteItemGooCanvas(ICanvasItem *canvasItem)
Definition CGraphicsGooCanvas.cpp:638
void defineMaterial(const iv::ui::graphics::Material *material, const bool &isChanged) override
Definition CGraphicsGooCanvas.cpp:38
void positionCamera(double eyeX, double eyeY, double eyeZ, double pointReferenceX, double pointReferenceY, double pointReferenceZ, double upX, double upY, double upZ) override
Definition CGraphicsGooCanvas.cpp:130
void setColorRGB(iv::types::color rgb) override
Definition CGraphicsGooCanvas.cpp:59
void drawPolylinesWithColors(const std::shared_ptr< std::vector< iv::math::geometry::Point2d > > &points, const std::vector< iv::math::geometry::Point3d > &rgb) override
Definition CGraphicsGooCanvas.cpp:199
void drawLine(double x1, double y1, double z1, double x2, double y2, double z2) override
Definition CGraphicsGooCanvas.cpp:177
ICanvasItem * newEllipseGooCanvas(ICanvasItem *parent, double x, double y, double radiusX, double radiusY,...)
Definition CGraphicsGooCanvas.cpp:748
void setLineWidth(float width) override
Definition CGraphicsGooCanvas.cpp:67
void popTransformation() override
Definition CGraphicsGooCanvas.cpp:96
void endStencilBuffer() override
Definition CGraphicsGooCanvas.cpp:319
ICanvasItem * newGroupItemGooCanvas(ICanvasItem *parent,...)
Definition CGraphicsGooCanvas.cpp:553
void getSizePixelToWorld(double sizePixelX, double sizePixelY, double *sizeWorldXOpt, double *sizeWorldYOpt) override
Definition CGraphicsGooCanvas.cpp:338
void removeBlock(uint32_t *idBlock) override
Definition CGraphicsGooCanvas.cpp:311
void drawImage(double x, double y, double width, double height, const iv::ui::resources::ImageResource &resource) override
Definition CGraphicsGooCanvas.cpp:163
void resetTransformation() override
Definition CGraphicsGooCanvas.cpp:104
static void setItemTextPropertyGooCanvas(ICanvasItem *canvasItem, const std::string &propertyName, const std::string &propertyValue)
Definition CGraphicsGooCanvas.cpp:912
void initLight() override
Definition CGraphicsGooCanvas.cpp:30
void drawBlock(uint32_t idBlock) override
Definition CGraphicsGooCanvas.cpp:298
void setClearColor() override
Definition CGraphicsGooCanvas.cpp:1258
void setBackGroundColor(iv::types::color rgb) override
Definition CGraphicsGooCanvas.cpp:1254
void defineOrthogonal(double xOrg, double yOrg, double zOrg, double xMin, double yMin, double zMin, double xMax, double yMax, double zMax) override
Definition CGraphicsGooCanvas.cpp:125
Definition CMatrix4x4.hpp:23
Definition ICanvasItem.hpp:5
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
eLogicsElementType
Definition enums.hpp:8
double radian
Definition types.hpp:19
uint32_t color
Definition types.hpp:12
eAnchorPoint
Definition enums.hpp:8
Definition modifiers.hpp:15