# class QuadReductionSettings

Settings for the QuadReductionProcessor class. This contains the fundamental reduction settings like stop conditions and reduction targets.

# Properties

Property Description
KeepUnprocessedSceneMeshes If false, the processor will remove all geometry and scene meshes which were not selected for processing from the scene. If true, only the geometry in the ProcessSelectionSet will be replaced or updated, while the rest of the scene tree is kept intact. New geometry is always added as the last child of the scene root. If generating a mappingimage to cast materials, new materialIds will also be appended to the end of the old material table instead of replacing the old ones.
MergeGeometries The processor will merge all the geometries in the scene into a single geometry if MergeGeometries is enabled.
Name The name of the QuadReductionSettings object. (Inherited from Object)
ProcessSelectionSetID Which selection set should be processed. If set to -1, all geometries in the scene will be processed. If both selection set name and ID are set, the name will be used.
ProcessSelectionSetName Which selection set should be processed. If the name is not found, all geometries in the scene will be processed. If both selection set name and ID are set, the name will be used.
ReductionTargetMaxDeviation The MaxDeviation value, the maximum surface-deviation between the reduced geometry and the original.
ReductionTargetMaxDeviationEnabled Enable max deviation as a reduction target. The reducer will stop when the set max deviation has been reached.
ReductionTargetOnScreenSize The OnScreenSize value, used to calculate the maximum surface-deviation allowed, by assuming errors less than 1 pixel onscreen will not be noticeable.
ReductionTargetOnScreenSizeEnabled Enable on screen size as a reduction target. The reducer will stop when the set on screen size has been reached.
ReductionTargetPolygonCount The wanted Polygon count. The range is 0->inf. Note that a pair of two triangles linked by the QuadFlags field to designate a quad counts as *one* polygon, not two.
ReductionTargetPolygonCountEnabled Enable Polygon count as a reduction target. The reducer will stop when the set Polygon count has been reached. Note that a pair of two triangles linked by the QuadFlags field to designate a quad counts as *one* polygon, not two.
ReductionTargetPolygonRatio The wanted reduction ratio. The range is 0->1. Note that a pair of two triangles linked by the QuadFlags field to designate a quad counts as *one* polygon, not two.
ReductionTargetPolygonRatioEnabled Enable Polygon ratio as a reduction target. The reducer will stop when the set Polygon-ratio has been reached. Note that a pair of two triangles linked by the QuadFlags field to designate a quad counts as *one* polygon, not two.
ReductionTargetStopCondition The stop condition for the reducer. Any -> the reducer will stop when any single one of the set reduction targets have been reached. All -> the reducer will stop when all enabled reduction targets have been reached.
UseWelding If set, vertices occupying the same position in 3D space will be welded together, creating better connectivity for quad reduction.

# Methods

Method Description
AddObserver Adds a user-defined observer object to the interface, that will receive events from the interface. (Inherited from Object)
GetBoolParameter Get a named parameter boolean value. (Inherited from SettingsObject)
GetClass Get the name of the QuadReductionSettings class. (Inherited from Object)
GetDoubleParameter Get a named parameter floating point value. (Inherited from SettingsObject)
GetErrorString Returns a string describing the error that was found the last time ValidateSettings was performed. (Inherited from SettingsObject)
GetIntParameter Get a named parameter integer value. (Inherited from SettingsObject)
GetStringParameter Get a named parameter string value. (Inherited from SettingsObject)
GetUIntParameter Get a named parameter unsigned integer value. (Inherited from SettingsObject)
IsA Returns true if QuadReductionSettings is a or is a descendant of the class named as the type parameter. (Inherited from Object)
IsNull Returns true if the QuadReductionSettings object is invalid. (Inherited from Object)
IsSameObjectAs Returns true if the QuadReductionSettings object is valid. (Inherited from Object)
NonNull Returns true if the QuadReductionSettings object is valid. (Inherited from Object)
PrintInfo Prints the content/info of the QuadReductionSettings object to the log. (Inherited from Object)
RemoveObserver Removes a previously added observer object. (Inherited from Object)
SetBoolParameter Set a named parameter boolean value. (Inherited from SettingsObject)
SetDoubleParameter Set a named parameter floating point value. (Inherited from SettingsObject)
SetIntParameter Set a named parameter integer value. (Inherited from SettingsObject)
SetReductionTargets Set reduction targets and stop condition used in the reduction.
SetStringParameter Set a named parameter string value. (Inherited from SettingsObject)
SetUIntParameter Set a named parameter unsigned integer value. (Inherited from SettingsObject)
SetValidateParameterNames Set if parameter names should be validated or not. Parameters that previously do not exist will generate and error if validation is enabled and be allowed if validation is disabled. (Inherited from SettingsObject)
ToJSON Get settings as JSON for debugging purposes. (Inherited from SettingsObject)
ValidateSettings Validates the current settings values. (Inherited from SettingsObject)

# Static methods

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

# Properties details

# KeepUnprocessedSceneMeshes

If false, the processor will remove all geometry and scene meshes which were not selected for processing from the scene. If true, only the geometry in the ProcessSelectionSet will be replaced or updated, while the rest of the scene tree is kept intact. New geometry is always added as the last child of the scene root. If generating a mappingimage to cast materials, new materialIds will also be appended to the end of the old material table instead of replacing the old ones.

# Syntax

// Setter
void SetKeepUnprocessedSceneMeshes( bool value ) const;

// Getter
bool GetKeepUnprocessedSceneMeshes() const;

# SetKeepUnprocessedSceneMeshes parameters

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

# GetKeepUnprocessedSceneMeshes return value

Type: bool

Default: false

# MergeGeometries

The processor will merge all the geometries in the scene into a single geometry if MergeGeometries is enabled.

# Syntax

// Setter
void SetMergeGeometries( bool value ) const;

// Getter
bool GetMergeGeometries() const;

# SetMergeGeometries parameters

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

# GetMergeGeometries return value

Type: bool

Default: false

# Name

The name of the QuadReductionSettings object. (Inherited from Object)

# Syntax

// Setter
void SetName( const char * name ) const;

// Getter
spString GetName() const;

# SetName parameters

Type Name Min Max Description
const char * name New name of the object.

# GetName return value

Type: spString

# ProcessSelectionSetID

Which selection set should be processed. If set to -1, all geometries in the scene will be processed. If both selection set name and ID are set, the name will be used.

# Syntax

// Setter
void SetProcessSelectionSetID( rid value ) const;

// Getter
rid GetProcessSelectionSetID() const;

# SetProcessSelectionSetID parameters

Type Name Min Max Description
rid value -1 The desired SelectionSet id.

# GetProcessSelectionSetID return value

Type: rid

Default: -1

# ProcessSelectionSetName

Which selection set should be processed. If the name is not found, all geometries in the scene will be processed. If both selection set name and ID are set, the name will be used.

# Syntax

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

// Getter
spString GetProcessSelectionSetName() const;

# SetProcessSelectionSetName parameters

Type Name Min Max Description
const char * value The desired SelectionSet name.

# GetProcessSelectionSetName return value

Type: spString

Default: nullptr

# ReductionTargetMaxDeviation

The MaxDeviation value, the maximum surface-deviation between the reduced geometry and the original.

# Syntax

// Setter
void SetReductionTargetMaxDeviation( real value ) const;

// Getter
real GetReductionTargetMaxDeviation() const;

# SetReductionTargetMaxDeviation parameters

Type Name Min Max Description
real value 0 REAL_MAX The value to which MaxDeviation will be set.

# GetReductionTargetMaxDeviation return value

Type: real

Default: 1

# ReductionTargetMaxDeviationEnabled

Enable max deviation as a reduction target. The reducer will stop when the set max deviation has been reached.

# Syntax

// Setter
void SetReductionTargetMaxDeviationEnabled( bool value ) const;

// Getter
bool GetReductionTargetMaxDeviationEnabled() const;

# SetReductionTargetMaxDeviationEnabled parameters

Type Name Min Max Description
bool value Value to set if max deviation should be used in the reduction.

# GetReductionTargetMaxDeviationEnabled return value

Type: bool

Default: false

# ReductionTargetOnScreenSize

The OnScreenSize value, used to calculate the maximum surface-deviation allowed, by assuming errors less than 1 pixel onscreen will not be noticeable.

# Syntax

// Setter
void SetReductionTargetOnScreenSize( unsigned int value ) const;

// Getter
unsigned int GetReductionTargetOnScreenSize() const;

# SetReductionTargetOnScreenSize parameters

Type Name Min Max Description
unsigned int value 20 100000 The value to which OnScreenSize will be set.

# GetReductionTargetOnScreenSize return value

Type: unsigned int

Default: 300

# ReductionTargetOnScreenSizeEnabled

Enable on screen size as a reduction target. The reducer will stop when the set on screen size has been reached.

# Syntax

// Setter
void SetReductionTargetOnScreenSizeEnabled( bool value ) const;

// Getter
bool GetReductionTargetOnScreenSizeEnabled() const;

# SetReductionTargetOnScreenSizeEnabled parameters

Type Name Min Max Description
bool value Value to set if on screen size should be used in the reduction.

# GetReductionTargetOnScreenSizeEnabled return value

Type: bool

Default: false

# ReductionTargetPolygonCount

The wanted Polygon count. The range is 0->inf. Note that a pair of two triangles linked by the QuadFlags field to designate a quad counts as *one* polygon, not two.

# Syntax

// Setter
void SetReductionTargetPolygonCount( unsigned int value ) const;

// Getter
unsigned int GetReductionTargetPolygonCount() const;

# SetReductionTargetPolygonCount parameters

Type Name Min Max Description
unsigned int value 0 UINT_MAX The value to which PolygonCount will be set.

# GetReductionTargetPolygonCount return value

Type: unsigned int

Default: 10000

# ReductionTargetPolygonCountEnabled

Enable Polygon count as a reduction target. The reducer will stop when the set Polygon count has been reached. Note that a pair of two triangles linked by the QuadFlags field to designate a quad counts as *one* polygon, not two.

# Syntax

// Setter
void SetReductionTargetPolygonCountEnabled( bool value ) const;

// Getter
bool GetReductionTargetPolygonCountEnabled() const;

# SetReductionTargetPolygonCountEnabled parameters

Type Name Min Max Description
bool value Value to set if Polygon count should be used in the reduction.

# GetReductionTargetPolygonCountEnabled return value

Type: bool

Default: false

# ReductionTargetPolygonRatio

The wanted reduction ratio. The range is 0->1. Note that a pair of two triangles linked by the QuadFlags field to designate a quad counts as *one* polygon, not two.

# Syntax

// Setter
void SetReductionTargetPolygonRatio( real value ) const;

// Getter
real GetReductionTargetPolygonRatio() const;

# SetReductionTargetPolygonRatio parameters

Type Name Min Max Description
real value 0 1 The value to which ReductionRatio will be set.

# GetReductionTargetPolygonRatio return value

Type: real

Default: 0.5

# ReductionTargetPolygonRatioEnabled

Enable Polygon ratio as a reduction target. The reducer will stop when the set Polygon-ratio has been reached. Note that a pair of two triangles linked by the QuadFlags field to designate a quad counts as *one* polygon, not two.

# Syntax

// Setter
void SetReductionTargetPolygonRatioEnabled( bool value ) const;

// Getter
bool GetReductionTargetPolygonRatioEnabled() const;

# SetReductionTargetPolygonRatioEnabled parameters

Type Name Min Max Description
bool value Value to set if Polygon ratio should be used in the reduction.

# GetReductionTargetPolygonRatioEnabled return value

Type: bool

Default: true

# ReductionTargetStopCondition

The stop condition for the reducer. Any -> the reducer will stop when any single one of the set reduction targets have been reached. All -> the reducer will stop when all enabled reduction targets have been reached.

# Syntax

// Setter
void SetReductionTargetStopCondition( Simplygon::EStopCondition value ) const;

// Getter
Simplygon::EStopCondition GetReductionTargetStopCondition() const;

# SetReductionTargetStopCondition parameters

Type Name Min Max Description
EStopCondition value The flag to which StopCondition will be set.

# GetReductionTargetStopCondition return value

Type: EStopCondition

Default: All

Key Value Comment
Any 0 Simplygon will stop as soon as one of the reduction targets has been fulfilled.
All 1 Simplygon will continue processing until all of the reduction targets have been fulfilled.

# UseWelding

If set, vertices occupying the same position in 3D space will be welded together, creating better connectivity for quad reduction.

# Syntax

// Setter
void SetUseWelding( bool value ) const;

// Getter
bool GetUseWelding() const;

# SetUseWelding parameters

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

# GetUseWelding return value

Type: bool

Default: true

# Methods details

# AddObserver

Adds a user-defined observer object to the interface, that will receive events from the interface. (Inherited from Object)

# Syntax

rid AddObserver( const spObserver & observer ) const;

# Parameters

Type Name Min Max Description
Observer observer Observer is the object that will receive events.

# Return value

Type: rid

# GetBoolParameter

Get a named parameter boolean value.

# Syntax

bool GetBoolParameter( const char * name ) const;

# Parameters

Type Name Min Max Description
const char * name Parameter name.

# Return value

Type: bool

# GetClass

Get the name of the QuadReductionSettings class. (Inherited from Object)

# Syntax

spString GetClass() const;

# Parameters

GetClass takes no parameters.

# Return value

Type: spString

# GetDoubleParameter

Get a named parameter floating point value.

# Syntax

double GetDoubleParameter( const char * name ) const;

# Parameters

Type Name Min Max Description
const char * name Parameter name.

# Return value

Type: double

# GetErrorString

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

# Syntax

spString GetErrorString() const;

# Parameters

GetErrorString takes no parameters.

# Return value

Type: spString

# GetIntParameter

Get a named parameter integer value.

# Syntax

int GetIntParameter( const char * name ) const;

# Parameters

Type Name Min Max Description
const char * name Parameter name.

# Return value

Type: int

# GetStringParameter

Get a named parameter string value.

# Syntax

spString GetStringParameter( const char * name ) const;

# Parameters

Type Name Min Max Description
const char * name Parameter name.

# Return value

Type: spString

# GetUIntParameter

Get a named parameter unsigned integer value.

# Syntax

unsigned int GetUIntParameter( const char * name ) const;

# Parameters

Type Name Min Max Description
const char * name Parameter name.

# Return value

Type: unsigned int

# IsA

Returns true if QuadReductionSettings is a or is a descendant of the class named as the type parameter. (Inherited from Object)

# Syntax

bool IsA( const char * type ) const;

# Parameters

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

# Return value

Type: bool

# IsNull

Returns true if the QuadReductionSettings object is invalid. (Inherited from Object)

# Syntax

bool IsNull() const;

# Parameters

IsNull takes no parameters.

# Return value

Type: bool

# IsSameObjectAs

Returns true if the QuadReductionSettings object is valid. (Inherited from Object)

# Syntax

bool IsSameObjectAs( const spObject & object ) const;

# Parameters

Type Name Min Max Description
Object object Object to compare with.

# Return value

Type: bool

# NonNull

Returns true if the QuadReductionSettings object is valid. (Inherited from Object)

# Syntax

bool NonNull() const;

# Parameters

NonNull takes no parameters.

# Return value

Type: bool

# PrintInfo

Prints the content/info of the QuadReductionSettings object to the log. (Inherited from Object)

# Syntax

void PrintInfo() const;

# Parameters

PrintInfo takes no parameters.

# RemoveObserver

Removes a previously added observer object. (Inherited from Object)

# Syntax

void RemoveObserver( rid observerId ) const;

# Parameters

Type Name Min Max Description
rid observerId ObserverId is the id returned by AddObserver when the observer was added.

# SetBoolParameter

Set a named parameter boolean value.

# Syntax

bool SetBoolParameter( const char * name , bool value ) const;

# Parameters

Type Name Min Max Description
const char * name Parameter name.
bool value New value for parameter.

# Return value

Type: bool

# SetDoubleParameter

Set a named parameter floating point value.

# Syntax

bool SetDoubleParameter( const char * name , double value ) const;

# Parameters

Type Name Min Max Description
const char * name Parameter name.
double value New value for parameter.

# Return value

Type: bool

# SetIntParameter

Set a named parameter integer value.

# Syntax

bool SetIntParameter( const char * name , int value ) const;

# Parameters

Type Name Min Max Description
const char * name Parameter name.
int value New value for parameter.

# Return value

Type: bool

# SetReductionTargets

Set reduction targets and stop condition used in the reduction.

# Syntax

void SetReductionTargets( Simplygon::EStopCondition stopCondition , bool usePolygonRatio , bool usePolygonCount , bool useMaxDeviation , bool useOnScreenSize ) const;

# Parameters

Type Name Min Max Description
EStopCondition stopCondition The value to which ReductionTargetStopCondition will be set.
bool usePolygonRatio The value to which ReductionTargetPolygonRatioEnabled will be set.
bool usePolygonCount The value to which ReductionTargetPolygonCountEnabled will be set.
bool useMaxDeviation The value to which ReductionTargetMaxDeviationEnabled will be set.
bool useOnScreenSize The value to which ReductionTargetOnScreenSizeEnabled will be set.

# SetStringParameter

Set a named parameter string value.

# Syntax

bool SetStringParameter( const char * name , const char * value ) const;

# Parameters

Type Name Min Max Description
const char * name Parameter name.
const char * value New value for parameter.

# Return value

Type: bool

# SetUIntParameter

Set a named parameter unsigned integer value.

# Syntax

bool SetUIntParameter( const char * name , unsigned int value ) const;

# Parameters

Type Name Min Max Description
const char * name Parameter name.
unsigned int value New value for parameter.

# Return value

Type: bool

# SetValidateParameterNames

Set if parameter names should be validated or not. Parameters that previously do not exist will generate and error if validation is enabled and be allowed if validation is disabled.

# Syntax

void SetValidateParameterNames( bool validate ) const;

# Parameters

Type Name Min Max Description
bool validate Flag indicating if validation is performed or not.

# ToJSON

Get settings as JSON for debugging purposes.

# Syntax

spString ToJSON() const;

# Parameters

ToJSON takes no parameters.

# Return value

Type: spString

# ValidateSettings

Validates the current settings values.

# Syntax

bool ValidateSettings() const;

# 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. (Inherited from Object)

# Syntax

static bool IsClassA( const char * type ) const;

# 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 spQuadReductionSettings, and if this is the case, returns the object cast into spQuadReductionSettings. (Inherited from Object)

# Syntax

static spQuadReductionSettings SafeCast( const spObject & object ) const;

# Parameters

Type Name Min Max Description
Object object Object to cast.

# Return value

Type: QuadReductionSettings