# class MappingImageSettings

Settings for the Simplygon mapping classes These settings control the properties of the mapping image that will be generated in the current simplification processor (reducer/remesher etc). The mapping image will be used when casting a new texture on the simplified geometry. In the settings object, the user is able to set the dimensions of the image (width/height) as well as whether the LOD should have new texture coordinates and some parameters for how they should be generated and all other settings regarding the mapping image.

# Properties

Property Description
AllowTransparencyMapping If true, the remeshing processor will allow mapped transparency in the generated mapping image. This allows material casting where gaps filled by the remeshing processor will be cast as transparent.
ApplyNewMaterialIds If true, and also generating one or more mapping images for material casting, the material IDs in the process geometry will be updated to reflect the new, not yet cast output materials. This means the output scene will be temporarily invalid before the materialtable has been updated to reflect the new changes.
AutomaticTextureSizeMultiplier Texture dimension length multiplier for the automatic texture size.
ForcePower2Texture If automatic_texture_size is enabled, then force the texture sizes to be a power of 2.
GenerateMappingImage If set, the aggregation processor, reduction processor, or remeshing processor will create a mapping image that maps triangles on the reduced geometry back to triangles on the original geometry. The texture is insert into the MappingImage object. The image data will contain two fields: * RidArray, "TriangleIds", TupleSize:1, The id of the triangle * UnsignedShortArray, "BarycentricCoords", TupleSize:2, Items A & B of the barycentric coordinate on the triangle. The user can control the size of the mapped texture using the values MappingTextureWidth and MappingTextureHeight.
GenerateTangents If true, generates a new tangent space fields at position specified by TexCoordLevel, based on the vertex normals and texture coordinates. Tangent space fields will always be created if missing, and GenerateMappingImage is enabled. If GenerateTexCoords is enabled, new tangents will always be generated.
GenerateTexCoords If true, generates a new texcoords field at the position specified by TexCoordLevel. Will be ignored and always generate texcoords if none are available in the Geometry if GenerateMappingImage is enabled.
InputMaterialCount The number of input materials used in the original geometry for mapping to multiple output materials. This needs to be set before you can set any specific in-out material mapping. 0 signifies that no in-out material mapping is used, ie. the process will produce one resulting mapping image.
MaximumLayers The maximum number of layers in the mapping image. If a remeshed geometry has a lot of transparent triangles, use a higher number to be able to find intersections on the inside of parts of the geometry. This setting only has effect in the remeshing, when running reduction the number of layers is always 1.
OnlyParameterizeInvalidUVs If enabled, will aggregate all the valid original UVs. If there are invalid original UVs, those parts will receive new parameterized UVs.
OutputMaterialCount The number of output mapping images that are to be generated. If this is set to more than 1, the material mapping also needs to be set.
ReplaceMappingImages Whether to replace already existing mapping images in the scene.
TexCoordGeneratorType Determines which method to use when generating the texture coordinates. Parameterizer generate from scratch based on the geometry. ChartAggregator generate based on the original texture coordinates.
TexCoordLevel The texture coordinate level used for mapping image and texture generation. If the TexCoordName has been set, the TexCoordLevel is not used.
TexCoordName The texture coordinate level name used for mapping image and texture generation. If new UVs are created, they will replace the old coordinates in the texture channel with the TexCoordName. If no texture level with this name exists. It will be created. If the TexCoordName is not set, the TexCoordLevel (index) will be used instead.
UseAutomaticTextureSize The UseAutomaticTextureSize flag. If true, then texture sizes will be computed for the reduced mesh depending on its pixel size on screen.
UseFullRetexturing If set, all original texcoord sets are replaced by a single new one which will be used for the mapping image. This means the output scene will be temporarily invalid before the materialtable has been updated to reflect the new changes. This flag has no effect on the remeshing, which always does a full retexturing.

# Methods

Method Description
GetChartAggregatorSettings The settings for the chart aggregator.
GetClass Get the name of the MappingImageSettings class.
GetErrorString Returns a string describing the error that was found the last time ValidateSettings was performed.
GetInputMaterialSettings Get the input material settings for the given index.
GetOutputMaterialSettings Get the output material settings for the given index.
GetParameterizerSettings The settings for the parameterizer.
IsA Returns true if MappingImageSettings is a or is a descendant of the class named as the type parameter.
IsNull Returns true if the MappingImageSettings object is invalid.
ValidateSettings Validates the current settings values.

# Static methods

Method Description
IsClassA Returns true if the class is a or is a descendant of the class named as the type parameter.
SafeCast SafeCast makes sure the input object is of a class that can be cast into spMappingImageSettings, and if this is the case, returns the object cast into spMappingImageSettings.

# Properties details

# AllowTransparencyMapping

If true, the remeshing processor will allow mapped transparency in the generated mapping image. This allows material casting where gaps filled by the remeshing processor will be cast as transparent.

# Syntax

// Setter
void SetAllowTransparencyMapping( bool value );

// Getter
bool GetAllowTransparencyMapping();

# SetAllowTransparencyMapping parameters

Type Name Min Max Description
bool value The desired value of AllowTransparencyMapping.

# GetAllowTransparencyMapping return value

Type: bool

Default: false

# ApplyNewMaterialIds

If true, and also generating one or more mapping images for material casting, the material IDs in the process geometry will be updated to reflect the new, not yet cast output materials. This means the output scene will be temporarily invalid before the materialtable has been updated to reflect the new changes.

# Syntax

// Setter
void SetApplyNewMaterialIds( bool value );

// Getter
bool GetApplyNewMaterialIds();

# SetApplyNewMaterialIds parameters

Type Name Min Max Description
bool value The desired ApplyNewMaterialIds flag.

# GetApplyNewMaterialIds return value

Type: bool

Default: true

# AutomaticTextureSizeMultiplier

Texture dimension length multiplier for the automatic texture size.

# Syntax

// Setter
void SetAutomaticTextureSizeMultiplier( real value );

// Getter
real GetAutomaticTextureSizeMultiplier();

# SetAutomaticTextureSizeMultiplier parameters

Type Name Min Max Description
real value 0 REAL_MAX The desired multiplier.

# GetAutomaticTextureSizeMultiplier return value

Type: real

Default: 1.0

# ForcePower2Texture

If automatic_texture_size is enabled, then force the texture sizes to be a power of 2.

# Syntax

// Setter
void SetForcePower2Texture( bool value );

// Getter
bool GetForcePower2Texture();

# SetForcePower2Texture parameters

Type Name Min Max Description
bool value The desired flag.

# GetForcePower2Texture return value

Type: bool

Default: false

# GenerateMappingImage

If set, the aggregation processor, reduction processor, or remeshing processor will create a mapping image that maps triangles on the reduced geometry back to triangles on the original geometry. The texture is insert into the MappingImage object. The image data will contain two fields: * RidArray, "TriangleIds", TupleSize:1, The id of the triangle * UnsignedShortArray, "BarycentricCoords", TupleSize:2, Items A & B of the barycentric coordinate on the triangle. The user can control the size of the mapped texture using the values MappingTextureWidth and MappingTextureHeight.

# Syntax

// Setter
void SetGenerateMappingImage( bool value );

// Getter
bool GetGenerateMappingImage();

# SetGenerateMappingImage parameters

Type Name Min Max Description
bool value The desired GenerateMappingImage flag.

# GetGenerateMappingImage return value

Type: bool

Default: false

# GenerateTangents

If true, generates a new tangent space fields at position specified by TexCoordLevel, based on the vertex normals and texture coordinates. Tangent space fields will always be created if missing, and GenerateMappingImage is enabled. If GenerateTexCoords is enabled, new tangents will always be generated.

# Syntax

// Setter
void SetGenerateTangents( bool value );

// Getter
bool GetGenerateTangents();

# SetGenerateTangents parameters

Type Name Min Max Description
bool value The desired GenerateTangents flag.

# GetGenerateTangents return value

Type: bool

Default: false

# GenerateTexCoords

If true, generates a new texcoords field at the position specified by TexCoordLevel. Will be ignored and always generate texcoords if none are available in the Geometry if GenerateMappingImage is enabled.

# Syntax

// Setter
void SetGenerateTexCoords( bool value );

// Getter
bool GetGenerateTexCoords();

# SetGenerateTexCoords parameters

Type Name Min Max Description
bool value The desired GenerateTexCoords flag.

# GetGenerateTexCoords return value

Type: bool

Default: false

# InputMaterialCount

The number of input materials used in the original geometry for mapping to multiple output materials. This needs to be set before you can set any specific in-out material mapping. 0 signifies that no in-out material mapping is used, ie. the process will produce one resulting mapping image.

# Syntax

// Setter
void SetInputMaterialCount( unsigned int value );

// Getter
unsigned int GetInputMaterialCount();

# SetInputMaterialCount parameters

Type Name Min Max Description
unsigned int value 0 SG_MAXIMUM_MAPPING_IMAGE_INPUT_MATERIAL_COUNT The number of inputs.

# GetInputMaterialCount return value

Type: unsigned int

Default: 0

# MaximumLayers

The maximum number of layers in the mapping image. If a remeshed geometry has a lot of transparent triangles, use a higher number to be able to find intersections on the inside of parts of the geometry. This setting only has effect in the remeshing, when running reduction the number of layers is always 1.

# Syntax

// Setter
void SetMaximumLayers( unsigned int value );

// Getter
unsigned int GetMaximumLayers();

# SetMaximumLayers parameters

Type Name Min Max Description
unsigned int value 0 UINT_MAX The desired number of layers in the mapping image.

# GetMaximumLayers return value

Type: unsigned int

Default: 3

# OnlyParameterizeInvalidUVs

If enabled, will aggregate all the valid original UVs. If there are invalid original UVs, those parts will receive new parameterized UVs.

# Syntax

// Setter
void SetOnlyParameterizeInvalidUVs( bool value );

// Getter
bool GetOnlyParameterizeInvalidUVs();

# SetOnlyParameterizeInvalidUVs parameters

Type Name Min Max Description
bool value The new flag.

# GetOnlyParameterizeInvalidUVs return value

Type: bool

Default: false

# OutputMaterialCount

The number of output mapping images that are to be generated. If this is set to more than 1, the material mapping also needs to be set.

# Syntax

// Setter
void SetOutputMaterialCount( unsigned int value );

// Getter
unsigned int GetOutputMaterialCount();

# SetOutputMaterialCount parameters

Type Name Min Max Description
unsigned int value 1 SG_MAXIMUM_MAPPING_IMAGE_OUTPUT_MATERIAL_COUNT The number of outputs.

# GetOutputMaterialCount return value

Type: unsigned int

Default: 1

# ReplaceMappingImages

Whether to replace already existing mapping images in the scene.

# Syntax

// Setter
void SetReplaceMappingImages( bool value );

// Getter
bool GetReplaceMappingImages();

# SetReplaceMappingImages parameters

Type Name Min Max Description
bool value The new value.

# GetReplaceMappingImages return value

Type: bool

Default: true

# TexCoordGeneratorType

Determines which method to use when generating the texture coordinates. Parameterizer generate from scratch based on the geometry. ChartAggregator generate based on the original texture coordinates.

# Syntax

// Setter
void SetTexCoordGeneratorType( Simplygon::ETexcoordGeneratorType value );

// Getter
Simplygon::ETexcoordGeneratorType GetTexCoordGeneratorType();

# SetTexCoordGeneratorType parameters

Type Name Min Max Description
ETexcoordGeneratorType value The TexCoordGeneratorType value to use.

# GetTexCoordGeneratorType return value

Type: ETexcoordGeneratorType

Default: Parameterizer

Key Value Comment
Parameterizer 0 Texture coordinates are generated from scratch based on the geometry.
ChartAggregator 1 Texture coordinates are generated based on the original texture coordinates.

# TexCoordLevel

The texture coordinate level used for mapping image and texture generation. If the TexCoordName has been set, the TexCoordLevel is not used.

# Syntax

// Setter
void SetTexCoordLevel( rid value );

// Getter
rid GetTexCoordLevel();

# SetTexCoordLevel parameters

Type Name Min Max Description
rid value -1 INT_MAX The desired texture coordinate level.

# GetTexCoordLevel return value

Type: rid

Default: 0

# TexCoordName

The texture coordinate level name used for mapping image and texture generation. If new UVs are created, they will replace the old coordinates in the texture channel with the TexCoordName. If no texture level with this name exists. It will be created. If the TexCoordName is not set, the TexCoordLevel (index) will be used instead.

# Syntax

// Setter
void SetTexCoordName( const char * value );

// Getter
spString GetTexCoordName();

# SetTexCoordName parameters

Type Name Min Max Description
const char * value The TexCoord level name.

# GetTexCoordName return value

Type: spString

Default: nullptr

# UseAutomaticTextureSize

The UseAutomaticTextureSize flag. If true, then texture sizes will be computed for the reduced mesh depending on its pixel size on screen.

# Syntax

// Setter
void SetUseAutomaticTextureSize( bool value );

// Getter
bool GetUseAutomaticTextureSize();

# SetUseAutomaticTextureSize parameters

Type Name Min Max Description
bool value The desired flag.

# GetUseAutomaticTextureSize return value

Type: bool

Default: false

# UseFullRetexturing

If set, all original texcoord sets are replaced by a single new one which will be used for the mapping image. This means the output scene will be temporarily invalid before the materialtable has been updated to reflect the new changes. This flag has no effect on the remeshing, which always does a full retexturing.

# Syntax

// Setter
void SetUseFullRetexturing( bool value );

// Getter
bool GetUseFullRetexturing();

# SetUseFullRetexturing parameters

Type Name Min Max Description
bool value The desired UseFullRetexturing flag.

# GetUseFullRetexturing return value

Type: bool

Default: false

# Methods details

# GetChartAggregatorSettings

The settings for the chart aggregator.

# Syntax

spChartAggregatorSettings GetChartAggregatorSettings();

# Parameters

GetChartAggregatorSettings takes no parameters.

# Return value

Type: ChartAggregatorSettings

# GetClass

Get the name of the MappingImageSettings class.

# Syntax

spString GetClass();

# Parameters

GetClass takes no parameters.

# Return value

Type: spString

# GetErrorString

Returns a string describing the error that was found the last time ValidateSettings was performed.

# Syntax

spString GetErrorString();

# Parameters

GetErrorString takes no parameters.

# Return value

Type: spString

# GetInputMaterialSettings

Get the input material settings for the given index.

# Syntax

spMappingImageInputMaterialSettings GetInputMaterialSettings( unsigned int index );

# Parameters

Type Name Min Max Description
unsigned int index 0 SG_MAXIMUM_MAPPING_IMAGE_INPUT_MATERIAL_COUNT Input index

# Return value

Type: MappingImageInputMaterialSettings

# GetOutputMaterialSettings

Get the output material settings for the given index.

# Syntax

spMappingImageOutputMaterialSettings GetOutputMaterialSettings( unsigned int index );

# Parameters

Type Name Min Max Description
unsigned int index 0 SG_MAXIMUM_MAPPING_IMAGE_INPUT_MATERIAL_COUNT Output index

# Return value

Type: MappingImageOutputMaterialSettings

# GetParameterizerSettings

The settings for the parameterizer.

# Syntax

spParameterizerSettings GetParameterizerSettings();

# Parameters

GetParameterizerSettings takes no parameters.

# Return value

Type: ParameterizerSettings

# IsA

Returns true if MappingImageSettings is a or is a descendant of the class named as the type parameter.

# Syntax

bool IsA( const char * type );

# Parameters

Type Name Min Max Description
const char * type Name of the class to check if MappingImageSettings is, or is a descendant of.

# Return value

Type: bool

# IsNull

Returns true if the MappingImageSettings object is invalid.

# Syntax

bool IsNull();

# Parameters

IsNull takes no parameters.

# Return value

Type: bool

# ValidateSettings

Validates the current settings values.

# Syntax

bool ValidateSettings();

# Parameters

ValidateSettings takes no parameters.

# Return value

Type: bool

# Static methods details

# IsClassA

Returns true if the class is a or is a descendant of the class named as the type parameter.

# Syntax

static bool IsClassA( const char * type );

# Parameters

Type Name Min Max Description
const char * type Name of the class to check if the class is, or is a descendant of.

# Return value

Type: bool

# SafeCast

SafeCast makes sure the input object is of a class that can be cast into spMappingImageSettings, and if this is the case, returns the object cast into spMappingImageSettings.

# Syntax

static spMappingImageSettings SafeCast( spObject object );

# Parameters

Type Name Min Max Description
Object object Object to cast.

# Return value

Type: MappingImageSettings