1#ifndef LIBS_GTK_CGRAPHICSGOOCANVAS_HPP_
2#define LIBS_GTK_CGRAPHICSGOOCANVAS_HPP_
9#include <bits/stdint-uintn.h>
32 void clear()
override;
36 void setMaterial(
const std::string &materialName)
override;
51 double bColor)
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,
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,
76 void drawPolyline(
const float *vertex, uint64_t numVertex)
override;
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;
88 unsigned char justify)
override;
89 void drawTriangle(
double x1,
double y1,
double z1,
double x2,
double y2,
double z2,
double x3,
double y3,
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;
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;
107 void drawBlock(uint32_t idBlock)
override;
108 void endBlock(uint32_t idBlock)
override;
116 unsigned char justify,
double *xCornerLeftDown,
double *yCornerLeftDown,
117 double *widthTextOpt,
double *heightTextOpt)
override;
119 double *sizeWorldYOpt)
override;
120 void getSizeText(
const std::string &text,
double heightCharacter,
double *widthText,
double *heightText)
override;
121 void setBlend(
bool isEnable)
override;
136 const std::string &propertyValue);
138 const std::string &propertyValue);
140 double propertyValue);
144 float startOffset,
bool activate);
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