# Algo

> Python API types

### AlignmentMode

Enum of [core.Int](./core_types#int)

| Name      | Value |
| --------- | ----- |
| Auto      | 0     |
| Portrait  | 1     |
| Landscape | 2     |

Functions accepting this type or a list of this type as a parameter:

* [algo.alignUVIslands](./algo_functions#alignuvislands)

***

### AttributeType

Enum of [core.Int](./core_types#int)

| Name            | Value |
| --------------- | ----- |
| Patches         | 4020  |
| PatchMaterials  | 4021  |
| PatchBoundaries | 4022  |
| UVs             | 4035  |
| Normals         | 4036  |
| Tangents        | 4037  |
| Binormals       | 4038  |

Functions accepting this type or a list of this type as a parameter:

* [algo.deleteAttribute](./algo_functions#deleteattribute)

***

### BakeMaps

Fields

| Type             | Name    | Default | Description |
| ---------------- | ------- | ------- | ----------- |
| diffuse          | Boolean | True    |             |
| normal           | Boolean | True    |             |
| roughness        | Boolean | True    |             |
| metallic         | Boolean | True    |             |
| opacity          | Boolean | True    |             |
| ambientOcclusion | Boolean | True    |             |
| emissive         | Boolean | True    |             |

***

### BakeOption

Fields

| Type       | Name     | Default | Description                                                                                                                          |
| ---------- | -------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| resolution | Int      | 1024    |                                                                                                                                      |
| padding    | Int      | 1       | Add padding to the map. A negative value means that the texture will be filled, and the padding for uv island is the absolute value. |
| textures   | BakeMaps |         |                                                                                                                                      |

Functions accepting this type or a list of this type as a parameter:

* [algo.combineMaterials](./algo_functions#combinematerials)

***

### BakedValue

Fields

| Type       | Name       | Default | Description |
| ---------- | ---------- | ------- | ----------- |
| occurrence | Occurrence | 0       |             |
| polygonId  | Ident      | -1      |             |
| paramU     | Double     | 0.0     |             |
| paramV     | Double     | 0.0     |             |
| material   | Material   | 0       |             |

***

### BakingSession

Base class: [core.UInt](./core_types#uint)


**Frame:**
```mermaid
classDiagram
    class BakingSession
    UInt <|-- BakingSession
```

Functions accepting this type or a list of this type as a parameter:

* [algo.bakeAOMap](./algo_functions#bakeaomap)
* [algo.bakeDepthMap](./algo_functions#bakedepthmap)
* [algo.bakeDiffuseMap](./algo_functions#bakediffusemap)
* [algo.bakeDisplacementMap](./algo_functions#bakedisplacementmap)
* [algo.bakeEmissiveMap](./algo_functions#bakeemissivemap)
* [algo.bakeFeatureMap](./algo_functions#bakefeaturemap)
* [algo.bakeMaterialAOMap](./algo_functions#bakematerialaomap)
* [algo.bakeMaterialIdMap](./algo_functions#bakematerialidmap)
* [algo.bakeMaterialPropertyMap](./algo_functions#bakematerialpropertymap)
* [algo.bakeMetallicMap](./algo_functions#bakemetallicmap)
* [algo.bakeNormalMap](./algo_functions#bakenormalmap)
* [algo.bakeOccurrencePropertyMap](./algo_functions#bakeoccurrencepropertymap)
* [algo.bakeOpacityMap](./algo_functions#bakeopacitymap)
* [algo.bakePartIdMap](./algo_functions#bakepartidmap)
* [algo.bakePositionMap](./algo_functions#bakepositionmap)
* [algo.bakeRoughnessMap](./algo_functions#bakeroughnessmap)
* [algo.bakeSpecularMap](./algo_functions#bakespecularmap)
* [algo.bakeUVMap](./algo_functions#bakeuvmap)
* [algo.bakeValidityMap](./algo_functions#bakevaliditymap)
* [algo.bakeVertexColorMap](./algo_functions#bakevertexcolormap)
* [algo.endBakingSession](./algo_functions#endbakingsession)
* [algo.fetchBakedMap](./algo_functions#fetchbakedmap)
* [algo.fetchBakedVertex](./algo_functions#fetchbakedvertex)
* [algo.setBakingSessionPadding](./algo_functions#setbakingsessionpadding)
* [algo.fetchBakedMap](./algo_functions#fetchbakedmap)
* [algo.fetchBakedVertex](./algo_functions#fetchbakedvertex)
* [algo.automaticUVMapping](./algo_functions#automaticuvmapping)
* [algo.getUVQualityMetrics](./algo_functions#getuvqualitymetrics)
* [algo.hasOverlappingUV](./algo_functions#hasoverlappinguv)
* [algo.repackUV](./algo_functions#repackuv)
* [core.getRedoStepUserData](./core_functions#getredostepuserdata)
* [core.getUndoStepUserData](./core_functions#getundostepuserdata)
* [core.redo](./core_functions#redo)
* [core.undo](./core_functions#undo)
* [scene.getSubpartMaterial](./scene_functions#getsubpartmaterial)
* [scene.setSubpartMaterial](./scene_functions#setsubpartmaterial)
* [scene.setSubpartMaterials](./scene_functions#setsubpartmaterials)
* [scene.setLocalMatrices](./scene_functions#setlocalmatrices)
* [view.getCameraFrontAxis](./view_functions#getcamerafrontaxis)
* [view.getCameraPosition](./view_functions#getcameraposition)
* [view.getCameraRightAxis](./view_functions#getcamerarightaxis)
* [view.getCameraUpAxis](./view_functions#getcameraupaxis)

***

### Box

Fields

| Type     | Name   | Default | Description |
| -------- | ------ | ------- | ----------- |
| position | Affine |         |             |
| length   | Double | 200     |             |
| height   | Double | 200     |             |
| depth    | Double | 200     |             |

Functions accepting this type or a list of this type as a parameter:

* [algo.mapUvOnBox](./algo_functions#mapuvonbox)

***

### BoxParameters

Fields

| Type        | Name   | Default | Description |
| ----------- | ------ | ------- | ----------- |
| SizeX       | Double | 1000    |             |
| SizeY       | Double | 1000    |             |
| SizeZ       | Double | 1000    |             |
| Subdivision | Int    | 1       |             |

***

### BricksReturn

Fields

| Type   | Name                | Default | Description |
| ------ | ------------------- | ------- | ----------- |
| Root   | Occurrence          | 0       |             |
| Bricks | BrickDefinitionList |         |             |

***

### CapsuleParameters

Fields

| Type      | Name   | Default | Description |
| --------- | ------ | ------- | ----------- |
| Radius    | Double | 250     |             |
| Height    | Double | 250     |             |
| Latitude  | Int    | 16      |             |
| Longitude | Int    | 16      |             |

***

### ComputingQuality

Enum of [core.Int](./core_types#int)

| Name   | Value |
| ------ | ----- |
| High   | 0     |
| Medium | 1     |
| Low    | 2     |

***

### ConeParameters

Fields

| Type         | Name   | Default | Description |
| ------------ | ------ | ------- | ----------- |
| BottomRadius | Double | 250     |             |
| Height       | Double | 500     |             |
| Sides        | Int    | 16      |             |

***

### ConvexityFilter

Enum of [core.Long](./core_types#long)

| Name               | Value |
| ------------------ | ----- |
| OnConvex           | 0     |
| OnConcave          | 1     |
| OnConvexAndConcave | 2     |

Functions accepting this type or a list of this type as a parameter:

* [algo.identifySharpEdges](./algo_functions#identifysharpedges)

***

### CostEvaluation

Enum of [core.Int](./core_types#int)

| Name              | Value |
| ----------------- | ----- |
| SumEvaluation     | 0     |
| MaxEvaluation     | 1     |
| AverageEvaluation | 2     |

Functions accepting this type or a list of this type as a parameter:

* [algo.smoothMesh](./algo_functions#smoothmesh)

***

### CreateOccluder

Enum of [core.Int](./core_types#int)

| Name     | Value |
| -------- | ----- |
| Occludee | 0     |
| Occluder | 1     |

Functions accepting this type or a list of this type as a parameter:

* [algo.createOcclusionMesh](./algo_functions#createocclusionmesh)

***

### Cylinder

Fields

| Type     | Name   | Default | Description |
| -------- | ------ | ------- | ----------- |
| position | Affine |         |             |
| radius   | Double | 100     |             |
| length   | Double | 200     |             |

Functions accepting this type or a list of this type as a parameter:

* [algo.mapUvOnCylinder](./algo_functions#mapuvoncylinder)

***

### CylinderParameters

Fields

| Type   | Name   | Default | Description |
| ------ | ------ | ------- | ----------- |
| Radius | Double | 250     |             |
| Height | Double | 1000    |             |
| Sides  | Int    | 16      |             |

***

### DecimateOptionsSelector

Select between:

* triangleCount: [core.ULong](./core_types#ulong)

* ratio: [core.Percent](./core_types#percent)
  Functions accepting this type or a list of this type as a parameter:

* [algo.decimateTarget](./algo_functions#decimatetarget)

* [algo.evalDecimateErrorForTarget](./algo_functions#evaldecimateerrorfortarget)

***

### DiskSegmentationMethod

Enum of [core.Int](./core_types#int)

| Name              | Value |
| ----------------- | ----- |
| Perimeter         | 0     |
| GaussianCurvature | 1     |

***

### ElementFilter

Enum of [core.Int](./core_types#int)

| Name     | Value |
| -------- | ----- |
| Polygons | 0     |
| Points   | 1     |
| Hybrid   | 2     |

Functions accepting this type or a list of this type as a parameter:

* [algo.beginBakingSession](./algo_functions#beginbakingsession)
* [algo.beginVertexBakingSession](./algo_functions#beginvertexbakingsession)
* [algo.marchingCubes](./algo_functions#marchingcubes)
* [algo.proxyMesh](./algo_functions#proxymesh)
* [algo.voxelize](./algo_functions#voxelize)

***

### Feature

Fields

| Type   | Name             | Default | Description |
| ------ | ---------------- | ------- | ----------- |
| type   | FeatureType      | Unknown |             |
| inputs | FeatureInputList |         |             |

***

### FeatureInput

Fields

| Type      | Name     | Default | Description |
| --------- | -------- | ------- | ----------- |
| position  | Point3   |         |             |
| direction | Vector3  |         |             |
| diameter  | Distance | 0       |             |

***

### FeatureInputList

List of [algo.FeatureInput](./algo_types#featureinput)

***

### FeatureList

List of [algo.Feature](./algo_types#feature)

***

### FeatureType

Enum of [core.Int](./core_types#int)

| Name        | Value |
| ----------- | ----- |
| Unknown     | 0     |
| ThroughHole | 1     |
| BlindHole   | 2     |

***

### FilletingMode

Enum of [core.Int](./core_types#int)

| Name     | Value |
| -------- | ----- |
| Width    | 0     |
| Distance | 1     |
| Depth    | 2     |
| Radius   | 3     |

Functions accepting this type or a list of this type as a parameter:

* [algo.filletMesh](./algo_functions#filletmesh)

***

### FlatteningStopCondition

Enum of [core.Long](./core_types#long)

| Name                  | Value |
| --------------------- | ----- |
| MEAN\_DEFORMATION     | 0     |
| ABSOLUTE\_DEFORMATION | 1     |

***

### HexahedronParameters

Fields

| Type    | Name   | Default | Description |
| ------- | ------ | ------- | ----------- |
| XLength | Double | 1       |             |
| YLength | Double | 1       |             |
| ZLength | Double | 1       |             |

***

### InnerOuterOption

Enum of [core.Int](./core_types#int)

| Name       | Value |
| ---------- | ----- |
| All        | 0     |
| OnlyOuter  | 1     |
| OnlyInners | 2     |

Functions accepting this type or a list of this type as a parameter:

* [algo.createVisibilityInformationAdvanced](./algo_functions#createvisibilityinformationadvanced)
* [algo.findOccludedPartOccurrencesAdvanced](./algo_functions#findoccludedpartoccurrencesadvanced)
* [algo.removeOccludedGeometriesAdvanced](./algo_functions#removeoccludedgeometriesadvanced)
* [algo.createCavityOccurrences](./algo_functions#createcavityoccurrences)
* [algo.orientPolygonFacesAdvanced](./algo_functions#orientpolygonfacesadvanced)

***

### MeshBooleanOperation

Enum of [core.Int](./core_types#int)

| Name         | Value |
| ------------ | ----- |
| SplitOnly    | 0     |
| Union        | 1     |
| Intersection | 2     |
| Subtraction  | 3     |

Functions accepting this type or a list of this type as a parameter:

* [algo.meshBooleanOperation](./algo_functions#meshbooleanoperation)

***

### OccurrenceFeatures

Fields

| Type       | Name        | Default | Description |
| ---------- | ----------- | ------- | ----------- |
| occurrence | Occurrence  | 0       |             |
| features   | FeatureList |         |             |

***

### OccurrenceFeaturesList

List of [algo.OccurrenceFeatures](./algo_types#occurrencefeatures)

***

### OctahedralImpostor

Fields

| Type          | Name    | Default              | Description |
| ------------- | ------- | -------------------- | ----------- |
| OctaTransform | Matrix4 | geom.IdentityMatrix4 |             |
| Radius        | Double  | 1                    |             |
| NormalMap     | Image   | 0                    |             |
| DepthMap      | Image   | 0                    |             |
| DiffuseMap    | Image   | 0                    |             |
| MetallicMap   | Image   | 0                    |             |
| AOMap         | Image   | 0                    |             |
| RoughnessMap  | Image   | 0                    |             |

***

### OrientStrategy

Enum of [core.Int](./core_types#int)

| Name                  | Value |
| --------------------- | ----- |
| ExteriorOnly          | 0     |
| VisibilityOrExterior  | 1     |
| VisibilityByConnected | 2     |
| VisibilityByPolygon   | 3     |
| ConformToMajority     | 4     |

Functions accepting this type or a list of this type as a parameter:

* [algo.orientPolygonFaces](./algo_functions#orientpolygonfaces)

***

### OrientStrategyAdvanced

Enum of [core.Int](./core_types#int)

| Name                  | Value |
| --------------------- | ----- |
| VisibilityByConnected | 0     |
| VisibilityByPolygon   | 1     |

Functions accepting this type or a list of this type as a parameter:

* [algo.orientPolygonFacesAdvanced](./algo_functions#orientpolygonfacesadvanced)

***

### Plane

Fields

| Type     | Name   | Default | Description |
| -------- | ------ | ------- | ----------- |
| position | Affine |         |             |
| length   | Double | 200     |             |
| height   | Double | 200     |             |

Functions accepting this type or a list of this type as a parameter:

* [algo.mapUvOnPlane](./algo_functions#mapuvonplane)

***

### PlaneParameters

Fields

| Type         | Name   | Default | Description |
| ------------ | ------ | ------- | ----------- |
| SizeX        | Double | 1000    |             |
| SizeY        | Double | 1000    |             |
| SubdivisionX | Int    | 1       |             |
| SubdivisionY | Int    | 1       |             |

***

### PrimitiveShapeParameters

Select between:

* Box: [algo.BoxParameters](./algo_types#boxparameters)

* Plane: [algo.PlaneParameters](./algo_types#planeparameters)

* Sphere: [algo.SphereParameters](./algo_types#sphereparameters)

* Cylinder: [algo.CylinderParameters](./algo_types#cylinderparameters)

* Cone: [algo.ConeParameters](./algo_types#coneparameters)

* Capsule: [algo.CapsuleParameters](./algo_types#capsuleparameters)
  Functions accepting this type or a list of this type as a parameter:

* [algo.replaceByPrimitive](./algo_functions#replacebyprimitive)

***

### QualityMemoryTradeoff

Enum of [core.Int](./core_types#int)

| Name          | Value |
| ------------- | ----- |
| PreferQuality | 0     |
| PreferMemory  | 1     |

***

### QualitySpeedTradeoff

Enum of [core.Int](./core_types#int)

| Name          | Value |
| ------------- | ----- |
| PreferQuality | 0     |
| PreferSpeed   | 1     |

Functions accepting this type or a list of this type as a parameter:

* [algo.decimateEdgeCollapse](./algo_functions#decimateedgecollapse)

***

### RatioUV3DMode

Enum of [core.Int](./core_types#int)

| Name          | Value |
| ------------- | ----- |
| SmallestRatio | 0     |
| HighestRatio  | 1     |
| AverageRatio  | 2     |
| MedianRatio   | 3     |

Functions accepting this type or a list of this type as a parameter:

* [algo.getRatioUV3D](./algo_functions#getratiouv3d)

***

### RelaxUVMethod

Enum of [core.Int](./core_types#int)

| Name  | Value |
| ----- | ----- |
| Angle | 0     |
| Edge  | 1     |

***

### ReplaceByBoxType

Enum of [core.Int](./core_types#int)

| Name           | Value |
| -------------- | ----- |
| Minimum        | 0     |
| LocallyAligned | 1     |

Functions accepting this type or a list of this type as a parameter:

* [algo.replaceByBox](./algo_functions#replacebybox)

***

### ReplaceByMode

Enum of [core.Int](./core_types#int)

| Name         | Value |
| ------------ | ----- |
| ByOccurrence | 0     |
| All          | 1     |

***

### ReplaceByOccurrenceOptions

Fields

| Type       | Name       | Default | Description |
| ---------- | ---------- | ------- | ----------- |
| Occurrence | Occurrence | 0       |             |
| Aligned    | Boolean    | False   |             |

***

### ReplaceByOption

Select between:

* Occurrence: [algo.ReplaceByOccurrenceOptions](./algo_types#replacebyoccurrenceoptions)

* BoundingBox: [algo.ReplaceByBoxType](./algo_types#replacebyboxtype)

* ConvexHull: [core.None](./core_types#none)

* Primitive: [algo.ReplaceByPrimitiveOptions](./algo_types#replacebyprimitiveoptions)
  Functions accepting this type or a list of this type as a parameter:

* [algo.replaceBy](./algo_functions#replaceby)

***

### ReplaceByPrimitiveOptions

Fields

| Type       | Name                     | Default | Description |
| ---------- | ------------------------ | ------- | ----------- |
| Type       | PrimitiveShapeParameters |         |             |
| Aligned    | Boolean                  | False   |             |
| GenerateUV | Boolean                  | True    |             |

***

### SawingMode

Enum of [core.Int](./core_types#int)

| Name        | Value |
| ----------- | ----- |
| SawOnly     | 0     |
| SawAndSplit | 1     |
| KeepInside  | 2     |
| KeepOutside | 3     |

Functions accepting this type or a list of this type as a parameter:

* [algo.sawWithAABB](./algo_functions#sawwithaabb)
* [algo.sawWithOBB](./algo_functions#sawwithobb)
* [algo.sawWithPlane](./algo_functions#sawwithplane)

***

### SelectionLevel

Enum of [core.Int](./core_types#int)

| Name     | Value |
| -------- | ----- |
| Parts    | 0     |
| Patches  | 1     |
| Polygons | 2     |

Functions accepting this type or a list of this type as a parameter:

* [algo.createVisibilityInformation](./algo_functions#createvisibilityinformation)
* [algo.createVisibilityInformationAdvanced](./algo_functions#createvisibilityinformationadvanced)
* [algo.removeOccludedGeometries](./algo_functions#removeoccludedgeometries)
* [algo.removeOccludedGeometriesAdvanced](./algo_functions#removeoccludedgeometriesadvanced)
* [algo.removeOccludedGeometriesFromPoints](./algo_functions#removeoccludedgeometriesfrompoints)
* [algo.removeOccludedGeometriesFromViewPoints](./algo_functions#removeoccludedgeometriesfromviewpoints)

***

### Space

Enum of [core.Int](./core_types#int)

| Name    | Value |
| ------- | ----- |
| Object  | 0     |
| World   | 1     |
| Tangent | 2     |

Functions accepting this type or a list of this type as a parameter:

* [algo.bakeNormalMap](./algo_functions#bakenormalmap)
* [algo.convertNormalMap](./algo_functions#convertnormalmap)

***

### Sphere

Fields

| Type     | Name   | Default | Description |
| -------- | ------ | ------- | ----------- |
| position | Affine |         |             |
| radius   | Double | 100     |             |

Functions accepting this type or a list of this type as a parameter:

* [algo.mapUvOnSphere](./algo_functions#mapuvonsphere)

***

### SphereParameters

Fields

| Type      | Name   | Default | Description |
| --------- | ------ | ------- | ----------- |
| Radius    | Double | 500     |             |
| Latitude  | Int    | 16      |             |
| Longitude | Int    | 16      |             |

***

### TransformationType

Enum of [core.Int](./core_types#int)

| Name       | Value |
| ---------- | ----- |
| TRSOnly    | 0     |
| TRSAndSkew | 1     |

Functions accepting this type or a list of this type as a parameter:

* [algo.mergeUVIslandsAffine](./algo_functions#mergeuvislandsaffine)

***

### UVGenerationMode

Enum of [core.Int](./core_types#int)

| Name              | Value |
| ----------------- | ----- |
| NoUV              | 0     |
| IntrinsicUV       | 1     |
| ConformalScaledUV | 2     |

Functions accepting this type or a list of this type as a parameter:

* [algo.tessellate](./algo_functions#tessellate)
* [algo.tessellateRelativelyToAABB](./algo_functions#tessellaterelativelytoaabb)

***

### UVImportanceEnum

Enum of [core.Int](./core_types#int)

| Name                              | Value |
| --------------------------------- | ----- |
| PreserveSeamsAndReduceDeformation | 0     |
| PreserveSeams                     | 1     |
| IgnoreUV                          | 2     |

Functions accepting this type or a list of this type as a parameter:

* [algo.decimateTarget](./algo_functions#decimatetarget)

***

### UnwrapUVMethod

Enum of [core.Int](./core_types#int)

| Name      | Value |
| --------- | ----- |
| Isometric | 0     |
| Conformal | 1     |

Functions accepting this type or a list of this type as a parameter:

* [algo.unwrapUV](./algo_functions#unwrapuv)

***

### UseColorOption

Select between:

* UseLinesColor: [core.None](./core_types#none)

* ChooseColor: [core.Color](./core_types#color)
  Functions accepting this type or a list of this type as a parameter:

* [algo.lineToTexture](./algo_functions#linetotexture)

***

### VertexWeightStrategy

Enum of [core.Int](./core_types#int)

| Name              | Value |
| ----------------- | ----- |
| RedBlueDiff       | 0     |
| Grayscale         | 1     |
| InvertedGrayscale | 2     |

Functions accepting this type or a list of this type as a parameter:

* [algo.createVertexWeightsFromVertexColors](./algo_functions#createvertexweightsfromvertexcolors)

***

### VisibilityToWeightMode

Enum

| Name                          | Value |
| ----------------------------- | ----- |
| FrontCountOnly                | 0     |
| FrontAndBackCount             | 1     |
| FrontCountOnlyAreaWeighted    | 2     |
| FrontAndBackCountAreaWeighted | 3     |

Functions accepting this type or a list of this type as a parameter:

* [algo.transferVisibilityToPolygonalWeight](./algo_functions#transfervisibilitytopolygonalweight)

***

### getPixelValue

***

### getPixelValueList

List of [algo.getPixelValue](./algo_types#getpixelvalue)
