class
ReductionSettings
Settings for the ReductionProcessor class. Handles all the settings for Simplygons simplification algorithms. The user can tell the reduction processor which features are important by using the 'FeatureFlags' parameter, and also the relative importance of these features using the Set{feature}Importance methods. Also settings for things like symmetry are set here.
Properties
Property | Description |
AllowDegenerateTexCoords | The AllowDegenerateTexCoords flag. If true, texture coordinates are allowed to become degenerate (triangles can have 0 area in texture space). This may sometimes look better, but if tangent space normals are used, tangent spaces may become degenerate. |
CreateGeomorphGeometry | The CreateGeomorphGeometry value. If set, the reducer will create a GeometryData object that is a morphed version of the original GeometryData, that can be used to morph between the original geometry and the reduced geometry. Should not be used together with TJunctionRemover, NormalRecalculation or Material LOD. |
CurvatureImportance | The importance value of the relevant feature, meaning the relative importance of the specific mesh feature (or disabling an importance entirely by setting it to 0.0). A higher number means higher importance. |
DataCreationPreferences | The flag that specifies how big "freedom" Simplygon has when it comes to altering vertex/triangle data. Allowing more altered data means it will be easier to create good looking LODs, but without altered data it will be easier to keep the memory-usage in the LOD-chain more optimized. Note: When using OnlyUseOriginalData, the geometry being reduced can not have a node transformation matrix other than the identity matrix. |
EdgeSetImportance | The importance value of the relevant feature, meaning the relative importance of the specific mesh feature (or disabling an importance entirely by setting it to 0.0). A higher number means higher importance. |
GenerateGeomorphData | The flag for if the reduction process should store geomorph data in the processed GeometryData object. This data is an array with same size as the vertexcount was before the reduction process, and will have the coordinates for each vertex on its corresponding position on the reduced GeometryData surface. Can be used to give smooth transition from a highlevel LOD to a lowlevel LOD. This array can be accessed with the GeometryData custom field "SgMappedVertexCoords". |
GeometryImportance | The importance value of the relevant feature, meaning the relative importance of the specific mesh feature (or disabling an importance entirely by setting it to 0). A higher number means higher importance. |
GroupImportance | The importance value of the relevant feature, meaning the relative importance of the specific mesh feature (or disabling an importance entirely by setting it to 0). A higher number means higher importance. |
InwardMoveMultiplier | The inward move multiplier, how much the mesh is allowed to shrink its silhouette perimeter. |
KeepSymmetry | The KeepSymmetry flag. If set, the reducer will detect symmetric features, and retain symmetry during processing. Please note that for a geometry to be considered symmetrical, also the texture coordinates must be mirrored. |
LockGeometricBorder | If set, will lock the geometric border of the geometry, and not reduce at all. This setting might be useful if the geometry needs to fit a neighbor geometry, but will reduce overall reduction quality (geometric quality over reduction ratio) |
MaterialImportance | The importance value of the relevant feature, meaning the relative importance of the specific mesh feature (or disabling an importance entirely by setting it to 0). A higher number means higher importance. |
MaxEdgeLength | The maximum length of the triangles edges after reduction. Can be used to limit output triangle size. |
MergeGeometries | The processor will merge all the geometries in the scene into a single geometry if MergeGeometries is enabled. |
OutwardMoveMultiplier | The outward move multiplier, how much the mesh is allowed to grow its silhouette perimeter. |
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. |
ReductionHeuristics | The flag that decides how precise the reducer will be during the mesh reduction. Fast -> Reducer will be faster, but onscreensize and trianglecount will not match perfectly. Consistent -> Reducer will be slower, but onscreensize and trianglecount will consistently give matching results. |
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 noticable. |
ReductionTargetOnScreenSizeEnabled | Enable on screen size as a reduction target. The reducer will stop when the set on screen size has been reached. |
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 set. |
ReductionTargetTriangleCount | The wanted triangle count. The range is 0->inf. |
ReductionTargetTriangleCountEnabled | Enable triangle count as a reduction target. The reducer will stop when the set triangle count has been reached. |
ReductionTargetTriangleRatio | The wanted reduction ratio. The range is 0->1. |
ReductionTargetTriangleRatioEnabled | Enable triangle ratio as a reduction target. The reducer will stop when the set triangle-ratio has been reached. |
ShadingImportance | The importance value of the relevant feature, meaning the relative importance of the specific mesh feature (or disabling an importance entirely by setting it to 0). A higher number means higher importance. |
SkinningImportance | The importance value of the relevant feature, meaning the relative importance of the specific mesh feature (or disabling an importance entirely by setting it to 0.0). A higher number means higher importance. |
SymmetryAxis | Set what axis to be used for symmetry calculations. |
SymmetryDetectionTolerance | The tolerance used when detecting symmetry. Values in the ranges 1e-5 to 1e-3 will usually produce good results. This specific tolerance corresponds to the off-plane tolerance, ie. the tolerance of the coordinate components that are not the symmetry axis. The in-plane tolerance is always 10 times the off-plane tolerance. This value is relative to the size of the Geometry, so 0.01 would mean 1% of the bounding box size of the Geometry. |
SymmetryOffset | Set SymmetryOffset, the position on the symmetry axis where the symmetry plane is placed. |
TextureImportance | The importance value of the relevant feature, meaning the relative importance of the specific mesh feature (or disabling an importance entirely by setting it to 0). A higher number means higher importance. |
UseAutomaticSymmetryDetection | The AutomaticSymmetryDetection flag. If set, and KeepSymmetry is on, the reducer will detect any X,Y,Z symmetry plane and will override any user set symmetry plane with the detected one. If no symmetry is found, KeepSymmetry will be turned off before reduction. |
UseHighQualityNormalCalculation | Set to true and the reducer will do a much more precise way of calculating the vertex normals. It will however be slower. Set to false and it will do a much more rough estimation of what the vertex normals will look like, but faster. |
UseSymmetryQuadRetriangulator | The UseSymmetryQuadRetriangulator flag. If true, and KeepSymmetry is on, any triangles that have been triangulated from symmetrical quads into unsymmetrical triangles are detected and fixed. The edges of said triangles are flipped across the old quad so that the mesh becomes symmetrical again. |
VertexColorImportance | The importance value of the relevant feature, meaning the relative importance of the specific mesh feature (or disabling an importance entirely by setting it to 0). A higher number means higher importance. |
Methods
Method | Description |
GetClass | Get the name of the ReductionSettings class. |
GetErrorString | Returns a string describing the error that was found the last time ValidateSettings was performed. |
IsA | Returns true if ReductionSettings is a or is a descendant of the class named as the type parameter. |
IsNull | Returns true if the ReductionSettings object is invalid. |
SetReductionTargets | Set reduction targets and stop condition used in the reduction. |
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 spReductionSettings, and if this is the case, returns the object cast into spReductionSettings. |
Properties details
AllowDegenerateTexCoords
The AllowDegenerateTexCoords flag. If true, texture coordinates are allowed to become degenerate (triangles can have 0 area in texture space). This may sometimes look better, but if tangent space normals are used, tangent spaces may become degenerate.
Syntax
SetAllowDegenerateTexCoords parameters
Type | Name | Min | Max | Description |
bool | value | | | The bool to which AllowDegenerateTexCoords will be set. |
GetAllowDegenerateTexCoords return value
Type: bool
Default: true
Syntax
SetAllowDegenerateTexCoords parameters
Type | Name | Min | Max | Description |
bool | value | | | The bool to which AllowDegenerateTexCoords will be set. |
GetAllowDegenerateTexCoords return value
Type: bool
Default: true
Syntax
SetAllowDegenerateTexCoords parameters
Name | Type | Min | Max | Description |
value | bool | | | The bool to which AllowDegenerateTexCoords will be set. |
GetAllowDegenerateTexCoords return value
Type: bool
Default: true
CreateGeomorphGeometry
The CreateGeomorphGeometry value. If set, the reducer will create a GeometryData object that is a morphed version of the original GeometryData, that can be used to morph between the original geometry and the reduced geometry. Should not be used together with TJunctionRemover, NormalRecalculation or Material LOD.
Syntax
SetCreateGeomorphGeometry parameters
Type | Name | Min | Max | Description |
bool | value | | | The bool to which CreateGeomorphGeometry will be set. |
GetCreateGeomorphGeometry return value
Type: bool
Default: false
Syntax
SetCreateGeomorphGeometry parameters
Type | Name | Min | Max | Description |
bool | value | | | The bool to which CreateGeomorphGeometry will be set. |
GetCreateGeomorphGeometry return value
Type: bool
Default: false
Syntax
SetCreateGeomorphGeometry parameters
Name | Type | Min | Max | Description |
value | bool | | | The bool to which CreateGeomorphGeometry will be set. |
GetCreateGeomorphGeometry return value
Type: bool
Default: false
CurvatureImportance
The importance value of the relevant feature, meaning the relative importance of the specific mesh feature (or disabling an importance entirely by setting it to 0.0). A higher number means higher importance.
Syntax
SetCurvatureImportance parameters
Type | Name | Min | Max | Description |
real | value | 0 | SG_MAXIMUM_IMPORTANCE_VALUE | The value to which the importance will be set. |
GetCurvatureImportance return value
Type: real
Default: 1
Syntax
SetCurvatureImportance parameters
Type | Name | Min | Max | Description |
float | value | 0 | SG_MAXIMUM_IMPORTANCE_VALUE | The value to which the importance will be set. |
GetCurvatureImportance return value
Type: float
Default: 1
Syntax
SetCurvatureImportance parameters
Name | Type | Min | Max | Description |
value | float | 0 | SG_MAXIMUM_IMPORTANCE_VALUE | The value to which the importance will be set. |
GetCurvatureImportance return value
Type: float
Default: 1
DataCreationPreferences
The flag that specifies how big "freedom" Simplygon has when it comes to altering vertex/triangle data. Allowing more altered data means it will be easier to create good looking LODs, but without altered data it will be easier to keep the memory-usage in the LOD-chain more optimized. Note: When using OnlyUseOriginalData, the geometry being reduced can not have a node transformation matrix other than the identity matrix.
Syntax
SetDataCreationPreferences parameters
Type | Name | Min | Max | Description |
EDataCreationPreferences | value | | | The value to which the DataCreationPreferences flag will be set. |
GetDataCreationPreferences return value
Type: EDataCreationPreferences
Default: PreferOptimizedResult
Key | Value | Comment |
OnlyUseOriginalData | 0 | Vertex and Corner data such as coordinates and normals will be completely re-used from the original Scene. |
PreferOriginalData | 1 | Vertex coordinates will remaining as they were in the original Scene, but corner normals might be changed if Simplygon decided it will look better. |
PreferOptimizedResult | 2 | Both vertex coordinates and corner normals will be altered to make the optimized Scene look as good as possible. |
Syntax
SetDataCreationPreferences parameters
Type | Name | Min | Max | Description |
EDataCreationPreferences | value | | | The value to which the DataCreationPreferences flag will be set. |
GetDataCreationPreferences return value
Type: ``````
Default: PreferOptimizedResult
Key | Value | Comment |
OnlyUseOriginalData | 0 | Vertex and Corner data such as coordinates and normals will be completely re-used from the original Scene. |
PreferOriginalData | 1 | Vertex coordinates will remaining as they were in the original Scene, but corner normals might be changed if Simplygon decided it will look better. |
PreferOptimizedResult | 2 | Both vertex coordinates and corner normals will be altered to make the optimized Scene look as good as possible. |
Syntax
SetDataCreationPreferences parameters
Name | Type | Min | Max | Description |
value | EDataCreationPreferences | | | The value to which the DataCreationPreferences flag will be set. |
GetDataCreationPreferences return value
Type: EDataCreationPreferences
Default: PreferOptimizedResult
Key | Value | Comment |
EDataCreationPreferences_OnlyUseOriginalData | 0 | Vertex and Corner data such as coordinates and normals will be completely re-used from the original Scene. |
EDataCreationPreferences_PreferOriginalData | 1 | Vertex coordinates will remaining as they were in the original Scene, but corner normals might be changed if Simplygon decided it will look better. |
EDataCreationPreferences_PreferOptimizedResult | 2 | Both vertex coordinates and corner normals will be altered to make the optimized Scene look as good as possible. |
EdgeSetImportance
The importance value of the relevant feature, meaning the relative importance of the specific mesh feature (or disabling an importance entirely by setting it to 0.0). A higher number means higher importance.
Syntax
SetEdgeSetImportance parameters
Type | Name | Min | Max | Description |
real | value | 0 | SG_MAXIMUM_IMPORTANCE_VALUE | The value to which the importance will be set. |
GetEdgeSetImportance return value
Type: real
Default: 1
Syntax
SetEdgeSetImportance parameters
Type | Name | Min | Max | Description |
float | value | 0 | SG_MAXIMUM_IMPORTANCE_VALUE | The value to which the importance will be set. |
GetEdgeSetImportance return value
Type: float
Default: 1
Syntax
SetEdgeSetImportance parameters
Name | Type | Min | Max | Description |
value | float | 0 | SG_MAXIMUM_IMPORTANCE_VALUE | The value to which the importance will be set. |
GetEdgeSetImportance return value
Type: float
Default: 1
GenerateGeomorphData
The flag for if the reduction process should store geomorph data in the processed GeometryData object. This data is an array with same size as the vertexcount was before the reduction process, and will have the coordinates for each vertex on its corresponding position on the reduced GeometryData surface. Can be used to give smooth transition from a highlevel LOD to a lowlevel LOD. This array can be accessed with the GeometryData custom field "SgMappedVertexCoords".
Syntax
SetGenerateGeomorphData parameters
Type | Name | Min | Max | Description |
bool | value | | | The bool to which GenerateGeomorphData will be set. |
GetGenerateGeomorphData return value
Type: bool
Default: false
Syntax
SetGenerateGeomorphData parameters
Type | Name | Min | Max | Description |
bool | value | | | The bool to which GenerateGeomorphData will be set. |
GetGenerateGeomorphData return value
Type: bool
Default: false
Syntax
SetGenerateGeomorphData parameters
Name | Type | Min | Max | Description |
value | bool | | | The bool to which GenerateGeomorphData will be set. |
GetGenerateGeomorphData return value
Type: bool
Default: false
GeometryImportance
The importance value of the relevant feature, meaning the relative importance of the specific mesh feature (or disabling an importance entirely by setting it to 0). A higher number means higher importance.
Syntax
SetGeometryImportance parameters
Type | Name | Min | Max | Description |
real | value | 0 | SG_MAXIMUM_IMPORTANCE_VALUE | The value to which the importance will be set. |
GetGeometryImportance return value
Type: real
Default: 1
Syntax
SetGeometryImportance parameters
Type | Name | Min | Max | Description |
float | value | 0 | SG_MAXIMUM_IMPORTANCE_VALUE | The value to which the importance will be set. |
GetGeometryImportance return value
Type: float
Default: 1
Syntax
SetGeometryImportance parameters
Name | Type | Min | Max | Description |
value | float | 0 | SG_MAXIMUM_IMPORTANCE_VALUE | The value to which the importance will be set. |
GetGeometryImportance return value
Type: float
Default: 1
GroupImportance
The importance value of the relevant feature, meaning the relative importance of the specific mesh feature (or disabling an importance entirely by setting it to 0). A higher number means higher importance.
Syntax
SetGroupImportance parameters
Type | Name | Min | Max | Description |
real | value | 0 | SG_MAXIMUM_IMPORTANCE_VALUE | The value to which the importance will be set. |
GetGroupImportance return value
Type: real
Default: 1
Syntax
SetGroupImportance parameters
Type | Name | Min | Max | Description |
float | value | 0 | SG_MAXIMUM_IMPORTANCE_VALUE | The value to which the importance will be set. |
GetGroupImportance return value
Type: float
Default: 1
Syntax
SetGroupImportance parameters
Name | Type | Min | Max | Description |
value | float | 0 | SG_MAXIMUM_IMPORTANCE_VALUE | The value to which the importance will be set. |
GetGroupImportance return value
Type: float
Default: 1
InwardMoveMultiplier
The inward move multiplier, how much the mesh is allowed to shrink its silhouette perimeter.
Syntax
SetInwardMoveMultiplier parameters
Type | Name | Min | Max | Description |
real | value | 0 | REAL_MAX | The value to which InwardMoveMultiplier will be set. |
GetInwardMoveMultiplier return value
Type: real
Default: 1.0
Syntax
SetInwardMoveMultiplier parameters
Type | Name | Min | Max | Description |
float | value | 0 | REAL_MAX | The value to which InwardMoveMultiplier will be set. |
GetInwardMoveMultiplier return value
Type: float
Default: 1.0
Syntax
SetInwardMoveMultiplier parameters
Name | Type | Min | Max | Description |
value | float | 0 | REAL_MAX | The value to which InwardMoveMultiplier will be set. |
GetInwardMoveMultiplier return value
Type: float
Default: 1.0
KeepSymmetry
The KeepSymmetry flag. If set, the reducer will detect symmetric features, and retain symmetry during processing. Please note that for a geometry to be considered symmetrical, also the texture coordinates must be mirrored.
Syntax
SetKeepSymmetry parameters
Type | Name | Min | Max | Description |
bool | value | | | The bool to which KeepSymmetry will be set. |
GetKeepSymmetry return value
Type: bool
Default: false
Syntax
SetKeepSymmetry parameters
Type | Name | Min | Max | Description |
bool | value | | | The bool to which KeepSymmetry will be set. |
GetKeepSymmetry return value
Type: bool
Default: false
Syntax
SetKeepSymmetry parameters
Name | Type | Min | Max | Description |
value | bool | | | The bool to which KeepSymmetry will be set. |
GetKeepSymmetry return value
Type: bool
Default: false
LockGeometricBorder
If set, will lock the geometric border of the geometry, and not reduce at all. This setting might be useful if the geometry needs to fit a neighbor geometry, but will reduce overall reduction quality (geometric quality over reduction ratio)
Syntax
SetLockGeometricBorder parameters
Type | Name | Min | Max | Description |
bool | value | | | The desired LockGeometricBorder flag. |
GetLockGeometricBorder return value
Type: bool
Default: false
Syntax
SetLockGeometricBorder parameters
Type | Name | Min | Max | Description |
bool | value | | | The desired LockGeometricBorder flag. |
GetLockGeometricBorder return value
Type: bool
Default: false
Syntax
SetLockGeometricBorder parameters
Name | Type | Min | Max | Description |
value | bool | | | The desired LockGeometricBorder flag. |
GetLockGeometricBorder return value
Type: bool
Default: false
MaterialImportance
The importance value of the relevant feature, meaning the relative importance of the specific mesh feature (or disabling an importance entirely by setting it to 0). A higher number means higher importance.
Syntax
SetMaterialImportance parameters
Type | Name | Min | Max | Description |
real | value | 0 | SG_MAXIMUM_IMPORTANCE_VALUE | The value to which the importance will be set. |
GetMaterialImportance return value
Type: real
Default: 1
Syntax
SetMaterialImportance parameters
Type | Name | Min | Max | Description |
float | value | 0 | SG_MAXIMUM_IMPORTANCE_VALUE | The value to which the importance will be set. |
GetMaterialImportance return value
Type: float
Default: 1
Syntax
SetMaterialImportance parameters
Name | Type | Min | Max | Description |
value | float | 0 | SG_MAXIMUM_IMPORTANCE_VALUE | The value to which the importance will be set. |
GetMaterialImportance return value
Type: float
Default: 1
MaxEdgeLength
The maximum length of the triangles edges after reduction. Can be used to limit output triangle size.
Syntax
SetMaxEdgeLength parameters
Type | Name | Min | Max | Description |
real | value | 0 | REAL_MAX | The new value of MaxEdgeLength. |
GetMaxEdgeLength return value
Type: real
Default: REAL_MAX
Syntax
SetMaxEdgeLength parameters
Type | Name | Min | Max | Description |
float | value | 0 | REAL_MAX | The new value of MaxEdgeLength. |
GetMaxEdgeLength return value
Type: float
Default: REAL_MAX
Syntax
SetMaxEdgeLength parameters
Name | Type | Min | Max | Description |
value | float | 0 | REAL_MAX | The new value of MaxEdgeLength. |
GetMaxEdgeLength return value
Type: float
Default: REAL_MAX
MergeGeometries
The processor will merge all the geometries in the scene into a single geometry if MergeGeometries is enabled.
Syntax
SetMergeGeometries parameters
Type | Name | Min | Max | Description |
bool | value | | | The desired MergeGeometries flag. |
GetMergeGeometries return value
Type: bool
Default: false
Syntax
SetMergeGeometries parameters
Type | Name | Min | Max | Description |
bool | value | | | The desired MergeGeometries flag. |
GetMergeGeometries return value
Type: bool
Default: false
Syntax
SetMergeGeometries parameters
Name | Type | Min | Max | Description |
value | bool | | | The desired MergeGeometries flag. |
GetMergeGeometries return value
Type: bool
Default: false
OutwardMoveMultiplier
The outward move multiplier, how much the mesh is allowed to grow its silhouette perimeter.
Syntax
SetOutwardMoveMultiplier parameters
Type | Name | Min | Max | Description |
real | value | 0 | REAL_MAX | The value to which OutwardMoveMultiplier will be set. |
GetOutwardMoveMultiplier return value
Type: real
Default: 1.0
Syntax
SetOutwardMoveMultiplier parameters
Type | Name | Min | Max | Description |
float | value | 0 | REAL_MAX | The value to which OutwardMoveMultiplier will be set. |
GetOutwardMoveMultiplier return value
Type: float
Default: 1.0
Syntax
SetOutwardMoveMultiplier parameters
Name | Type | Min | Max | Description |
value | float | 0 | REAL_MAX | The value to which OutwardMoveMultiplier will be set. |
GetOutwardMoveMultiplier return value
Type: float
Default: 1.0
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
SetProcessSelectionSetID parameters
Type | Name | Min | Max | Description |
rid | value | -1 | | The desired SelectionSet id. |
GetProcessSelectionSetID return value
Type: rid
Default: -1
Syntax
SetProcessSelectionSetID parameters
Type | Name | Min | Max | Description |
rid | value | -1 | | The desired SelectionSet id. |
GetProcessSelectionSetID return value
Type: rid
Default: -1
Syntax
SetProcessSelectionSetID parameters
Name | Type | Min | Max | Description |
value | int | -1 | | The desired SelectionSet id. |
GetProcessSelectionSetID return value
Type: int
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
SetProcessSelectionSetName parameters
Type | Name | Min | Max | Description |
const char * | value | | | The desired SelectionSet name. |
GetProcessSelectionSetName return value
Type: spString
Default: nullptr
Syntax
SetProcessSelectionSetName parameters
Type | Name | Min | Max | Description |
string | value | | | The desired SelectionSet name. |
GetProcessSelectionSetName return value
Type: string
Default: null
Syntax
SetProcessSelectionSetName parameters
Name | Type | Min | Max | Description |
value | str | | | The desired SelectionSet name. |
GetProcessSelectionSetName return value
Type: str
Default: None
ReductionHeuristics
The flag that decides how precise the reducer will be during the mesh reduction. Fast -> Reducer will be faster, but onscreensize and trianglecount will not match perfectly. Consistent -> Reducer will be slower, but onscreensize and trianglecount will consistently give matching results.
Syntax
SetReductionHeuristics parameters
GetReductionHeuristics return value
Type: EReductionHeuristics
Default: Fast
Key | Value | Comment |
Fast | 0 | Faster but with less precise calculations. |
Consistent | 1 | Slower but more accurate. |
Syntax
SetReductionHeuristics parameters
GetReductionHeuristics return value
Type: ``````
Default: Fast
Key | Value | Comment |
Fast | 0 | Faster but with less precise calculations. |
Consistent | 1 | Slower but more accurate. |
Syntax
SetReductionHeuristics parameters
GetReductionHeuristics return value
Type: EReductionHeuristics
Default: Fast
Key | Value | Comment |
EReductionHeuristics_Fast | 0 | Faster but with less precise calculations. |
EReductionHeuristics_Consistent | 1 | Slower but more accurate. |
ReductionTargetMaxDeviation
The MaxDeviation value, the maximum surface-deviation between the reduced geometry and the original.
Syntax
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
Syntax
SetReductionTargetMaxDeviation parameters
Type | Name | Min | Max | Description |
float | value | 0 | REAL_MAX | The value to which MaxDeviation will be set. |
GetReductionTargetMaxDeviation return value
Type: float
Default: 1
Syntax
SetReductionTargetMaxDeviation parameters
Name | Type | Min | Max | Description |
value | float | 0 | REAL_MAX | The value to which MaxDeviation will be set. |
GetReductionTargetMaxDeviation return value
Type: float
Default: 1
ReductionTargetMaxDeviationEnabled
Enable max deviation as a reduction target. The reducer will stop when the set max deviation has been reached.
Syntax
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
Syntax
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
Syntax
SetReductionTargetMaxDeviationEnabled parameters
Name | Type | Min | Max | Description |
value | bool | | | 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 noticable.
Syntax
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
Syntax
SetReductionTargetOnScreenSize parameters
Type | Name | Min | Max | Description |
uint | value | 20 | 100000 | The value to which OnScreenSize will be set. |
GetReductionTargetOnScreenSize return value
Type: uint
Default: 300
Syntax
SetReductionTargetOnScreenSize parameters
Name | Type | Min | Max | Description |
value | int | 20 | 100000 | The value to which OnScreenSize will be set. |
GetReductionTargetOnScreenSize return value
Type: 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
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
Syntax
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
Syntax
SetReductionTargetOnScreenSizeEnabled parameters
Name | Type | Min | Max | Description |
value | bool | | | Value to set if on screen size should be used in the reduction. |
GetReductionTargetOnScreenSizeEnabled return value
Type: bool
Default: false
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 set.
Syntax
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. |
Syntax
SetReductionTargetStopCondition parameters
Type | Name | Min | Max | Description |
EStopCondition | value | | | The flag to which StopCondition will be set. |
GetReductionTargetStopCondition return value
Type: ``````
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. |
Syntax
SetReductionTargetStopCondition parameters
Name | Type | Min | Max | Description |
value | EStopCondition | | | The flag to which StopCondition will be set. |
GetReductionTargetStopCondition return value
Type: EStopCondition
Default: All
Key | Value | Comment |
EStopCondition_Any | 0 | Simplygon will stop as soon as one of the reduction targets has been fulfilled. |
EStopCondition_All | 1 | Simplygon will continue processing until all of the reduction targets have been fulfilled. |
ReductionTargetTriangleCount
The wanted triangle count. The range is 0->inf.
Syntax
SetReductionTargetTriangleCount parameters
Type | Name | Min | Max | Description |
unsigned int | value | 0 | UINT_MAX | The value to which TriangleCount will be set. |
GetReductionTargetTriangleCount return value
Type: unsigned int
Default: 10000
Syntax
SetReductionTargetTriangleCount parameters
Type | Name | Min | Max | Description |
uint | value | 0 | UINT_MAX | The value to which TriangleCount will be set. |
GetReductionTargetTriangleCount return value
Type: uint
Default: 10000
Syntax
SetReductionTargetTriangleCount parameters
Name | Type | Min | Max | Description |
value | int | 0 | UINT_MAX | The value to which TriangleCount will be set. |
GetReductionTargetTriangleCount return value
Type: int
Default: 10000
ReductionTargetTriangleCountEnabled
Enable triangle count as a reduction target. The reducer will stop when the set triangle count has been reached.
Syntax
SetReductionTargetTriangleCountEnabled parameters
Type | Name | Min | Max | Description |
bool | value | | | Value to set if triangle count should be used in the reduction. |
GetReductionTargetTriangleCountEnabled return value
Type: bool
Default: false
Syntax
SetReductionTargetTriangleCountEnabled parameters
Type | Name | Min | Max | Description |
bool | value | | | Value to set if triangle count should be used in the reduction. |
GetReductionTargetTriangleCountEnabled return value
Type: bool
Default: false
Syntax
SetReductionTargetTriangleCountEnabled parameters
Name | Type | Min | Max | Description |
value | bool | | | Value to set if triangle count should be used in the reduction. |
GetReductionTargetTriangleCountEnabled return value
Type: bool
Default: false
ReductionTargetTriangleRatio
The wanted reduction ratio. The range is 0->1.
Syntax
SetReductionTargetTriangleRatio parameters
Type | Name | Min | Max | Description |
real | value | 0 | 1 | The value to which ReductionRatio will be set. |
GetReductionTargetTriangleRatio return value
Type: real
Default: 0.5
Syntax
SetReductionTargetTriangleRatio parameters
Type | Name | Min | Max | Description |
float | value | 0 | 1 | The value to which ReductionRatio will be set. |
GetReductionTargetTriangleRatio return value
Type: float
Default: 0.5
Syntax
SetReductionTargetTriangleRatio parameters
Name | Type | Min | Max | Description |
value | float | 0 | 1 | The value to which ReductionRatio will be set. |
GetReductionTargetTriangleRatio return value
Type: float
Default: 0.5
ReductionTargetTriangleRatioEnabled
Enable triangle ratio as a reduction target. The reducer will stop when the set triangle-ratio has been reached.
Syntax
SetReductionTargetTriangleRatioEnabled parameters
Type | Name | Min | Max | Description |
bool | value | | | Value to set if triangle ratio should be used in the reduction. |
GetReductionTargetTriangleRatioEnabled return value
Type: bool
Default: true
Syntax
SetReductionTargetTriangleRatioEnabled parameters
Type | Name | Min | Max | Description |
bool | value | | | Value to set if triangle ratio should be used in the reduction. |
GetReductionTargetTriangleRatioEnabled return value
Type: bool
Default: true
Syntax
SetReductionTargetTriangleRatioEnabled parameters
Name | Type | Min | Max | Description |
value | bool | | | Value to set if triangle ratio should be used in the reduction. |
GetReductionTargetTriangleRatioEnabled return value
Type: bool
Default: true
ShadingImportance
The importance value of the relevant feature, meaning the relative importance of the specific mesh feature (or disabling an importance entirely by setting it to 0). A higher number means higher importance.
Syntax
SetShadingImportance parameters
Type | Name | Min | Max | Description |
real | value | 0 | SG_MAXIMUM_IMPORTANCE_VALUE | The value to which the importance will be set. |
GetShadingImportance return value
Type: real
Default: 1
Syntax
SetShadingImportance parameters
Type | Name | Min | Max | Description |
float | value | 0 | SG_MAXIMUM_IMPORTANCE_VALUE | The value to which the importance will be set. |
GetShadingImportance return value
Type: float
Default: 1
Syntax
SetShadingImportance parameters
Name | Type | Min | Max | Description |
value | float | 0 | SG_MAXIMUM_IMPORTANCE_VALUE | The value to which the importance will be set. |
GetShadingImportance return value
Type: float
Default: 1
SkinningImportance
The importance value of the relevant feature, meaning the relative importance of the specific mesh feature (or disabling an importance entirely by setting it to 0.0). A higher number means higher importance.
Syntax
SetSkinningImportance parameters
Type | Name | Min | Max | Description |
real | value | 0 | SG_MAXIMUM_IMPORTANCE_VALUE | The value to which the importance will be set. |
GetSkinningImportance return value
Type: real
Default: 1
Syntax
SetSkinningImportance parameters
Type | Name | Min | Max | Description |
float | value | 0 | SG_MAXIMUM_IMPORTANCE_VALUE | The value to which the importance will be set. |
GetSkinningImportance return value
Type: float
Default: 1
Syntax
SetSkinningImportance parameters
Name | Type | Min | Max | Description |
value | float | 0 | SG_MAXIMUM_IMPORTANCE_VALUE | The value to which the importance will be set. |
GetSkinningImportance return value
Type: float
Default: 1
SymmetryAxis
Set what axis to be used for symmetry calculations.
Syntax
SetSymmetryAxis parameters
Type | Name | Min | Max | Description |
ESymmetryAxis | value | | | The value to which SymmetryAxis will be set. |
GetSymmetryAxis return value
Type: ESymmetryAxis
Default: X
Key | Value | Comment |
X | 0 | X axis. |
Y | 1 | Z axis. |
Z | 2 | Z axis. |
Syntax
SetSymmetryAxis parameters
Type | Name | Min | Max | Description |
ESymmetryAxis | value | | | The value to which SymmetryAxis will be set. |
GetSymmetryAxis return value
Type: ``````
Default: X
Key | Value | Comment |
X | 0 | X axis. |
Y | 1 | Z axis. |
Z | 2 | Z axis. |
Syntax
SetSymmetryAxis parameters
Name | Type | Min | Max | Description |
value | ESymmetryAxis | | | The value to which SymmetryAxis will be set. |
GetSymmetryAxis return value
Type: ESymmetryAxis
Default: X
Key | Value | Comment |
ESymmetryAxis_X | 0 | X axis. |
ESymmetryAxis_Y | 1 | Z axis. |
ESymmetryAxis_Z | 2 | Z axis. |
SymmetryDetectionTolerance
The tolerance used when detecting symmetry. Values in the ranges 1e-5 to 1e-3 will usually produce good results. This specific tolerance corresponds to the off-plane tolerance, ie. the tolerance of the coordinate components that are not the symmetry axis. The in-plane tolerance is always 10 times the off-plane tolerance. This value is relative to the size of the Geometry, so 0.01 would mean 1% of the bounding box size of the Geometry.
Syntax
SetSymmetryDetectionTolerance parameters
Type | Name | Min | Max | Description |
real | value | 0 | REAL_MAX | The value to which SymmetryDetectionTolerance will be set. |
GetSymmetryDetectionTolerance return value
Type: real
Default: 0.0001
Syntax
SetSymmetryDetectionTolerance parameters
Type | Name | Min | Max | Description |
float | value | 0 | REAL_MAX | The value to which SymmetryDetectionTolerance will be set. |
GetSymmetryDetectionTolerance return value
Type: float
Default: 0.0001
Syntax
SetSymmetryDetectionTolerance parameters
Name | Type | Min | Max | Description |
value | float | 0 | REAL_MAX | The value to which SymmetryDetectionTolerance will be set. |
GetSymmetryDetectionTolerance return value
Type: float
Default: 0.0001
SymmetryOffset
Set SymmetryOffset, the position on the symmetry axis where the symmetry plane is placed.
Syntax
SetSymmetryOffset parameters
Type | Name | Min | Max | Description |
real | value | 0 | REAL_MAX | The value to which SymmetryOffset will be set. |
GetSymmetryOffset return value
Type: real
Default: 0
Syntax
SetSymmetryOffset parameters
Type | Name | Min | Max | Description |
float | value | 0 | REAL_MAX | The value to which SymmetryOffset will be set. |
GetSymmetryOffset return value
Type: float
Default: 0
Syntax
SetSymmetryOffset parameters
Name | Type | Min | Max | Description |
value | float | 0 | REAL_MAX | The value to which SymmetryOffset will be set. |
GetSymmetryOffset return value
Type: float
Default: 0
TextureImportance
The importance value of the relevant feature, meaning the relative importance of the specific mesh feature (or disabling an importance entirely by setting it to 0). A higher number means higher importance.
Syntax
SetTextureImportance parameters
Type | Name | Min | Max | Description |
real | value | 0 | SG_MAXIMUM_IMPORTANCE_VALUE | The value to which the importance will be set. |
GetTextureImportance return value
Type: real
Default: 1
Syntax
SetTextureImportance parameters
Type | Name | Min | Max | Description |
float | value | 0 | SG_MAXIMUM_IMPORTANCE_VALUE | The value to which the importance will be set. |
GetTextureImportance return value
Type: float
Default: 1
Syntax
SetTextureImportance parameters
Name | Type | Min | Max | Description |
value | float | 0 | SG_MAXIMUM_IMPORTANCE_VALUE | The value to which the importance will be set. |
GetTextureImportance return value
Type: float
Default: 1
UseAutomaticSymmetryDetection
The AutomaticSymmetryDetection flag. If set, and KeepSymmetry is on, the reducer will detect any X,Y,Z symmetry plane and will override any user set symmetry plane with the detected one. If no symmetry is found, KeepSymmetry will be turned off before reduction.
Syntax
SetUseAutomaticSymmetryDetection parameters
Type | Name | Min | Max | Description |
bool | value | | | The bool to which AutomaticSymmetryDetection will be set. |
GetUseAutomaticSymmetryDetection return value
Type: bool
Default: false
Syntax
SetUseAutomaticSymmetryDetection parameters
Type | Name | Min | Max | Description |
bool | value | | | The bool to which AutomaticSymmetryDetection will be set. |
GetUseAutomaticSymmetryDetection return value
Type: bool
Default: false
Syntax
SetUseAutomaticSymmetryDetection parameters
Name | Type | Min | Max | Description |
value | bool | | | The bool to which AutomaticSymmetryDetection will be set. |
GetUseAutomaticSymmetryDetection return value
Type: bool
Default: false
UseHighQualityNormalCalculation
Set to true and the reducer will do a much more precise way of calculating the vertex normals. It will however be slower. Set to false and it will do a much more rough estimation of what the vertex normals will look like, but faster.
Syntax
SetUseHighQualityNormalCalculation parameters
Type | Name | Min | Max | Description |
bool | value | | | The value to which UseHighQualityNormalCalculation will be set. |
GetUseHighQualityNormalCalculation return value
Type: bool
Default: true
Syntax
SetUseHighQualityNormalCalculation parameters
Type | Name | Min | Max | Description |
bool | value | | | The value to which UseHighQualityNormalCalculation will be set. |
GetUseHighQualityNormalCalculation return value
Type: bool
Default: true
Syntax
SetUseHighQualityNormalCalculation parameters
Name | Type | Min | Max | Description |
value | bool | | | The value to which UseHighQualityNormalCalculation will be set. |
GetUseHighQualityNormalCalculation return value
Type: bool
Default: true
UseSymmetryQuadRetriangulator
The UseSymmetryQuadRetriangulator flag. If true, and KeepSymmetry is on, any triangles that have been triangulated from symmetrical quads into unsymmetrical triangles are detected and fixed. The edges of said triangles are flipped across the old quad so that the mesh becomes symmetrical again.
Syntax
SetUseSymmetryQuadRetriangulator parameters
Type | Name | Min | Max | Description |
bool | value | | | The bool to which UseSymmetryQuadRetriangulator will be set. |
GetUseSymmetryQuadRetriangulator return value
Type: bool
Default: true
Syntax
SetUseSymmetryQuadRetriangulator parameters
Type | Name | Min | Max | Description |
bool | value | | | The bool to which UseSymmetryQuadRetriangulator will be set. |
GetUseSymmetryQuadRetriangulator return value
Type: bool
Default: true
Syntax
SetUseSymmetryQuadRetriangulator parameters
Name | Type | Min | Max | Description |
value | bool | | | The bool to which UseSymmetryQuadRetriangulator will be set. |
GetUseSymmetryQuadRetriangulator return value
Type: bool
Default: true
VertexColorImportance
The importance value of the relevant feature, meaning the relative importance of the specific mesh feature (or disabling an importance entirely by setting it to 0). A higher number means higher importance.
Syntax
SetVertexColorImportance parameters
Type | Name | Min | Max | Description |
real | value | 0 | SG_MAXIMUM_IMPORTANCE_VALUE | The value to which the importance will be set. |
GetVertexColorImportance return value
Type: real
Default: 1
Syntax
SetVertexColorImportance parameters
Type | Name | Min | Max | Description |
float | value | 0 | SG_MAXIMUM_IMPORTANCE_VALUE | The value to which the importance will be set. |
GetVertexColorImportance return value
Type: float
Default: 1
Syntax
SetVertexColorImportance parameters
Name | Type | Min | Max | Description |
value | float | 0 | SG_MAXIMUM_IMPORTANCE_VALUE | The value to which the importance will be set. |
GetVertexColorImportance return value
Type: float
Default: 1
Methods details
GetClass
Get the name of the ReductionSettings class.
Syntax
Parameters
GetClass takes no parameters.
Return value
Type: spString
Syntax
Parameters
GetClass takes no parameters.
Return value
Type: string
Syntax
Parameters
GetClass takes no parameters.
Return value
Type: str
GetErrorString
Returns a string describing the error that was found the last time ValidateSettings was performed.
Syntax
Parameters
GetErrorString takes no parameters.
Return value
Type: spString
Syntax
Parameters
GetErrorString takes no parameters.
Return value
Type: string
Syntax
Parameters
GetErrorString takes no parameters.
Return value
Type: str
IsA
Returns true if ReductionSettings is a or is a descendant of the class named as the type parameter.
Syntax
Parameters
Type | Name | Min | Max | Description |
const char * | type | | | Name of the class to check if ReductionSettings is, or is a descendant of. |
Return value
Type: bool
Syntax
Parameters
Type | Name | Min | Max | Description |
string | type | | | Name of the class to check if ReductionSettings is, or is a descendant of. |
Return value
Type: bool
Syntax
Parameters
Name | Type | Min | Max | Description |
type | str | | | Name of the class to check if ReductionSettings is, or is a descendant of. |
Return value
Type: bool
IsNull
Returns true if the ReductionSettings object is invalid.
Syntax
Parameters
IsNull takes no parameters.
Return value
Type: bool
Syntax
Parameters
IsNull takes no parameters.
Return value
Type: bool
Syntax
Parameters
IsNull takes no parameters.
Return value
Type: bool
SetReductionTargets
Set reduction targets and stop condition used in the reduction.
Syntax
Parameters
Type | Name | Min | Max | Description |
EStopCondition | stopCondition | | | The value to which ReductionTargetStopCondition will be set. |
bool | useTriangleRatio | | | The value to which ReductionTargetTriangleRatioEnabled will be set. |
bool | useTriangleCount | | | The value to which ReductionTargetTriangleCountEnabled will be set. |
bool | useMaxDeviation | | | The value to which ReductionTargetMaxDeviationEnabled will be set. |
bool | useOnScreenSize | | | The value to which ReductionTargetOnScreenSizeEnabled will be set. |
Syntax
Parameters
Type | Name | Min | Max | Description |
EStopCondition | stopCondition | | | The value to which ReductionTargetStopCondition will be set. |
bool | useTriangleRatio | | | The value to which ReductionTargetTriangleRatioEnabled will be set. |
bool | useTriangleCount | | | The value to which ReductionTargetTriangleCountEnabled will be set. |
bool | useMaxDeviation | | | The value to which ReductionTargetMaxDeviationEnabled will be set. |
bool | useOnScreenSize | | | The value to which ReductionTargetOnScreenSizeEnabled will be set. |
Syntax
Parameters
Name | Type | Min | Max | Description |
stopCondition | EStopCondition | | | The value to which ReductionTargetStopCondition will be set. |
useTriangleRatio | bool | | | The value to which ReductionTargetTriangleRatioEnabled will be set. |
useTriangleCount | bool | | | The value to which ReductionTargetTriangleCountEnabled will be set. |
useMaxDeviation | bool | | | The value to which ReductionTargetMaxDeviationEnabled will be set. |
useOnScreenSize | bool | | | The value to which ReductionTargetOnScreenSizeEnabled will be set. |
ValidateSettings
Validates the current settings values.
Syntax
Parameters
ValidateSettings takes no parameters.
Return value
Type: bool
Syntax
Parameters
ValidateSettings takes no parameters.
Return value
Type: bool
Syntax
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
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
Syntax
Parameters
Type | Name | Min | Max | Description |
string | type | | | Name of the class to check if the class is, or is a descendant of. |
Return value
Type: bool
Syntax
Parameters
Name | Type | Min | Max | Description |
type | str | | | 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 spReductionSettings, and if this is the case, returns the object cast into spReductionSettings.
Syntax
Parameters
Type | Name | Min | Max | Description |
Object | object | | | Object to cast. |
Return value
Type: ReductionSettings
Syntax
Parameters
Type | Name | Min | Max | Description |
Object | object | | | Object to cast. |
Return value
Type: ReductionSettings
Syntax
Parameters
Name | Type | Min | Max | Description |
object | Object | | | Object to cast. |
Return value
Type: ReductionSettings