Cogs.Core
Static Public Member Functions | List of all members
Cogs::Geometry::ExtrusionGenerator Struct Reference

Static Public Member Functions

static bool generateCrossSections (glm::vec3 *vertices, int numSections, const glm::vec3 *crossSectionElements, int numSegments, const glm::quat *rotations)
 Generates cross section vertices in vertices from the cross section definition given.
 
static bool generateCrossSections (glm::vec3 *vertices, int numSections, const glm::vec3 *crossSectionElements, const glm::vec3 *crossSectionElements2, const float *morphs, int numSegments, const glm::quat *rotations)
 
static void generateSimpleExtrusionNormals (glm::vec3 *vertices, glm::vec3 *normals, int numVertices)
 Generates extrusion normals from the vertices given.
 
static void modulateSections (glm::vec3 *vertices, const int numSections, const int numSegments, const float *values, const size_t stride=1)
 Modulate extrusion vertices with per section data.
 
static void modulateVertices (glm::vec3 *vertices, int numVertices, float *values)
 Modulate extrusion vertices with per vertex data.
 
static void offsetCrossSections (glm::vec3 *vertices, int numSections, int numSegments, const glm::vec3 *positions)
 Offset vertices with per section positions.
 
static void colorSections (uint32_t *colors, int numSections, int numSegments, uint32_t *colorValues)
 Generate color data per vertex from per section data.
 
static void generateTriangleIndices (int32_t *indices, int numSections, int numSegments, bool closed, bool useTexture, int32_t offset=0)
 Generate legacy triangle extrusion indices.
 
static void generateTriangleIndices (uint32_t *indices, int numSections, int numSegments, bool closed, bool useTexture, int32_t offset=0)
 Generate triangle extrusion indices.
 
static void generateDepthBasedTextureCoordinates (const size_t pathLength, const size_t numSegments, const float *depths, const float *offsets, const size_t offsetStride, glm::vec2 *texCoords)
 
static bool generateRotations (const glm::vec3 *directions, const int numDirections, const glm::vec3 &primaryAxis, glm::quat *rotations)
 

Detailed Description

Definition at line 12 of file ExtrusionGenerator.h.

Member Function Documentation

◆ colorSections()

void Cogs::Geometry::ExtrusionGenerator::colorSections ( uint32_t *  colors,
int  numSections,
int  numSegments,
uint32_t *  colorValues 
)
static

Generate color data per vertex from per section data.

Definition at line 72 of file ExtrusionGenerator.cpp.

◆ generateCrossSections() [1/2]

bool Cogs::Geometry::ExtrusionGenerator::generateCrossSections ( glm::vec3 *  vertices,
int  numSections,
const glm::vec3 *  crossSectionElements,
const glm::vec3 *  crossSectionElements2,
const float *  morphs,
int  numSegments,
const glm::quat *  rotations 
)
static

Definition at line 21 of file ExtrusionGenerator.cpp.

◆ generateCrossSections() [2/2]

bool Cogs::Geometry::ExtrusionGenerator::generateCrossSections ( glm::vec3 *  vertices,
int  numSections,
const glm::vec3 *  crossSectionElements,
int  numSegments,
const glm::quat *  rotations 
)
static

Generates cross section vertices in vertices from the cross section definition given.

The cross sections are rotated per section by the rotations given in rotations.

Definition at line 6 of file ExtrusionGenerator.cpp.

◆ generateDepthBasedTextureCoordinates()

void Cogs::Geometry::ExtrusionGenerator::generateDepthBasedTextureCoordinates ( const size_t  pathLength,
const size_t  numSegments,
const float *  depths,
const float *  offsets,
const size_t  offsetStride,
glm::vec2 *  texCoords 
)
static

Definition at line 202 of file ExtrusionGenerator.cpp.

◆ generateRotations()

static bool Cogs::Geometry::ExtrusionGenerator::generateRotations ( const glm::vec3 *  directions,
const int  numDirections,
const glm::vec3 &  primaryAxis,
glm::quat *  rotations 
)
inlinestatic

Definition at line 84 of file ExtrusionGenerator.h.

◆ generateSimpleExtrusionNormals()

void Cogs::Geometry::ExtrusionGenerator::generateSimpleExtrusionNormals ( glm::vec3 *  vertices,
glm::vec3 *  normals,
int  numVertices 
)
static

Generates extrusion normals from the vertices given.

The normals are simply normalized versions of the vertex coordinates.

Definition at line 45 of file ExtrusionGenerator.cpp.

◆ generateTriangleIndices() [1/2]

void Cogs::Geometry::ExtrusionGenerator::generateTriangleIndices ( int32_t *  indices,
int  numSections,
int  numSegments,
bool  closed,
bool  useTexture,
int32_t  offset = 0 
)
static

Generate legacy triangle extrusion indices.

Definition at line 114 of file ExtrusionGenerator.cpp.

◆ generateTriangleIndices() [2/2]

void Cogs::Geometry::ExtrusionGenerator::generateTriangleIndices ( uint32_t *  indices,
int  numSections,
int  numSegments,
bool  closed,
bool  useTexture,
int32_t  offset = 0 
)
static

Generate triangle extrusion indices.

Definition at line 162 of file ExtrusionGenerator.cpp.

◆ modulateSections()

void Cogs::Geometry::ExtrusionGenerator::modulateSections ( glm::vec3 *  vertices,
const int  numSections,
const int  numSegments,
const float *  values,
const size_t  stride = 1 
)
static

Modulate extrusion vertices with per section data.

Definition at line 88 of file ExtrusionGenerator.cpp.

◆ modulateVertices()

void Cogs::Geometry::ExtrusionGenerator::modulateVertices ( glm::vec3 *  vertices,
int  numVertices,
float *  values 
)
static

Modulate extrusion vertices with per vertex data.

Definition at line 102 of file ExtrusionGenerator.cpp.

◆ offsetCrossSections()

void Cogs::Geometry::ExtrusionGenerator::offsetCrossSections ( glm::vec3 *  vertices,
int  numSections,
int  numSegments,
const glm::vec3 *  positions 
)
static

Offset vertices with per section positions.

Definition at line 56 of file ExtrusionGenerator.cpp.


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