Blender V4.3
Freestyle::GeomCleaner Class Reference

#include <GeomCleaner.h>

Public Member Functions

 GeomCleaner ()
 
 ~GeomCleaner ()
 

Static Public Member Functions

static void SortIndexedVertexArray (const float *iVertices, uint iVSize, const uint *iIndices, uint iISize, float **oVertices, uint **oIndices)
 
static void CompressIndexedVertexArray (const float *iVertices, uint iVSize, const uint *iIndices, uint iISize, float **oVertices, uint *oVSize, uint **oIndices)
 
static void SortAndCompressIndexedVertexArray (const float *iVertices, uint iVSize, const uint *iIndices, uint iISize, float **oVertices, uint *oVSize, uint **oIndices)
 
static void CleanIndexedVertexArray (const float *iVertices, uint iVSize, const uint *iIndices, uint iISize, float **oVertices, uint *oVSize, uint **oIndices)
 

Detailed Description

Definition at line 24 of file GeomCleaner.h.

Constructor & Destructor Documentation

◆ GeomCleaner()

Freestyle::GeomCleaner::GeomCleaner ( )
inline

Definition at line 26 of file GeomCleaner.h.

◆ ~GeomCleaner()

Freestyle::GeomCleaner::~GeomCleaner ( )
inline

Definition at line 27 of file GeomCleaner.h.

Member Function Documentation

◆ CleanIndexedVertexArray()

void Freestyle::GeomCleaner::CleanIndexedVertexArray ( const float * iVertices,
uint iVSize,
const uint * iIndices,
uint iISize,
float ** oVertices,
uint * oVSize,
uint ** oIndices )
static

Cleans an indexed vertex array. (Identical to SortAndCompress except that we use here a hash table to create the new array.) iVertices The vertex array to sort then compress. It is organized as a float series of vertex coordinates: XYZXYZXYZ... iVSize The size of iVertices array. iIndices The array containing the vertex indices (used to refer to the vertex coordinates in an indexed face). Each element is a uint multiple of 3. iISize The size of iIndices array oVertices The vertex array, result of the sorting-compression. The array is organized as a 3-float series giving the vertices coordinates: XYZXYZXYZ... oVSize The size of oVertices. oIndices The indices array, reorganized to match the sorted and compressed oVertices array.

Definition at line 187 of file GeomCleaner.cpp.

References v.

Referenced by Freestyle::BlenderFileLoader::insertShapeNode().

◆ CompressIndexedVertexArray()

void Freestyle::GeomCleaner::CompressIndexedVertexArray ( const float * iVertices,
uint iVSize,
const uint * iIndices,
uint iISize,
float ** oVertices,
uint * oVSize,
uint ** oIndices )
static

Compress a SORTED indexed vertex array by eliminating multiple appearing occurrences of a single vertex. iVertices The SORTED vertex array to compress. It is organized as a float series of vertex coordinates: XYZXYZXYZ... iVSize The size of iVertices array. iIndices The array containing the vertex indices (used to refer to the vertex coordinates in an indexed face). Each element is a uint multiple of 3. iISize The size of iIndices array oVertices The vertex array, result of the compression. The array is organized as a 3-float series giving the vertices coordinates: XYZXYZXYZ... oVSize The size of oVertices. oIndices The indices array, reorganized to match the compressed oVertices array.

Definition at line 79 of file GeomCleaner.cpp.

References v.

Referenced by SortAndCompressIndexedVertexArray().

◆ SortAndCompressIndexedVertexArray()

void Freestyle::GeomCleaner::SortAndCompressIndexedVertexArray ( const float * iVertices,
uint iVSize,
const uint * iIndices,
uint iISize,
float ** oVertices,
uint * oVSize,
uint ** oIndices )
static

Sorts and compress an array of indexed vertices. iVertices The vertex array to sort then compress. It is organized as a float series of vertex coordinates: XYZXYZXYZ... iVSize The size of iVertices array. iIndices The array containing the vertex indices (used to refer to the vertex coordinates in an indexed face). Each element is a uint multiple of 3. iISize The size of iIndices array oVertices The vertex array, result of the sorting-compression. The array is organized as a 3-float series giving the vertices coordinates: XYZXYZXYZ... oVSize The size of oVertices. oIndices The indices array, reorganized to match the sorted and compressed oVertices array.

Definition at line 138 of file GeomCleaner.cpp.

References CompressIndexedVertexArray(), G, G_DEBUG_FREESTYLE, printf, SortIndexedVertexArray(), Freestyle::Chronometer::start(), and Freestyle::Chronometer::stop().

◆ SortIndexedVertexArray()

void Freestyle::GeomCleaner::SortIndexedVertexArray ( const float * iVertices,
uint iVSize,
const uint * iIndices,
uint iISize,
float ** oVertices,
uint ** oIndices )
static

Sorts an array of Indexed vertices iVertices Array of vertices to sort. It is organized as a float series of vertex coordinates: XYZXYZXYZ... iVSize The size of iVertices array. iIndices The array containing the vertex indices (used to refer to the vertex coordinates in an indexed face). Each element is a uint multiple of 3. iISize The size of iIndices array oVertices Output of sorted vertices. A vertex v1 precedes another one v2 in this array if v1.x<v2.x, or v1.x=v2.x && v1.y < v2.y or v1.x=v2.y && v1.y=v2.y && v1.z < v2.z. The array is organized as a 3-float series giving the vertices coordinates: XYZXYZXYZ... oIndices Output corresponding to the iIndices array but reorganized in order to match the sorted vertex array.

Definition at line 36 of file GeomCleaner.cpp.

Referenced by SortAndCompressIndexedVertexArray().


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