# class ChartAggregatorSettings

Settings for the chart aggregator.

# Properties

Property Description
ChartAggregatorMode Determines which method to use when aggregating the UVs. TextureSizeProportions - Aggregated UV charts will be scaled to keep their relative pixel density relative to all other UV charts. The user can still set the size of the output texture maps. SurfaceArea - Aggregated UV charts will have their size set based on its actual geometrical size. OriginalPixelDensity - The combined atlas will be resized to fit each chart so that all charts retain the same amount of pixels as they originally had. This will override any manually set texture size. UVSizeProportions - Aggregated UV charts will have their size set based on its original UV size, disregarding the size of the texture they are used in.
LockUVRotation Only used when the TexCoordGeneratorType is ChartAggregator. If ChartAggregatorLockUVRotation is enabled, only the original UV rotation will be used. Otherwise 4 rotations are used (90 degree rotations).
OriginalChartProportionsChannel Only used when the TexCoordGeneratorType is ChartAggregator. Set ChartAggregatorKeepOriginalChartProportionsFromChannel to an SG_MATERIAL_CHANNEL_[...]. This channel determines which texture channel to look at when determining which chart proportions to keep.
OriginalTexCoordLevel Only used when the TexCoordGeneratorType is ChartAggregator. Set the texture coordinate level to get charts from. If the ChartAggregatorOriginalTexCoordName ha been set, the ChartAggregatorOriginalTexCoordLevel is not used.
OriginalTexCoordName Only used when the TexCoordGeneratorType is ChartAggregator. Set the name of the texture coordinate level to get charts from. If not set, it will use the ChartAggregatorOriginalTexCoordLevel (index) instead.
SeparateOverlappingCharts Only used when the TexCoordGeneratorType is ChartAggregator. If set, charts that are overlapping in the original texture coords will be separated.
SurfaceAreaScale If multiple UV charts overlap and have the same material, SurfaceAreaScale specifies which of those instances determines the the output scale. It is only valid when the ChartAggregatorMode is SurfaceArea and SeparateOverlappingCharts is false.

# Methods

Method Description
GetClass Get the name of the ChartAggregatorSettings class.
GetErrorString Returns a string describing the error that was found the last time ValidateSettings was performed.
IsA Returns true if ChartAggregatorSettings is a or is a descendant of the class named as the type parameter.
IsNull Returns true if the ChartAggregatorSettings 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 spChartAggregatorSettings, and if this is the case, returns the object cast into spChartAggregatorSettings.

# Properties details

# ChartAggregatorMode

Determines which method to use when aggregating the UVs. TextureSizeProportions - Aggregated UV charts will be scaled to keep their relative pixel density relative to all other UV charts. The user can still set the size of the output texture maps. SurfaceArea - Aggregated UV charts will have their size set based on its actual geometrical size. OriginalPixelDensity - The combined atlas will be resized to fit each chart so that all charts retain the same amount of pixels as they originally had. This will override any manually set texture size. UVSizeProportions - Aggregated UV charts will have their size set based on its original UV size, disregarding the size of the texture they are used in.

# Syntax

// Setter
void SetChartAggregatorMode( Simplygon::EChartAggregatorMode value );

// Getter
Simplygon::EChartAggregatorMode GetChartAggregatorMode();

# SetChartAggregatorMode parameters

Type Name Min Max Description
EChartAggregatorMode value The ChartAggregatorMode value to use.

# GetChartAggregatorMode return value

Type: EChartAggregatorMode

Default: TextureSizeProportions

Key Value Comment
TextureSizeProportions 0 Aggregated UV charts will be scaled to keep their relative pixel density relative to all other UV charts. The user can still set the size of the output texture maps.
SurfaceArea 1 Aggregated UV charts will have their size set based on its actual geometrical size.
OriginalPixelDensity 2 The combined atlas will be resized to fit each chart so that all charts retain the same amount of pixels as they originally had. This will override any manually set texture size.
UVSizeProportions 3 Aggregated UV charts will have their size set based on its original UV size, disregarding the size of the texture they are used in.

# LockUVRotation

Only used when the TexCoordGeneratorType is ChartAggregator. If ChartAggregatorLockUVRotation is enabled, only the original UV rotation will be used. Otherwise 4 rotations are used (90 degree rotations).

# Syntax

// Setter
void SetLockUVRotation( bool value );

// Getter
bool GetLockUVRotation();

# SetLockUVRotation parameters

Type Name Min Max Description
bool value The new LockUVRotation.

# GetLockUVRotation return value

Type: bool

Default: false

# OriginalChartProportionsChannel

Only used when the TexCoordGeneratorType is ChartAggregator. Set ChartAggregatorKeepOriginalChartProportionsFromChannel to an SG_MATERIAL_CHANNEL_[...]. This channel determines which texture channel to look at when determining which chart proportions to keep.

# Syntax

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

// Getter
spString GetOriginalChartProportionsChannel();

# SetOriginalChartProportionsChannel parameters

Type Name Min Max Description
const char * value The new ChartAggregatorKeepOriginalChartProportionsFromChannel value.

# GetOriginalChartProportionsChannel return value

Type: spString

Default: SG_MATERIAL_CHANNEL_DIFFUSE

# OriginalTexCoordLevel

Only used when the TexCoordGeneratorType is ChartAggregator. Set the texture coordinate level to get charts from. If the ChartAggregatorOriginalTexCoordName ha been set, the ChartAggregatorOriginalTexCoordLevel is not used.

# Syntax

// Setter
void SetOriginalTexCoordLevel( rid value );

// Getter
rid GetOriginalTexCoordLevel();

# SetOriginalTexCoordLevel parameters

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

# GetOriginalTexCoordLevel return value

Type: rid

Default: 0

# OriginalTexCoordName

Only used when the TexCoordGeneratorType is ChartAggregator. Set the name of the texture coordinate level to get charts from. If not set, it will use the ChartAggregatorOriginalTexCoordLevel (index) instead.

# Syntax

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

// Getter
spString GetOriginalTexCoordName();

# SetOriginalTexCoordName parameters

Type Name Min Max Description
const char * value The desired texture coordinate level name.

# GetOriginalTexCoordName return value

Type: spString

Default: nullptr

# SeparateOverlappingCharts

Only used when the TexCoordGeneratorType is ChartAggregator. If set, charts that are overlapping in the original texture coords will be separated.

# Syntax

// Setter
void SetSeparateOverlappingCharts( bool value );

// Getter
bool GetSeparateOverlappingCharts();

# SetSeparateOverlappingCharts parameters

Type Name Min Max Description
bool value The value to which ChartAggregatorSeparateOverlappingCharts is set.

# GetSeparateOverlappingCharts return value

Type: bool

Default: false

# SurfaceAreaScale

If multiple UV charts overlap and have the same material, SurfaceAreaScale specifies which of those instances determines the the output scale. It is only valid when the ChartAggregatorMode is SurfaceArea and SeparateOverlappingCharts is false.

# Syntax

// Setter
void SetSurfaceAreaScale( Simplygon::ESurfaceAreaScale value );

// Getter
Simplygon::ESurfaceAreaScale GetSurfaceAreaScale();

# SetSurfaceAreaScale parameters

Type Name Min Max Description
ESurfaceAreaScale value The SurfaceAreaScale value to use.

# GetSurfaceAreaScale return value

Type: ESurfaceAreaScale

Default: LargestInstance

Key Value Comment
LargestInstance 0 If multiple UV charts overlap and have the same material, the largest instance determines the output scale. It is only valid when the ChartAggregatorMode is SurfaceArea and SeparateOverlappingCharts is false.
SmallestInstance 1 If multiple UV charts overlap and have the same material, the smallest instance determines the output scale. It is only valid when the ChartAggregatorMode is SurfaceArea and SeparateOverlappingCharts is false.
Average 2 If multiple UV charts overlap and have the same material, the average of all the instances determine the output scale. It is only valid when the ChartAggregatorMode is SurfaceArea and SeparateOverlappingCharts is false.

# Methods details

# GetClass

Get the name of the ChartAggregatorSettings 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

# IsA

Returns true if ChartAggregatorSettings 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 ChartAggregatorSettings is, or is a descendant of.

# Return value

Type: bool

# IsNull

Returns true if the ChartAggregatorSettings 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 spChartAggregatorSettings, and if this is the case, returns the object cast into spChartAggregatorSettings.

# Syntax

static spChartAggregatorSettings SafeCast( spObject object );

# Parameters

Type Name Min Max Description
Object object Object to cast.

# Return value

Type: ChartAggregatorSettings