1#ifndef LIBS_OPENGL_CGRAPHICSGL_HPP_
2#define LIBS_OPENGL_CGRAPHICSGL_HPP_
12#include <bits/stdint-uintn.h>
25 void initImage(std::shared_ptr<IImageManager> &&imageManager);
37 void clear()
override;
42 void setMaterial(
const std::string &materialName)
override;
62 double bColor)
override;
65 void viewport(int32_t x, int32_t y, uint64_t sizeX, uint64_t sizeY)
override;
67 void definePerspective(
double fovy,
double ratioXForY,
double zNear,
double zFar)
override;
68 void defineOrthogonal(
double xOrg,
double yOrg,
double zOrg,
double xMin,
double yMin,
double zMin,
double xMax,
69 double yMax,
double zMax)
override;
70 void positionCamera(
double eyeX,
double eyeY,
double eyeZ,
double pointReferenceX,
double pointReferenceY,
71 double pointReferenceZ,
double upX,
double upY,
double upZ)
override;
73 void rotation(
double angleDegrees,
double Ux,
double Uy,
double Uz)
override;
74 void scale(
double sx,
double sy,
double sz)
override;
75 void setNormal(
double Nx,
double Ny,
double Nz)
override;
76 void translation(
double tx,
double ty,
double tz)
override;
78 void drawContours(
const std::vector<std::shared_ptr<std::vector<iv::math::geometry::Point3d>>> &contours)
override;
79 void drawFanTriangles(
const float *points,
const float *normals,
const float *textureOpt,
const float *rgbaOpt,
80 uint64_t numPoints,
const uint32_t *indVertex, uint64_t numVertex)
override;
81 void drawImage(
double x,
double y,
double width,
double height,
86 void drawLine(
double x1,
double y1,
double z1,
double x2,
double y2,
double z2)
override;
87 void drawLineWithStyle(
double x1,
double y1,
double z1,
double x2,
double y2,
double z2,
91 void drawPolyline(
const float *vertex, uint64_t numVertex)
override;
94 const std::vector<iv::math::geometry::Point3d> &rgb)
override;
95 void drawQuads(
double x1,
double y1,
double z1,
double x2,
double y2,
double z2,
double x3,
double y3,
double z3,
96 double x4,
double y4,
double z4)
override;
97 void drawRect(
double x1,
double y1,
double x2,
double y2)
override;
98 void drawRectFilled(
double x1,
double y1,
double x2,
double y2)
override;
99 void drawStripTriangles(
const float *points,
const float *normals,
const float *textureOpt,
const float *rgbaOpt,
100 uint64_t numPoints,
const uint32_t *indVertex, uint64_t numVertex)
override;
101 void drawText(
const std::string &text,
double x,
double y,
double height,
unsigned char justify)
override;
103 unsigned char justify)
override;
104 void drawTriangle(
double x1,
double y1,
double z1,
double x2,
double y2,
double z2,
double x3,
double y3,
106 void drawTriangles(
const float *points,
const float *normals,
const float *textureOpt,
const float *rgbaOpt,
107 uint64_t numPoints,
const uint32_t *indVertex, uint64_t numVertex)
override;
117 double *widthText,
double *heightTextOut)
override;
118 void drawBlockText(uint32_t idBlockText,
double x,
double y,
double widthText,
double heightText,
119 unsigned char justify)
override;
124 void drawBlock(uint32_t idBlock)
override;
125 void endBlock(uint32_t idBlock)
override;
135 unsigned char justify,
double *xCornerLeftDown,
double *yCornerLeftDown,
136 double *widthTextOpt,
double *heightTextOpt)
override;
138 double *sizeWorldYOpt)
override;
139 void getSizeText(
const std::string &text,
double heightCharacter,
double *widthText,
double *heightText)
override;
141 void setBlend(
bool isEnable)
override;
148 double heightText, uint32_t idB, uint64_t numR)
156 m_numRef =
static_cast<uint32_t
>(numR);
177 SPrvColor(
const std::string ¤tLayer,
bool isColorByLayer, uint32_t currentColorARGB)
238 std::optional<double> width, std::optional<double> height,
static constexpr uint64_t kPrvNumPoints
Definition CDrawShapes.cpp:16
Definition CFontManagerCairo.hpp:12
Definition CGraphicsGL.hpp:19
void setBlend(bool isEnable) override
Definition CGraphicsGL.cpp:1640
void setModeDraw(IGraphics::EDrawSolidType drawSolidType) override
Definition CGraphicsGL.cpp:1322
void drawBlock(uint32_t idBlock) override
Definition CGraphicsGL.cpp:1490
void positionCamera(double eyeX, double eyeY, double eyeZ, double pointReferenceX, double pointReferenceY, double pointReferenceZ, double upX, double upY, double upZ) override
Definition CGraphicsGL.cpp:634
void drawPolyline(const float *vertex, uint64_t numVertex) override
Definition CGraphicsGL.cpp:897
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 CGraphicsGL.cpp:1134
void initDevice() override
Definition CGraphicsGL.cpp:152
bool hasDrawPolylineFilled() const override
Definition CGraphicsGL.cpp:1317
~CGraphicsGL() override
Definition CGraphicsGL.cpp:95
float m_rBackground
Definition CGraphicsGL.hpp:263
void drawArc(double radiusMark, iv::types::radian angleInitial, iv::types::radian angleFinal, float thickness, uint64_t kPrvNumPoints) override
Definition CGraphicsGL.cpp:873
void endBlockText(uint32_t *idBlockText) override
Definition CGraphicsGL.cpp:1456
void appendMatrix(const CMatrix4x4 &matrix) override
Definition CGraphicsGL.cpp:484
bool m_isBeginStencil
Definition CGraphicsGL.hpp:254
uint32_t blockTextWithModifiers(const std::string &text, const iv::ui::TextModifier &textModifier, double *widthText, double *heightTextOut) override
Definition CGraphicsGL.cpp:1366
void setColorRGB(iv::types::color rgb) override
Definition CGraphicsGL.cpp:420
void drawUnitSphere(IGraphics::EDetailLevel detailLevel) override
Definition CGraphicsGL.cpp:1308
bool isDefinedMaterial(const std::string &materialName) override
Definition CGraphicsGL.cpp:313
void scale(double sx, double sy, double sz) override
Definition CGraphicsGL.cpp:650
void endStencilBuffer() override
Definition CGraphicsGL.cpp:1537
std::vector< std::shared_ptr< SPrvImageLoaded > > m_imagesLoaded
Definition CGraphicsGL.hpp:244
void popMaterial() override
Definition CGraphicsGL.cpp:410
std::shared_ptr< iv::ui::graphics::Image > loadImage(const iv::ui::resources::ImageResource &resource) override
Definition CGraphicsGL.cpp:478
void popTransformation() override
Definition CGraphicsGL.cpp:511
void offStencilBuffer() override
Definition CGraphicsGL.cpp:1554
void drawPolylineFilled(const float *vertex, uint64_t numVertex) override
Definition CGraphicsGL.cpp:911
void prvDrawImageWithColor(double xCornerLeftDown, double yCornerLeftDown, iv::types::color colorRGB, std::optional< double > width, std::optional< double > height, const iv::ui::resources::ImageResource &resource)
Definition CGraphicsGL.cpp:815
void drawUnitCube() override
Definition CGraphicsGL.cpp:1280
CFontManagerCairo * m_fontManager
Definition CGraphicsGL.hpp:257
void definePerspective(double fovy, double ratioXForY, double zNear, double zFar) override
Definition CGraphicsGL.cpp:612
void drawRectFilled(double x1, double y1, double x2, double y2) override
Definition CGraphicsGL.cpp:966
void setClearColor() override
Definition CGraphicsGL.cpp:1679
void removeBlocksRegisters()
Definition CGraphicsGL.cpp:120
void endBlock(uint32_t idBlock) override
Definition CGraphicsGL.cpp:1497
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 CGraphicsGL.cpp:1580
uint32_t m_idBlockCurrent
Definition CGraphicsGL.hpp:268
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 CGraphicsGL.cpp:741
void setBackGroundColor(iv::types::color rgb) override
Definition CGraphicsGL.cpp:1664
void setTestDepth(bool isEnable) override
Definition CGraphicsGL.cpp:1652
bool prvExistImage(const iv::ui::resources::ImageResource &resource, uint64_t *ind) const
Definition CGraphicsGL.cpp:188
std::shared_ptr< SPrvColor > m_currentColor
Definition CGraphicsGL.hpp:246
void drawBlockText(uint32_t idBlockText, double x, double y, double widthText, double heightText, unsigned char justify) override
Definition CGraphicsGL.cpp:1412
bool hasBlockText() const override
Definition CGraphicsGL.cpp:1475
void defineMaterial(const iv::ui::graphics::Material *material, const bool &isChanged) override
Definition CGraphicsGL.cpp:239
void drawTriangle(double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3) override
Definition CGraphicsGL.cpp:1122
void defineOrthogonal(double xOrg, double yOrg, double zOrg, double xMin, double yMin, double zMin, double xMax, double yMax, double zMax) override
Definition CGraphicsGL.cpp:621
void rotation(double angleDegrees, double Ux, double Uy, double Uz) override
Definition CGraphicsGL.cpp:645
void initLight() override
Definition CGraphicsGL.cpp:173
void drawLine(double x1, double y1, double z1, double x2, double y2, double z2) override
Definition CGraphicsGL.cpp:856
void drawImageRawSize(double x, double y, const iv::ui::resources::ImageResource &resource) override
Definition CGraphicsGL.cpp:845
void drawImage(double x, double y, double width, double height, const iv::ui::resources::ImageResource &resource) override
Definition CGraphicsGL.cpp:839
static void setModeTransparency()
Definition CGraphicsGL.cpp:138
float m_alphaCurrent
Definition CGraphicsGL.hpp:249
bool hasManagerBlocks() const override
Definition CGraphicsGL.cpp:1506
void drawUnitDisk(IGraphics::EDetailLevel detailLevel) override
Definition CGraphicsGL.cpp:1299
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 CGraphicsGL.cpp:937
static void setModeOpaque()
Definition CGraphicsGL.cpp:145
bool m_activeLight0
Definition CGraphicsGL.hpp:252
std::shared_ptr< IImageManager > m_imageManager
Definition CGraphicsGL.hpp:258
void clear() override
Definition CGraphicsGL.cpp:182
float m_aBackground
Definition CGraphicsGL.hpp:266
bool m_hasAlpha
Definition CGraphicsGL.hpp:248
void pushTransformation() override
Definition CGraphicsGL.cpp:516
bool m_isCameraPositioned
Definition CGraphicsGL.hpp:251
void setModelMatrix(IGraphics::EMatrixModel matrixModel) override
Definition CGraphicsGL.cpp:493
void drawRect(double x1, double y1, double x2, double y2) override
Definition CGraphicsGL.cpp:954
void positionLight(IGraphics::ELight light, double x, double y, double z) override
Definition CGraphicsGL.cpp:585
void setAlpha(float alpha) override
Definition CGraphicsGL.cpp:454
uint32_t m_idTextureText
Definition CGraphicsGL.hpp:274
std::vector< std::shared_ptr< SPrvLayer > > m_layers
Definition CGraphicsGL.hpp:242
float m_gBackground
Definition CGraphicsGL.hpp:265
void drawLineWithStyle(double x1, double y1, double z1, double x2, double y2, double z2, IGraphics::EDashedLineType dashedLineType) override
Definition CGraphicsGL.cpp:864
void setLineWidth(float width) override
Definition CGraphicsGL.cpp:449
void beginStencilBuffer() override
Definition CGraphicsGL.cpp:1523
void drawText(const std::string &text, double x, double y, double height, unsigned char justify) override
Definition CGraphicsGL.cpp:1076
void setOnTexture(bool enableTexture) override
Definition CGraphicsGL.cpp:466
void resetTransformation() override
Definition CGraphicsGL.cpp:521
std::vector< std::shared_ptr< SPrvTextBlockGL > > m_textLoaded
Definition CGraphicsGL.hpp:245
GLUtesselator * m_tesselator
Definition CGraphicsGL.hpp:260
void viewport(int32_t x, int32_t y, uint64_t sizeX, uint64_t sizeY) override
Definition CGraphicsGL.cpp:607
void setMaterial(const std::string &materialName) override
Definition CGraphicsGL.cpp:365
void drawUnitCylinder(IGraphics::EDetailLevel detailLevel) override
Definition CGraphicsGL.cpp:1290
void setNormal(double Nx, double Ny, double Nz) override
Definition CGraphicsGL.cpp:655
void resetAlpha() override
Definition CGraphicsGL.cpp:460
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 CGraphicsGL.cpp:978
CGraphicsGL()
Definition CGraphicsGL.cpp:57
float m_bBackground
Definition CGraphicsGL.hpp:264
void initImage(std::shared_ptr< IImageManager > &&imageManager)
Definition CGraphicsGL.cpp:166
void drawImageWithColor(double x, double y, iv::types::color colorRGB, double width, double height, const iv::ui::resources::ImageResource &resource) override
Definition CGraphicsGL.cpp:850
void getSizeText(const std::string &text, double heightCharacter, double *widthText, double *heightText) override
Definition CGraphicsGL.cpp:1635
std::map< iv::types::textureId, TextureInfo > m_usingTextures
Definition CGraphicsGL.hpp:272
void getSizePixelToWorld(double sizePixelX, double sizePixelY, double *sizeWorldXOpt, double *sizeWorldYOpt) override
Definition CGraphicsGL.cpp:1607
void onStencilBuffer() override
Definition CGraphicsGL.cpp:1570
void drawContours(const std::vector< std::shared_ptr< std::vector< iv::math::geometry::Point3d > > > &contours) override
Definition CGraphicsGL.cpp:690
void pushMaterial() override
Definition CGraphicsGL.cpp:318
void drawUnitCone(IGraphics::EDetailLevel detailLevel) override
Definition CGraphicsGL.cpp:1257
void drawTextWithDeviceHeight(const std::string &text, double x, double y, double height, unsigned char justify) override
Definition CGraphicsGL.cpp:1103
GLUquadricObj * m_quadruple
Definition CGraphicsGL.hpp:261
uint32_t beginBlock() override
Definition CGraphicsGL.cpp:1480
void translation(double tx, double ty, double tz) override
Definition CGraphicsGL.cpp:685
void setColorARGB(iv::types::color argb) override
Definition CGraphicsGL.cpp:435
void removeBlock(uint32_t *idBlock) override
Definition CGraphicsGL.cpp:1511
uint16_t m_indActiveStencil
Definition CGraphicsGL.hpp:255
void drawPolylinesWithColors(const std::shared_ptr< std::vector< iv::math::geometry::Point2d > > &points, const std::vector< iv::math::geometry::Point3d > &rgb) override
Definition CGraphicsGL.cpp:916
std::map< TextureInfo, std::list< iv::types::textureId > > m_unusedCreatedTexturesList
Definition CGraphicsGL.hpp:271
void defineLight(IGraphics::ELight light, IGraphics::ELightType lightType, double rColor, double gColor, double bColor) override
Definition CGraphicsGL.cpp:552
std::vector< std::shared_ptr< SPrvColor > > m_stackLayers
Definition CGraphicsGL.hpp:243
Definition CMatrix4x4.hpp:23
static void destroyTexture(uint32_t *idTexture)
Definition CTextureGL.cpp:131
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
double height
Definition types.hpp:14
double width
Definition types.hpp:23
uint32_t color
Definition types.hpp:12
eTextWeight
Definition enums.hpp:21
Definition CGraphicsGL.hpp:176
iv::types::color m_currentColorARGB
Definition CGraphicsGL.hpp:195
SPrvColor(const std::string ¤tLayer, bool isColorByLayer, uint32_t currentColorARGB)
Definition CGraphicsGL.hpp:177
SPrvColor(const SPrvColor &color)
Definition CGraphicsGL.hpp:184
bool m_isColorByLayer
Definition CGraphicsGL.hpp:194
std::string m_currentLayer
Definition CGraphicsGL.hpp:193
Definition CGraphicsGL.hpp:199
std::string m_nameResource
Definition CGraphicsGL.hpp:211
SPrvImageLoaded(const std::string &nameResource, uint32_t idTexture)
Definition CGraphicsGL.hpp:200
uint32_t m_textureId
Definition CGraphicsGL.hpp:212
~SPrvImageLoaded()
Definition CGraphicsGL.hpp:206
Definition CGraphicsGL.hpp:217
~SPrvLayer()
Definition CGraphicsGL.cpp:49
uint32_t m_textureId
Definition CGraphicsGL.hpp:221
iv::ui::graphics::Material * m_material
Definition CGraphicsGL.hpp:222
SPrvLayer(iv::ui::graphics::Material **material_param, uint32_t idTexture_param)
Definition CGraphicsGL.cpp:43
Definition CGraphicsGL.hpp:146
iv::ui::eTextWeight m_weightFont
Definition CGraphicsGL.hpp:166
double m_heightFont
Definition CGraphicsGL.hpp:165
double m_heightText
Definition CGraphicsGL.hpp:169
std::string m_text
Definition CGraphicsGL.hpp:164
uint32_t m_numRef
Definition CGraphicsGL.hpp:171
double m_widthText
Definition CGraphicsGL.hpp:168
~SPrvTextBlockGL()
Definition CGraphicsGL.hpp:159
SPrvTextBlockGL(std::string text, double heightFont, iv::ui::eTextWeight weightFont, double widthText, double heightText, uint32_t idB, uint64_t numR)
Definition CGraphicsGL.hpp:147
uint32_t m_idBlock
Definition CGraphicsGL.hpp:170
Definition CGraphicsGL.hpp:226
bool operator<(const TextureInfo &other) const
Definition CGraphicsGL.hpp:230
iv::types::width width
Definition CGraphicsGL.hpp:227
iv::types::height height
Definition CGraphicsGL.hpp:228
Definition modifiers.hpp:15