ArcGIS Procedural Runtime  3.2.10650
List of all members | Public Types | Public Member Functions
prtx::EncodePreparator::PreparationFlags Class Reference

#include <EncodePreparator.h>

Public Types

enum  IndexSharing {
  INDICES_SEPARATE_FOR_ALL_VERTEX_ATTRIBUTES = 0,
  INDICES_SAME_FOR_VERTICES_AND_NORMALS = (1 << 0),
  INDICES_SAME_FOR_VERTICES_AND_FIRST_UV_SET = (1 << 1),
  INDICES_SAME_FOR_VERTICES_AND_ALL_UV_SETS = (1 << 2) | INDICES_SAME_FOR_VERTICES_AND_FIRST_UV_SET,
  INDICES_SAME_FOR_VERTICES_AND_NORMALS_AND_FIRST_UV_SET = INDICES_SAME_FOR_VERTICES_AND_NORMALS | INDICES_SAME_FOR_VERTICES_AND_FIRST_UV_SET,
  INDICES_SAME_FOR_ALL_VERTEX_ATTRIBUTES = INDICES_SAME_FOR_VERTICES_AND_NORMALS | INDICES_SAME_FOR_VERTICES_AND_ALL_UV_SETS
}
 

Public Member Functions

PreparationFlagsatlasAddWrapBorder (bool v)
 
bool atlasAddWrapBorder () const
 
PreparationFlagsatlasRepeatingTextures (bool v)
 
bool atlasRepeatingTextures () const
 
PreparationFlagscleanupUVs (bool v)
 
bool cleanupUVs () const
 
PreparationFlagscleanupVertexNormals (bool v)
 
bool cleanupVertexNormals () const
 
PreparationFlagscreateTextureAtlases (bool v)
 
bool createTextureAtlases () const
 
PreparationFlagscutoutTextures (bool v)
 
bool cutoutTextures () const
 
PreparationFlagsdetermineMeshProperties (bool v)
 
bool determineMeshProperties () const
 
PreparationFlagsforceAtlasing (bool v)
 
bool forceAtlasing () const
 
PreparationFlagsindexSharing (IndexSharing v)
 
IndexSharing indexSharing () const
 
PreparationFlagsinstancing (bool v)
 
bool instancing () const
 
PreparationFlagsmaxAtlasDim (int v)
 
int maxAtlasDim () const
 
PreparationFlagsmaxTexSize (uint32_t v)
 
uint32_t maxTexSize () const
 
PreparationFlagsmergeByMaterial (bool v)
 
bool mergeByMaterial () const
 
PreparationFlagsmergeToleranceNormals (float v)
 
float mergeToleranceNormals () const
 
PreparationFlagsmergeToleranceUVs (float v)
 
float mergeToleranceUVs () const
 
PreparationFlagsmergeToleranceVertices (float v)
 
float mergeToleranceVertices () const
 
PreparationFlagsmergeVertices (bool v)
 
bool mergeVertices () const
 
PreparationFlagsmeshMerging (MeshMerging::Action v)
 
MeshMerging::Action meshMerging () const
 
PreparationFlagsoffset (double x, double y, double z)
 
PreparationFlagsoffset (const double *xyz)
 
const double * offset () const
 
PreparationFlagsprocessHoles (HoleProcessor::Action v)
 
HoleProcessor::Action processHoles () const
 
PreparationFlagsprocessVertexNormals (VertexNormalProcessor::Action v)
 
VertexNormalProcessor::Action processVertexNormals () const
 
PreparationFlagstriangulate (bool v)
 
bool triangulate () const
 

Detailed Description

Container class for the preparation flags. This class provides a number of chainable setters to control the preparation process.

See also
prtx::EncodePreparator::fetchFinalizedInstances()

Member Enumeration Documentation

◆ IndexSharing

Index sharing types for vertex attributes (coordinates, normals, texture corrdinates).

Enumerator
INDICES_SEPARATE_FOR_ALL_VERTEX_ATTRIBUTES 

All vertex attributes have independent indexing (= the most compact representation).

INDICES_SAME_FOR_VERTICES_AND_NORMALS 

Vertex coordinates and vertex normals will use the same index. Data is replicated if needed.

INDICES_SAME_FOR_VERTICES_AND_FIRST_UV_SET 

Vertex coordinates and the first texture coordinate set will use the same index. Data is replicated if needed.

INDICES_SAME_FOR_VERTICES_AND_ALL_UV_SETS 

Vertex coordinates and all texture coordinate sets will use the same index. Data is replicated if needed.

INDICES_SAME_FOR_VERTICES_AND_NORMALS_AND_FIRST_UV_SET 

Vertex coordinates, vertex normals and the first texture coordinate set will use the same index. Data is replicated if needed.

INDICES_SAME_FOR_ALL_VERTEX_ATTRIBUTES 

All vertex attributes will use the same index. Data is replicated if needed.

Member Function Documentation

◆ atlasAddWrapBorder()

PreparationFlags& prtx::EncodePreparator::PreparationFlags::atlasAddWrapBorder ( bool  v)

If true, texture atlases are forced to have power of two dimensions.

◆ atlasRepeatingTextures()

PreparationFlags& prtx::EncodePreparator::PreparationFlags::atlasRepeatingTextures ( bool  v)

If true, repeating textures are put into texture atlases as well.

◆ cleanupUVs()

PreparationFlags& prtx::EncodePreparator::PreparationFlags::cleanupUVs ( bool  v)

If true, texture coordinates will be merged if they are within the tolerance set by mergeToleranceUVs().

◆ cleanupVertexNormals()

PreparationFlags& prtx::EncodePreparator::PreparationFlags::cleanupVertexNormals ( bool  v)

If true, vertex normals will be merged if they are within the tolerance set by mergeToleranceNormals().

◆ createTextureAtlases()

PreparationFlags& prtx::EncodePreparator::PreparationFlags::createTextureAtlases ( bool  v)

If true, texture atlases are created and the materials and geometries updated accordingly per fetch call.

◆ cutoutTextures()

PreparationFlags& prtx::EncodePreparator::PreparationFlags::cutoutTextures ( bool  v)

If true, textures are cut to the used area and the materials and geometries updated accordingly per fetch call. This cannot be turned off if texture atlases are activated.

◆ determineMeshProperties()

PreparationFlags& prtx::EncodePreparator::PreparationFlags::determineMeshProperties ( bool  v)

If true, performs a mesh analysis. The results can be accessed in FinalizedInstance::allMeshFacesConvex() and FinalizedInstance::allMeshFacesPlanar().

◆ forceAtlasing()

PreparationFlags& prtx::EncodePreparator::PreparationFlags::forceAtlasing ( bool  v)

If true, texture atlases are forced even for single textures.

◆ indexSharing()

PreparationFlags& prtx::EncodePreparator::PreparationFlags::indexSharing ( IndexSharing  v)

Specify the index setup of the finalized meshes.

See also
IndexSharing

◆ instancing()

PreparationFlags& prtx::EncodePreparator::PreparationFlags::instancing ( bool  v)

If true, the preparator shares/reuses cached/identical geometry objects over multiple instances.

◆ maxAtlasDim()

PreparationFlags& prtx::EncodePreparator::PreparationFlags::maxAtlasDim ( int  v)

Set max dimension for texture atlases. v is taken to the power of 2, e.g. 11 => 2048x2048.

◆ maxTexSize()

PreparationFlags& prtx::EncodePreparator::PreparationFlags::maxTexSize ( uint32_t  v)

Specifies the size to scale larger input images down to. Ignored if zero.

◆ mergeByMaterial()

PreparationFlags& prtx::EncodePreparator::PreparationFlags::mergeByMaterial ( bool  v)

[DEPRECATED, use meshMerging()] If true, meshes with the same material are combined per fetch call.

◆ mergeToleranceNormals()

PreparationFlags& prtx::EncodePreparator::PreparationFlags::mergeToleranceNormals ( float  v)

Merge tolerance for vertex normals. See cleanupVertexNormals().

◆ mergeToleranceUVs()

PreparationFlags& prtx::EncodePreparator::PreparationFlags::mergeToleranceUVs ( float  v)

Merge tolerance for texture coordinates. See cleanupUVs().

◆ mergeToleranceVertices()

PreparationFlags& prtx::EncodePreparator::PreparationFlags::mergeToleranceVertices ( float  v)

Merge tolerance for vertex coordinates. See mergeVertices().

◆ mergeVertices()

PreparationFlags& prtx::EncodePreparator::PreparationFlags::mergeVertices ( bool  v)

If true, vertices will be merged together if they are closer than the distance specified with mergeToleranceVertices(float v).

◆ meshMerging()

PreparationFlags& prtx::EncodePreparator::PreparationFlags::meshMerging ( MeshMerging::Action  v)

Control how new meshes should be merged with previous ones when added to the preparator.

◆ offset() [1/2]

PreparationFlags& prtx::EncodePreparator::PreparationFlags::offset ( double  x,
double  y,
double  z 
)

All meshes are offset by (x,y,z).

◆ offset() [2/2]

PreparationFlags& prtx::EncodePreparator::PreparationFlags::offset ( const double *  xyz)

All meshes are offset by xyz. xyz is expected contain three double values.

◆ processHoles()

PreparationFlags& prtx::EncodePreparator::PreparationFlags::processHoles ( HoleProcessor::Action  v)

The specified action is applied to faces with holes.

See also
HoleProcessor

◆ processVertexNormals()

PreparationFlags& prtx::EncodePreparator::PreparationFlags::processVertexNormals ( VertexNormalProcessor::Action  v)

The specified operation is applied to all vertex normals.

See also
VertexNormalProcessor

◆ triangulate()

PreparationFlags& prtx::EncodePreparator::PreparationFlags::triangulate ( bool  v)

If true, all meshes are triangulated.


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