\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)
CGAL 5.0.2 - Three
CGAL::Three::Edge_container Struct Reference

#include <CGAL/Three/Edge_container.h>

Inherits from

CGAL::Three::Primitive_container.

Definition

The Edge_container struct wraps the OpenGL data for drawing lines.

Public Types

enum  vbosName {
  Vertices = 0, Indices, Normals, Colors,
  Radius, Centers, Texture_map, NbOfVbos
}
 The vbosName enum. More...
 

Public Member Functions

 Edge_container (int program, bool indexed)
 The constructor. More...
 
void initGL (Viewer_interface *viewer) Q_DECL_OVERRIDE
 initGL creates the Vbos and Vaos of this Edge_container. More...
 
void draw (CGAL::Three::Viewer_interface *viewer, bool is_color_uniform) Q_DECL_OVERRIDE
 draw is the function that actually renders the data. More...
 
- Public Member Functions inherited from CGAL::Three::Primitive_container
 Primitive_container (int program, bool indexed)
 Primitive_container ructor. More...
 
void bindUniformValues (CGAL::Three::Viewer_interface *viewer)
 bindUniformValues sets the uniform variables for the concerned shaders. More...
 
void removeViewer (CGAL::Three::Viewer_interface *viewer)
 removeViewer deletes and removes the Vao assigned to viewer from Vaos. More...
 
void reset_vbos (Scene_item_rendering_helper::Gl_data_names)
 reset_vbos de-allocates the Vbos. More...
 
void setFlatDataSize (std::size_t)
 setFlatDataSize sets the number of un-indexed vertices of this container. More...
 
void setIdxSize (std::size_t)
 setIdxDataSize sets the number of indexed vertices of this container. More...
 
void setCenterSize (std::size_t)
 setCenterSize sets the number of instances of the item in this container. More...
 
bool isGLInit (Viewer_interface *viewer) const
 Returns true if the container Vaos and Vbos are created in the context of viewer. More...
 
void allocate (std::size_t vbo_id, void *data, int datasize)
 allocate sets the data for a Vbo. More...
 
void setVao (Viewer_interface *viewer, Vao *)
 setVao sets the Vao corresponding to viewer of this container.
 
void setVbos (std::vector< Vbo *>)
 setVbos sets the vector of Vbos for this container. More...
 
void setVbo (std::size_t vbo_id, Vbo *vbo)
 setVbo sets the vbo_idth Vbo of this container to vbo. More...
 
void setGLInit (Viewer_interface *viewer, bool)
 Use this to specify if the container Vaos and Vbos are created in the context of viewer.
 
void setTexture (Texture *)
 setter for the texture.
 
void setTextureSize (const QSize &size)
 setter for the texture size.
 
void setTextureData (int i, int j, int r, int g, int b)
 setter for the texture data at UV coordinates (i,j).
 
VaogetVao (Viewer_interface *viewer) const
 Returns the Vao bound to viewer.
 
VbogetVbo (std::size_t id) const
 getVbo returns the idth Vbo of this container.
 
int getProgram () const
 getProgram returns the OpenGL_program_IDs used with this container.
 
bool isDataIndexed ()
 isDataIndexed specifies if the data is indexed or not. More...
 
TexturegetTexture () const
 getter for the texture.
 
GLuint getTextureId () const
 getter for the texture id.
 
QSize getTextureSize () const
 getter for the size of the texture.
 
bool getClipping () const
 getter for the clipping. Default is true.
 
void setInit (Viewer_interface *viewer, bool)
 Use this to specify if the container Vbos are filled for viewer.
 
bool isInit (Viewer_interface *viewer) const
 isInit returns true if the container Vbos are filled for viewer. More...
 
std::size_t getFlatDataSize () const
 getFlatDataSize returns the number of un-indexed vertices. More...
 
std::size_t getIdxSize () const
 getIdxSize returns the number of indexed vertices. More...
 
int getTupleSize () const
 getTupleSize returns the number of coordinates in one vertex. More...
 
std::size_t getCenterSize () const
 getCenterSize returns the number of instances of the item in this container. More...
 
void setSelected (bool)
 Setter for the "selected" uniform parameter.
 
void setColor (QColor)
 Setter for the "color" parameter.
 
void setStride (std::size_t id, int stride)
 Setter for the "stride" parameter.
 
void setOffset (std::size_t id, int offset)
 Setter for the "offset" parameter.
 
void setTupleSize (int ts)
 setter for the tuple size: the number of coordinates of one vertex.
 
void setClipping (bool b)
 setter for the clipping. If b is false, then the clipping box will have no effect.
 
bool isSelected () const
 getter for the "selected" parameter
 
QColor getColor () const
 getter for the "color" parameter
 

Getters and Setters for the shaders parameters.

Each of those depends of the OpenGL_program_IDs this container is using.

If the shaders of this program doesn't need one, you can ignore it. The others should be filled at each draw() from the item.

QVector4D getPlane () const
 getter for the "plane" parameter
 
QMatrix4x4 getFrameMatrix () const
 getter for the "f_matrix" parameter
 
QVector2D getViewport () const
 getter for the "viewport" parameter
 
GLfloat getWidth () const
 getter for the "width" parameter
 
void setPlane (const QVector4D &)
 setter for the "plane" parameter
 
void setFrameMatrix (const QMatrix4x4 &)
 setter for the "f_matrix" parameter
 
void setViewport (const QVector2D &)
 setter for the "viewport" parameter
 
void setWidth (const GLfloat &)
 setter for the "width" parameter
 
void setIsSurface (const bool)
 setter for the "is_surface" attribute. Used in PROGRAM_C3T3_EDGES
 

Member Enumeration Documentation

◆ vbosName

The vbosName enum.

Holds the Vbo Ids of this container.

Enumerator
Vertices 

Designates the buffer that contains the vertex coordinates.

Indices 

Designates the buffer that contains the vertex indices.

Normals 

Designates the buffer that contains the normal coordinates.

Colors 

Designates the buffer that contains the color components.

Radius 

Designates the buffer that contains the radius of wire spheres.

Centers 

Designates the buffer that contains the center of c3t3 facets or the center of wire spheres, for example.

Texture_map 

Designates the buffer that contains the UV map for the texture.

NbOfVbos 

Designates the size of the VBOs vector for Edge_containers.

Constructor & Destructor Documentation

◆ Edge_container()

CGAL::Three::Edge_container::Edge_container ( int  program,
bool  indexed 
)

The constructor.

Parameters
programis the QOpenGLShaderProgram that is used by this Edge_container Vao.
indexedmust be true if the data is indexed, false otherwise. If true, VBOs[Indices] must be filled.

Member Function Documentation

◆ draw()

void CGAL::Three::Edge_container::draw ( CGAL::Three::Viewer_interface viewer,
bool  is_color_uniform 
)
virtual

draw is the function that actually renders the data.

Parameters
viewerthe active Viewer_interface.
is_color_uniformmust be false if VBOs[Colors] is not empty, true otherwise.

Implements CGAL::Three::Primitive_container.

◆ initGL()

void CGAL::Three::Edge_container::initGL ( Viewer_interface viewer)
virtual

initGL creates the Vbos and Vaos of this Edge_container.

Attention
It must be called within a valid OpenGL context. The draw() function of an item is always a safe place to call this.
Parameters
viewerthe active Viewer_interface.

Implements CGAL::Three::Primitive_container.