1#ifndef LIBS_GRAPHICS_IGRAPHICS_HPP_
2#define LIBS_GRAPHICS_IGRAPHICS_HPP_
10#include <bits/stdint-uintn.h>
98 virtual void viewport(int32_t x, int32_t y, uint64_t sizeX, uint64_t sizeY) = 0;
101 virtual void defineOrthogonal(
double xOrg,
double yOrg,
double zOrg,
double xMin,
double yMin,
double zMin,
102 double xMax,
double yMax,
double zMax) = 0;
103 virtual void positionCamera(
double eyeX,
double eyeY,
double eyeZ,
double pointReferenceX,
double pointReferenceY,
104 double pointReferenceZ,
double upX,
double upY,
double upZ) = 0;
106 virtual void rotation(
double angleDegrees,
double Ux,
double Uy,
double Uz) = 0;
107 virtual void scale(
double sx,
double sy,
double sz) = 0;
108 virtual void setNormal(
double Nx,
double Ny,
double Nz) = 0;
112 drawContours(
const std::vector<std::shared_ptr<std::vector<iv::math::geometry::Point3d>>> &contours) = 0;
113 virtual void drawFanTriangles(
const float *points,
const float *normals,
const float *textureOpt,
114 const float *rgbaOpt, uint64_t numPoints,
const uint32_t *indVertex,
115 uint64_t numVertex) = 0;
116 virtual void drawImage(
double x,
double y,
double width,
double height,
121 virtual void drawLine(
double x1,
double y1,
double z1,
double x2,
double y2,
double z2) = 0;
122 virtual void drawLineWithStyle(
double x1,
double y1,
double z1,
double x2,
double y2,
double z2,
126 virtual void drawPolyline(
const float *vertex, uint64_t numVertex) = 0;
129 const std::vector<iv::math::geometry::Point3d> &rgb) = 0;
130 virtual void drawQuads(
double x1,
double y1,
double z1,
double x2,
double y2,
double z2,
double x3,
double y3,
131 double z3,
double x4,
double y4,
double z4) = 0;
132 virtual void drawRect(
double x1,
double y1,
double x2,
double y2) = 0;
135 const float *rgbaOpt, uint64_t numPoints,
const uint32_t *indVertex,
136 uint64_t numVertex) = 0;
138 virtual void drawText(
const std::string &text,
double x,
double y,
double height,
unsigned char justify) = 0;
140 unsigned char justify) = 0;
142 virtual void drawTriangle(
double x1,
double y1,
double z1,
double x2,
double y2,
double z2,
double x3,
double y3,
144 virtual void drawTriangles(
const float *points,
const float *normals,
const float *textureOpt,
const float *rgbaOpt,
145 uint64_t numPoints,
const uint32_t *indVertex, uint64_t numVertex) = 0;
157 double *widthText,
double *heightTextOut) = 0;
158 virtual void drawBlockText(uint32_t idBlockText,
double x,
double y,
double widthText,
double heightText,
159 unsigned char justify) = 0;
178 unsigned char justify,
double *xCornerLeftDown,
double *yCornerLeftDown,
179 double *widthTextOpt,
double *heightTextOpt) = 0;
181 double *sizeWorldYOpt) = 0;
182 virtual void getSizeText(
const std::string &text,
double heightCharacter,
double *widthText,
183 double *heightText) = 0;
static constexpr uint64_t kPrvNumPoints
Definition CDrawShapes.cpp:16
Definition CMatrix4x4.hpp:23
Definition IGraphics.hpp:20
virtual void onStencilBuffer()=0
virtual void initLight()=0
virtual void drawUnitCylinder(IGraphics::EDetailLevel detailLevel)=0
virtual void setModelMatrix(IGraphics::EMatrixModel matrixModel)=0
virtual void drawArc(double radiusMark, iv::types::radian angleInitial, iv::types::radian angleFinal, float thickness, uint64_t kPrvNumPoints)=0
virtual void getSizePixelToWorld(double sizePixelX, double sizePixelY, double *sizeWorldXOpt, double *sizeWorldYOpt)=0
virtual void drawBlockText(uint32_t idBlockText, double x, double y, double widthText, double heightText, unsigned char justify)=0
virtual void popTransformation()=0
virtual void definePerspective(double fovy, double ratioXForY, double zNear, double zFar)=0
virtual void pushTransformation()=0
virtual bool isDefinedMaterial(const std::string &materialName)=0
virtual void getSizeText(const std::string &text, double heightCharacter, double *widthText, double *heightText)=0
virtual void setColorRGB(iv::types::color rgb)=0
virtual void drawPolylineFilled(const float *vertex, uint64_t numVertex)=0
virtual void setMaterial(const std::string &layerName)=0
virtual void setTestDepth(bool isEnable)=0
virtual void drawImageRawSize(double x, double y, const iv::ui::resources::ImageResource &resource)=0
virtual void removeBlock(uint32_t *idBlock)=0
virtual void drawUnitCube()=0
virtual std::shared_ptr< iv::ui::graphics::Image > loadImage(const iv::ui::resources::ImageResource &resource)=0
virtual void viewport(int32_t x, int32_t y, uint64_t sizeX, uint64_t sizeY)=0
virtual void endBlock(uint32_t idBlock)=0
virtual void drawContours(const std::vector< std::shared_ptr< std::vector< iv::math::geometry::Point3d > > > &contours)=0
virtual uint32_t beginBlock()=0
virtual void endBlockText(uint32_t *idBlockText)=0
EDetailLevel
Definition IGraphics.hpp:29
virtual void drawUnitSphere(IGraphics::EDetailLevel detailLevel)=0
ELight
Definition IGraphics.hpp:44
EDashedLineType
Definition IGraphics.hpp:23
virtual void setAlpha(float alpha)=0
virtual void setOnTexture(bool enableTexture)=0
virtual void setLineWidth(float width)=0
virtual void drawRect(double x1, double y1, double x2, double y2)=0
virtual void appendMatrix(const CMatrix4x4 &matrix)=0
virtual 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)=0
virtual void popMaterial()=0
virtual void scale(double sx, double sy, double sz)=0
virtual void translation(double tx, double ty, double tz)=0
virtual void drawTextWithDeviceHeight(const std::string &text, double x, double y, double height, unsigned char justify)=0
virtual void defineOrthogonal(double xOrg, double yOrg, double zOrg, double xMin, double yMin, double zMin, double xMax, double yMax, double zMax)=0
virtual void setModeDraw(IGraphics::EDrawSolidType drawSolidType)=0
virtual void drawTriangles(const float *points, const float *normals, const float *textureOpt, const float *rgbaOpt, uint64_t numPoints, const uint32_t *indVertex, uint64_t numVertex)=0
virtual void drawImage(double x, double y, double width, double height, const iv::ui::resources::ImageResource &resource)=0
EMatrixModel
Definition IGraphics.hpp:57
virtual void drawStripTriangles(const float *points, const float *normals, const float *textureOpt, const float *rgbaOpt, uint64_t numPoints, const uint32_t *indVertex, uint64_t numVertex)=0
virtual void drawImageWithColor(double x, double y, iv::types::color colorRgb, double width, double height, const iv::ui::resources::ImageResource &resource)=0
ELightType
Definition IGraphics.hpp:50
static constexpr uint32_t BlockNull
Definition IGraphics.hpp:62
virtual bool hasBlockText() const =0
virtual void beginStencilBuffer()=0
virtual void resetTransformation()=0
virtual void setNormal(double Nx, double Ny, double Nz)=0
virtual bool hasDrawPolylineFilled() const =0
EDrawSolidType
Definition IGraphics.hpp:37
virtual void drawText(const std::string &text, double x, double y, double height, unsigned char justify)=0
virtual void pushMaterial()=0
virtual void drawPolyline(const float *vertex, uint64_t numVertex)=0
virtual ~IGraphics()=default
virtual void drawBlock(uint32_t idBlock)=0
virtual void drawUnitCone(IGraphics::EDetailLevel detailLevel)=0
virtual void setBackGroundColor(iv::types::color rgb)=0
virtual void drawFanTriangles(const float *points, const float *normals, const float *textureOpt, const float *rgbaOpt, uint64_t numPoints, const uint32_t *indVertex, uint64_t numVertex)=0
virtual uint32_t blockTextWithModifiers(const std::string &text, const iv::ui::TextModifier &textModifier, double *widthText, double *heightTextOut)=0
virtual void endStencilBuffer()=0
virtual void offStencilBuffer()=0
virtual void drawTriangle(double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3)=0
virtual void setClearColor()=0
virtual void defineLight(IGraphics::ELight light, IGraphics::ELightType lightType, double rColor, double gColor, double bColor)=0
virtual void drawPolylinesWithColors(const std::shared_ptr< std::vector< iv::math::geometry::Point2d > > &points, const std::vector< iv::math::geometry::Point3d > &rgb)=0
virtual void setBlend(bool isEnable)=0
virtual void drawLineWithStyle(double x1, double y1, double z1, double x2, double y2, double z2, IGraphics::EDashedLineType dashedLineType)=0
virtual void drawLine(double x1, double y1, double z1, double x2, double y2, double z2)=0
virtual bool hasManagerBlocks() const =0
virtual void positionLight(IGraphics::ELight light, double x, double y, double z)=0
virtual void resetAlpha()=0
virtual void defineMaterial(const iv::ui::graphics::Material *material, const bool &isChanged)=0
virtual void setColorARGB(iv::types::color argb)=0
virtual void initDevice()=0
virtual void drawRectFilled(double x1, double y1, double x2, double y2)=0
virtual void getCoordTextCornerLeftDown(const std::string &text, double x, double y, double heightCharacter, unsigned char justify, double *xCornerLeftDown, double *yCornerLeftDown, double *widthTextOpt, double *heightTextOpt)=0
virtual void drawUnitDisk(IGraphics::EDetailLevel detailLevel)=0
virtual void rotation(double angleDegrees, double Ux, double Uy, double Uz)=0
virtual void positionCamera(double eyeX, double eyeY, double eyeZ, double pointReferenceX, double pointReferenceY, double pointReferenceZ, double upX, double upY, double upZ)=0
Definition IImageManager.hpp:8
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