Molecular Vis
Improving perception of molecular visualization
ProceduralGeometry Class Reference

Class for procedurally genereted geometries, like spheres and cubes. More...

#include <Geometry.h>

Inheritance diagram for ProceduralGeometry:
Geometry

Public Member Functions

 ProceduralGeometry (glm::mat4 modelMatrix, GeometryData &geometryData, std::shared_ptr< Material > material)
 
 ProceduralGeometry (glm::mat4 modelMatrix, GeometryData &geometryData, std::shared_ptr< Shader > shader)
 
virtual void draw (glm::mat4 matrix=glm::mat4(1.0f))
 

Static Public Member Functions

static GeometryData createCubeGeometry (float width, float height, float depth)
 
static GeometryData createSphereGeometry (float radius, unsigned int longitudeSegments, unsigned int latitudeSegments)
 
static void createSphereGeometry (float radius, unsigned int longitudeSegments, unsigned int latitudeSegments, glm::vec3 position, GeometryData &geometry)
 
static GeometryData createCylinderGeometry (float radius, float height, unsigned int segments)
 
static GeometryData createFullScreenQuad ()
 

Additional Inherited Members

- Protected Attributes inherited from Geometry
glm::mat4 modelMatrix
 

Detailed Description

Class for procedurally genereted geometries, like spheres and cubes.

Constructor & Destructor Documentation

◆ ProceduralGeometry() [1/2]

ProceduralGeometry::ProceduralGeometry ( glm::mat4  modelMatrix,
GeometryData geometryData,
std::shared_ptr< Material material 
)

Creates a procedural geometry object

Parameters
modelMatrixThe model matrix of the geometry. Transforms geometry from object to world space.
geometryDataData of the vertices and connectivity. This is used to construct the indexed buffers.
materialMaterial of the geometry, defining the brdf properties of the geometry.

◆ ProceduralGeometry() [2/2]

ProceduralGeometry::ProceduralGeometry ( glm::mat4  modelMatrix,
GeometryData geometryData,
std::shared_ptr< Shader shader 
)

Creates a procedural geometry object with standard material values for a given shader.

Parameters
modelMatrixThe model matrix of the geometry. Transforms geometry from object to world space.
geometryDataData of the vertices and connectivity. This is used to construct the indexed buffers.
shaderShader that is used to draw. Is used to construct the default material.

Member Function Documentation

◆ createCubeGeometry()

GeometryData ProceduralGeometry::createCubeGeometry ( float  width,
float  height,
float  depth 
)
static

Creates GeometryData for a cube.

Parameters
width,height,depthdimensions of the cube
Returns
GeometryData for a cube.

◆ createCylinderGeometry()

GeometryData ProceduralGeometry::createCylinderGeometry ( float  radius,
float  height,
unsigned int  segments 
)
static

Creates GeometryData for a cylinder.

Parameters
radiusRadius of cylinder.
heightHeight of cylinder.
segmentsNumber of segments along cylinder used for triangulation.
Returns
GeometryData for a cylinder.

◆ createFullScreenQuad()

GeometryData ProceduralGeometry::createFullScreenQuad ( )
static

Creates a full-screen quad with texture coordinates from (0,0) to (1,1)

Returns
GeometryData for a full-screen quad.

◆ createSphereGeometry() [1/2]

GeometryData ProceduralGeometry::createSphereGeometry ( float  radius,
unsigned int  longitudeSegments,
unsigned int  latitudeSegments 
)
static

Creates GeometryData for a sphere.

Parameters
radiusRadius of sphere
longitudeSegmentsNumber of segments along longitude.
latitudeSegmentsNumber of segments along latitude.
Returns
GeometryData for a sphere.

◆ createSphereGeometry() [2/2]

void ProceduralGeometry::createSphereGeometry ( float  radius,
unsigned int  longitudeSegments,
unsigned int  latitudeSegments,
glm::vec3  position,
GeometryData geometry 
)
static

Append a Sphere to the given GeometryData at a given position. Can be used to construct a collection of spheres.

Parameters
radiusRadius of sphere
longitudeSegmentsNumber of segments along longitude.
latitudeSegmentsNumber of segments along latitude.
positionCoordinates of position where this sphere will be added.
[in,out]geometryGeometryData to which the sphere will be added.

◆ draw()

void ProceduralGeometry::draw ( glm::mat4  matrix = glm::mat4(1.0f))
virtual

Function defining how to draw the Geometry.

Parameters
matrixDefines a transformation from word space to word space. Gets left-multiplied with the model matrix.

Implements Geometry.


The documentation for this class was generated from the following files: