Blender  V3.3
Public Member Functions | Static Public Member Functions | List of all members
Freestyle::GeomCleaner Class Reference

#include <GeomCleaner.h>

Public Member Functions

 GeomCleaner ()
 
 ~GeomCleaner ()
 

Static Public Member Functions

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

Detailed Description

Definition at line 22 of file GeomCleaner.h.

Constructor & Destructor Documentation

◆ GeomCleaner()

Freestyle::GeomCleaner::GeomCleaner ( )
inline

Definition at line 24 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,
unsigned  iVSize,
const unsigned *  iIndices,
unsigned  iISize,
float **  oVertices,
unsigned *  oVSize,
unsigned **  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 an unsignedeger 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 183 of file GeomCleaner.cpp.

References v.

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

◆ CompressIndexedVertexArray()

void Freestyle::GeomCleaner::CompressIndexedVertexArray ( const float iVertices,
unsigned  iVSize,
const unsigned *  iIndices,
unsigned  iISize,
float **  oVertices,
unsigned *  oVSize,
unsigned **  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 an unsignedeger 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 75 of file GeomCleaner.cpp.

References v.

◆ SortAndCompressIndexedVertexArray()

void Freestyle::GeomCleaner::SortAndCompressIndexedVertexArray ( const float iVertices,
unsigned  iVSize,
const unsigned *  iIndices,
unsigned  iISize,
float **  oVertices,
unsigned *  oVSize,
unsigned **  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 an unsignedeger 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 134 of file GeomCleaner.cpp.

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

◆ SortIndexedVertexArray()

void Freestyle::GeomCleaner::SortIndexedVertexArray ( const float iVertices,
unsigned  iVSize,
const unsigned *  iIndices,
unsigned  iISize,
float **  oVertices,
unsigned **  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 an unsignedeger 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 32 of file GeomCleaner.cpp.


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