API Option & Type
WELD_TYPE
"""
Weld type to export meshes. WELDED - merge meshes on seamlines, UNWELDED - as-is
"""
FULLY_UNWELDED = 0 # UNWELDED for all seamlines
DEFAULT_WELDED = 1 # deprecated, but DO NOT REMOVE.
FULLY_WELDED = 2 # WELDED for all seamlines
SELECTED_WELDED = 3 # WELDED for selected seamlines
OBJECT_BROWSER_CATEGORY
"""
Object Browser style category that an Object Browser API operation targets.
Used by every ObjectBrowserAPI function to select which style list (Fabric, Button, ...)
the given object UID belongs to.
"""
OB_FABRIC = 0 # Fabric style list
OB_BUTTON = 1 # Button (head) style list
OB_TOPSTITCH = 2 # Topstitch style list
OB_TRIM = 3 # Trim style list
OB_ZIPPER = 4 # Zipper style list
OB_GRAPHIC = 5 # Graphic style list
OB_BUTTONHOLE = 6 # Buttonhole style list
OB_PUCKERING = 7 # Puckering style list
ObjectBrowserResult
"""
Structured result returned by every Object Browser API mutation.
Carries a success flag, the UID of the created or affected object, and a human-readable
message describing the outcome (empty on success, an explanation on failure).
"""
success:bool # true when the operation succeeded, false otherwise
objectUid:int # UID of the created/affected object, or -1 when not applicable
message:str # outcome text, empty on success and an error reason on failure
WindControllerOptions
"""
Settings of one wind controller (Object Browser > Scene > Wind) for UtilityAPI::SetWindControllerSettings / GetWindControllerSettings. Set writes every field.
"""
bWindActive:bool # true = the wind controller is on (default false)
windType:int # 0 = spherical (blows outward from the controller), any other value = planar (along its direction) (default 0)
strength:float # wind strength, as Strength in the Property Editor (default 0)
decay:float # how fast the strength fades with distance, 0-100 (default 0)
frequency:float # gust period in seconds, 0-100000; 0 = constant wind (default 0)
turbulence:float # random variation of the strength, 0-100 (default 0)
x:float # X position of the controller in 3D, in mm (default 0)
y:float # Y position of the controller in 3D, in mm (default 0)
z:float # Z position of the controller in 3D, in mm (default 0)
rotationX:float # rotation around the X axis in degrees; the wind blows along the rotated +Z axis (default 0)
rotationY:float # rotation around the Y axis in degrees (default 0)
rotationZ:float # rotation around the Z axis in degrees (default 0)
AlembicUnit
"""
Values for ImportAlembicOption.aUnit, the unit of the .abc file. Read them from an instance, for example ApiTypes.AlembicUnit().MEASURE_UNIT_CM.
"""
MEASURE_UNIT_MM:float # millimeters (0.01)
MEASURE_UNIT_CM:float # centimeters (0.1)
MEASURE_UNIT_INCH:float # inches (0.254)
MEASURE_UNIT_FEET:float # feet (3.048)
MEASURE_UNIT_M:float # meters (10)
MEASURE_UNIT_8_FEET:float # 8 feet (24.384)
MEASURE_UNIT_8_6_FEET:float # 8.6 feet (26.2128)
MEASURE_UNIT_AUTO:float # automatic (0.01, the same value as MEASURE_UNIT_MM)
ImportExportOption
"""
Options for Export OBJ and Export GLTF as parameters without dialogs in CLO API
"""
bExportGarment:bool # true : Export Garment (Cloth Meshes)
bExportAvatar:bool # true : Export Avatar (Avatar Meshes)
bSingleObject:bool # true : OBJ single object, false : OBJ multiple object
weldType:WELD_TYPE # FULLY_UNWELDED : unweld, FULLY_WELDED : weld, SELECTED_WELDED : Weld selected patterns in workspace, DEFAULT_WELDED : Do not use!!!
bThin:bool # if true, export the garment as thin mesh. Otherwise, export it as thick mesh.
bUnifiedUVCoordinates:bool # [Deprecated] - Please use bClothUnifiedUVCoordinates and bAvatarUnifiedUVCoordinates instead.
bCreateUnifiedTexture:bool # [Deprecated]
unifiedTextureSize:float # true: (In case bClothUnifiedUVCoordinates or bAvatarUnifiedUVCoordinates are true) The size of unified texture (pixels). Texture will be created in square.
unifiedTextureFillSeamSize:int # true: (In case bClothUnifiedUVCoordinates or bAvatarUnifiedUVCoordinates are true) Fill texture seam size in pixels.
bUseInifinteSeams:bool # true: (In case bClothUnifiedUVCoordinates or bAvatarUnifiedUVCoordinates are true) Use infinite fill texture seam size.
unifiedTextureBakeMargin:float # true: (In case bClothUnifiedUVCoordinates or bAvatarUnifiedUVCoordinates are true) The margin of the baked texture in the image canvas
unifiedTextureBakeRelateive:bool # true: (In case bClothUnifiedUVCoordinates or bAvatarUnifiedUVCoordinates are true)
bUnifiedDiffuseMap:bool # false: (In case bClothUnifiedUVCoordinates or bAvatarUnifiedUVCoordinates are true) export diffuse map baked in the unified uv
bUnifiedNormalMap:bool # false: (In case bClothUnifiedUVCoordinates or bAvatarUnifiedUVCoordinates are true) export normal map baked in the unified uv
bUnifiedMetalnessMap:bool # false: (In case bClothUnifiedUVCoordinates or bAvatarUnifiedUVCoordinates are true) export metalness map baked in the unified uv
bUnifiedRoughnessMap:bool # false: (In case bClothUnifiedUVCoordinates or bAvatarUnifiedUVCoordinates are true) export roughness map baked in the unified uv
bUnifiedOpacityMap:bool # false: (In case bClothUnifiedUVCoordinates or bAvatarUnifiedUVCoordinates are true) export opacity map baked in the unified uv
bUnifiedDisplacementMap:bool # false: (In case bClothUnifiedUVCoordinates or bAvatarUnifiedUVCoordinates are true) export displacement map baked in the unified uv
bIncludeHiddenObject:bool # if true, export all the pattern meshes include 'hidden pattern meshes on 3D' to OBJ
bIncludeInnerShape:bool # If true, export geometries of internal lines to ease the picking the internal lines in external modeling tools such as Maya and 3ds Max.
scale:float # how to scale the object created in CLO when exporting. The default unit of CLO is millimeters for obj/fbx(mm) and gltf(m)
# use 0.001 for gltf in default
axisX:int # the index of the axis which the X axis will be converted to. If you don't want axis conversion, set this value as "0"
axisY:int # the index of the axis which the Y axis will be converted to. If you don't want axis conversion, set this value as "1"
axisZ:int # the index of the axis which the Z axis will be converted to. If you don't want axis conversion, set this value as "2"
bInvertX:bool # invert the axis which the X axis will be converted to
bInvertY:bool # invert the axis which the Y axis will be converted to
bInvertZ:bool # invert the axis which the Z axis will be converted to
bSaveColorWays:bool # if true, export for all the colorways.
bSaveInZip:bool # If true, export as a zipped file with textures. It will output a single zipped file(.zip), not separated files.
bDiffuseColorCombined:bool # if true, the texture will be exported after being combined with diffuse color
bExcludeAmbient:bool # if true, exclude ambient map and color in MTL files.
bOpacityMap:bool # if true, generate an opacity map by extracting alpha channel from diffuse map
bMetaData:bool # export meta data
bSizeAndPoseFromAvatar:bool # ImportAvatar: true = keep the avatar file's own size and pose, false = apply the size and pose saved with the garment
bEmbedded:bool # for embedded-gltf export option
bExportLight:bool # export light information in gltf
bExportFabric:bool # true : Export Fabric (Fabric information)
bSaveColorWaysSingleFile:bool # true : export gltf with KHR_materials_variants extension (affect when bSaveColorWays is true)
fbxSdkVersion:int # 0 : 2020, 1: 2019, 2: 2018, 3: 2016/2017, 4: 2014/2015, 5: 2013, 6: 2012
bIncludeAvatarShape:bool # FBX / Alembic export: include the avatar meshes; keep it equal to bExportAvatar
m_AuthenticationKeyForAPI:str # For Alvanon to use extended functionality in the CLO API / SDK
ImportObjectType:int # import file type. 0 : Avatar, 1: Trim, 2 : Garment
bAutoTranslate:bool # If true, allign bottom to ground
bCreateCamera:bool # If true, create object camera
bCreateAvatarJointAnimation:bool # If true, create object avatar joint animation
bCreateAvatarCacheAnimation:bool # If true, create object avatar cache animation
bCreateAvatarBlendShapeAnimation:bool # If true, create object avatar blendshape (weight) animation
bCreateClothCacheAnimation:bool # If true, create cloth cache animation
bMoveGarment:bool # If true, move garment to start position
bAddArrangementPoints:bool # If true, auto add arrangement points
bAutoCreateFittingSuit:bool # If true, auto create fitting suit
bAdd:bool # If true, set load type as add
translationValueX:float # set x-offset value per the position-value in 3D Window for Avatar/Garment (left - right) unit (mm)
translationValueY:float # set y-offset value per the position-value in 3D Window for Avatar/Garment (up - down) unit (mm)
translationValueZ:float # set z-offset value per the position-value in 3D Window for Avatar/Garment (monitor - user) unit (mm)
bTrace2DPatternsUVMap:bool # If true, set load type for trace 2d patterns from uv map
bCreateMetallicRoughnessMap:bool # true : (In case bClothUnifiedUVCoordinates or bAvatarUnifiedUVCoordinates are false) export metallic-roughness map baked using diffuse alpha value (only in gltf)
bClothUnifiedUVCoordinates:bool # flag for Cloth Unified UV Coordinates
bAvatarUnifiedUVCoordinates:bool # flag for Avatar Unified UV Coordinates
patternList:list[int] # pattern indices to export (RealPatternList order, as used by the Pattern API)
buttonList:list[ int] # uid values of buttons/buttonholes to export, as returned in the "uid" field by GetNonFabricComponentsOnPattern / GetAllNonFabricComponents
graphicList:list[ int] # uid values of graphics/prints to export, from the same "uid" field
zipperList:list[ int] # uid values of zippers to export, from the same "uid" field; each is expanded to its tapes and slider/puller/stopper hardware
VideoExportOption
"""
Options for ExportAnimationVideo without showing the dialog in CLO API
"""
width:int # Video width in pixels
height:int # Video height in pixels
fps:int # FPS index: 0 = 24fps, 1 = 25fps, 2 = 30fps, 3 = 60fps. Set to -1 to use the animation's system FPS
startFrame:int # Start frame index, -1 means use the animation's start frame
endFrame:int # End frame index, -1 means use the animation's end frame
CLO_API_UNIT
"""
Unit types
"""
CLO_API_MILIMETER = 0 # milimeter
CLO_API_CENTIMETER = 1 # centimeter
CLO_API_INCH = 2 # inch
CLO_API_METER = 3 # meter
CLO_API_FEET = 4 # feet
ImportZPRJOption
"""
Options for ImportZPRJ as parameters without dialogs in CLO API
"""
bAppend:bool # if true, append the project file to the current loaded project
# if false, overwrite/replace the project file in the current loaded project
bLoadGarment:bool # if true, open/add Garment inside the zprj file into the current loaded project
bLoadAvatar:bool # if true, open/add Avatar inside the zprj file into the current loaded project
translationValueX:float # set x-offet value per current patterns in 2D Window for Patterns (left - right)
# set x-offset value per the position-value inside the zprj file in 3D Window for Avatar/Garment (left - right)
translationValueY:float # set y-offet value per current patterns in 2D Window for Patterns (up - down)
# set y-offset value per the position-value inside the zprj file in 3D Window for Avatar/Garment
translationValueZ:float # set z-offset value per the position-value inside the zprj file in 3D Window for Avatar/Garment (monitor - user)
translationUnit:CLO_API_UNIT # translationUnit - 0: Milimeter, 1: Centimeter, 2: Inch, 3: Meter, 4: Feet
bLoadSceneAndProps:bool # if true, open/add SceneAndProps inside the zprj file into the current loaded project
bLoadRenderProperties:bool # if true, open/add RenderProperties(Vray) inside the zprj file into the current loaded project
bLoadCustomView:bool # if true, load Custom View (default: false)
bLoadDisplaySettings:bool # if true, load Display Settings (default: true)
ImportDxfOption
"""
Options for ImportDxf as parameters without dialogs in CLO API
"""
m_bAppend:bool # true = add the patterns to the current garment, false = clear the garment and open the file (default false)
m_bAutoScale:bool # true = use the length unit declared in the file and ignore m_Scale (default true)
m_Scale:float # factor from file units to mm (1 = mm, 10 = cm, 25.4 = inch), 0.01-100; used when m_bAutoScale is false (default 1)
m_Angle:float # rotation in degrees: 0 = none, 90 = counterclockwise, -90 = clockwise; other values fail (default 0)
m_bImportPatternAnnotation:bool # import the pattern annotation text (annotation, category, style name) (default true)
m_bAutoTraceAsInternalLines:bool # true = create the file's internal lines as internal shapes, false = as baselines (default false)
m_SwapCuttingLineAndSewingLine:bool # swap the cutting line and the sewing line (default false)
m_bIncludeNotchs:bool # move the notches with the swapped lines; used with m_SwapCuttingLineAndSewingLine (default false)
m_bAutoDistribute:bool # spread the imported patterns out in the 2D window (default false)
m_bOptimizeAllCurvePoints:bool # optimize the curve points of the imported patterns automatically (default false)
m_bImportAllDrawCurvePoint:bool # import the draw-curve points when the curve is not loaded (default false)
m_bRemoveNonGradingPoints:bool # remove curve points that have no grading rule (default false)
m_bConvertToSeamAllowance:bool # deprecated and ignored: a seam allowance in the file is converted automatically (default false)
m_bImportNotchTo:bool # import the file's notches; where they go is m_eNotchImportPlacement (default true)
m_eNotchImportPlacement:int # where notches go: 0 = pattern outline, 1 = seam allowance, 2 = both (default; other values become 2)
RenderImageVideoOptions
"""
Render > Image/Video Properties (output type, turntable / animation, size, background, save) for UtilityAPI::SetRenderImageVideoProperties, without the dialog.
"""
m_Colorway:int # colorways to render: 0 = current colorway, 1 = all colorways (default 0)
m_ImageVideo:int # output type: 0 = image, 1 = turntable, 2 = animation (default 0); selects which fields below are used
m_ViewPoint:int # image viewpoint: 0 = current 3D view, 1 = all custom views (default 0); image output only
m_ImageCount:int # turntable image count: 0-7 = 2, 4, 8, 16, 32, 64, 180, 360 images (default 1 = 4 images)
m_RotationAngle:int # turntable rotation angle in degrees, 1-360 (default 360)
m_RotationAxis:int # turntable axis: 0 = auto (scene center), 1 = origin, 2 = custom (m_RotationAxisX / Z) (default 0)
m_RotationAxisX:float # X position of the custom turntable axis, in the current length unit; used when m_RotationAxis is 2
m_RotationAxisZ:float # Z position of the custom turntable axis, in the current length unit; used when m_RotationAxis is 2
m_RotationDirection:int # turntable direction: 0 = counterclockwise, 1 = clockwise (default 0)
m_bTurnTableSaveVideo:bool # if true, the turntable render also saves a video in m_VideoFormat (default false)
m_TotalDuration:float # not used: the video length is m_FrameDuration x the image count
m_FrameDuration:float # seconds each turntable image is shown in the video / GIF, > 0 (default 1)
m_bSaveGIF:bool # if true, the turntable render also saves an animated GIF (default false)
m_Region:int # animation frames to render: 0 = entire animation, 1 = play region (default 0)
m_bAnimationSaveVideo:bool # if true, the animation render also saves a video in m_VideoFormat (default false)
m_AnimationFPS:float # frames per second of the animation render, > 0 (default 30)
m_bAnimSaveGIF:bool # if true, the animation render also saves an animated GIF (default false)
m_ImageSize:int # size preset: 0 = 640x480, 1 = 720x480, 2 = 720x576, 3 = 1280x720, 4 = 1920x1080, 5-11 = A3, A4, B4, B5, Legal, Letter, Tabloid, 12 = custom (m_Width / m_Height) (default 0)
m_Orientation:int # 0 = portrait, 1 = landscape (default 0)
m_Width:float # custom image width in m_Unit, > 0; used when m_ImageSize is 12 (default 480)
m_Height:float # custom image height in m_Unit, > 0; used when m_ImageSize is 12 (default 640)
m_bMaintainRatio:bool # if true, keep the width / height ratio when the size changes (default false)
m_Unit:int # unit of m_Width / m_Height: 0 = px, 1 = inch, 2 = mm, 3 = cm (default 2 = mm); custom size only
m_Resolution:int # resolution in pixels per inch, >= 1 (default 300); custom size only
m_ColorHex:str # background color as "#RRGGBB" (default "#FFFFFF"); an invalid string is ignored
m_Texture:str # background image path (.jpg / .png / .bmp / .tif / .hdr); empty = the default background
m_bTransparency:bool # if true, the background is transparent; PNG images only, not videos (default false)
m_bBackgroundCrop:bool # if true, crop the background image (Crop, final render only) (default false)
m_FileName:str # output file name; ignored if empty or if it contains \ / : * ? " < > | (default "Untitled")
m_FilePath:str # output folder; empty = Assets/Render/, a folder that does not exist is ignored (default "")
m_ImageFormat:int # image file format: 0 = PNG, 1 = JPG (default 0)
m_VideoFormat:int # video file format: 0 = AVI (MOV on macOS), 1 = MP4 (default 0)
m_bPanaromicCustomView:bool # if true, also save one image with all custom views side by side (default false)
m_bPanaromicColorways:bool # if true, also save one image with all colorways side by side (default false)
m_bSaveHtml:bool # if true, also save an HTML page that shows the rendered images (default false)
RenderPropertyOptions
"""
Render > Render Properties (engine, finish conditions, quality, color mapping) for UtilityAPI::SetRenderingProperties, without the dialog.
"""
m_RenderEngineType:int # render engine: 0 = CPU, 1 = GPU (CUDA / HIP, or Metal on Apple silicon) (default 0)
m_bCPUSupporting:bool # if true, the CPU renders along with the GPU; GPU engine only (default false)
m_bLowGPUPriority:bool # if true, leave GPU time to other programs; GPU engine only (default false)
m_NoiseThreshold:float # noise level at which rendering stops, 0.001-0.1; lower is cleaner but slower (default 0.01)
m_MaxRenderTime:int # maximum render time in minutes, 1-100 (default 0 = keep the current value)
m_SeamPuckeringIntensity:float # strength of seam puckering in the render, 0-5 (default 0.5)
m_LightQuality:int # light quality: 0 = low, 1 = medium, 2 = high, 3 = very high (default 0)
m_MaterialQuality:int # material quality: 0 = low, 1 = medium, 2 = high, 3 = very high (default 0)
m_bKnitWearFrustumCulling:bool # if true, skip knitwear mesh outside the camera view; final render only (default true)
m_bKnitWearLOD:bool # if true, use knitwear level of detail (mesh optimization); final render only (default true)
m_ColorMappingType:int # color mapping: 0 = HSV exponential, 1 = Reinhard (uses m_BurnValue) (default 0)
m_BurnValue:float # Reinhard burn value, 0-1 (1 = linear); used when m_ColorMappingType is 1 (default 0.5)
m_bLinearWorkFlow:bool # if true, render with the linear workflow (default false)
m_ImageFilterSize:float # image filter size, 1-10 (default 1)
ExportDxfOption
"""
Options for ExportDxf as parameters without dialogs in CLO API
"""
m_bDuplicateNotch:bool # if true, duplicate sewing-line notches on the seam allowance (default: true)
m_bCheckedConvertCtoS:bool # if true, convert curve points to straight points to export
m_bExportWithoutGrading:bool # if true, export without grading information
m_bOptimizeCurvePoints:bool # if true, optimize curve points with removing the points close to some points
m_bExportWithoutBaselines:bool # if true, export only out lines without base lines
m_bExportSelectedPatterns:bool # if true, export selected patterns
m_ExportDXFFormatType:int # 0: DXF-AAMA, 1: DXF-ASTM, 2: Gerber(DXF-AAMA)
m_ExportBBType:int # 1: Use Bounding box covering all the patterns, 2: use Bounding Box for each pattern
m_fScale:float # scale variables
m_RotateAngle:float # Rotation angle for patterns
m_bMetric:bool # Measurement unit shown on DXF, true: Metric, false: English
ExportUSDOption
"""
Options for ExportUSD as parameters without dialogs in CLO API
"""
m_upAxis:int # 1: Y Axis as up, 2 : Z Axis as up
m_metersPerUnit:double # Set unit value based on 1 m
m_bAssignAvatar:bool # If true export geometry and material data of avatar to the USD file
m_avatarPrimPath:str # Set prim path of current geometry and material data default path is '/Avatar'
m_bAssignGarment:bool # If true export geometry and material of cloth to the USD file
m_garmentPrimPath:str # Set prim path of current geometry and material data default path is '/Garment'
m_bAssignSceneNProp:bool # If true export geometry and material of scne & prop to the USD file
m_sceneNPropPrimPath:str # Set prim path of current geometry data default path is '/SceneAndProp'
m_bExportSimulationData:bool # If true export simulation data to the USD file
m_bExportStrandData:bool # If true export strand data as BasisCurve to the USD file
ExportTechPackType
"""
Export Techpack types
"""
CLO_TECH_PACK = 0 # techpack used in CLO
CLO_SET_TECH_PACK = 1 # techpack used in CLOSET
CLO_SET_SREST = 2 # techpack used in SREST (used in CLOSET)
CLO_API_TECH_PACK = 3 # techpack for CLO API (excludes the internal values used in CLO Virtual Fashion)
CLO_DUMMY = 4 # n/a
ExportTechpackOption
"""
Options for Export Techpack as parameters without dialogs in CLO API
"""
m_bSaveZpac:bool # if true, save garment as a (project name).zpac file and describe the path on the techpack json (CLO API only)
m_bSaveZprj:bool # if true, save project as a (project name).zprj file and describe the path on the techpack json (CLO API only)
m_bCaptureSceneThumbnailWithoutAvatar:bool # if true, capture the thumbnail images as image files and describe the paths on the techpack json
m_bCaptureSceneThumbnailWithMark:bool # if true, capture the thumbnail images with markers as image files and describe the paths on the techpack json (CLO API and CLOSET)
m_bCaptureSceneThumbnailWithAvatar:bool # if true, capture the thumbnail images with avatars for all the colorways and describe the paths on the techpack json
m_bCaptureItemThumbnail:bool # if true, capture thumbnail for pattern piecese (for CLO API and Techpack Image)
m_bCaptureHighResolutionFrontThumbnail:bool # if true, capture bigger thumbnail for 2D First Mode (CLOSET)
m_bCapturePatternLayoutThumbnail:bool # if true, capture thumbnail for pattern layout (for CLO API and Techpack Image)
m_bCapturePatternLayoutThumbnailWithFabricMark:bool # if true, capture thumbnail for pattern layout with fabric marks (for CLO API and Techpack Image)
m_bCapturePatternLayoutThumbnailWithTrimMark:bool # if true, capture thumbnail for pattern layout with trim marks (for CLO API and Techpack Image)
m_bCapturePatternLayoutThumbnailForCloset2DPatternWindow:bool # capture each colorway's pattern layout image for the CLO-SET 2D pattern window (default true)
m_bCaptureTurntableThumbnail:bool # if true, capture the turntable thumbnail images as image files and describe the paths on the techpack json
m_bExportTextures:bool # if true, export all the textures as image files and describe the paths on the techpack json (CLO API only)
m_bUseAverageColor:bool # if true, calculate average color for the image used in materials and show the values in techpack json
m_bShowModalProgressBar:bool # if true, a Modal progress bar will appear to show progress in CLO Software
m_bUseCustomImageAsThumbnail:bool # if true, thumbnail image will be replaced with a custom image from the MVFile Header
m_ShowBaseLineFor3DCapturePerColorway:map[ int, bool] # map(colorway index, show/hide flag) for Base Line while capturing 3D
m_AuthenticationKeyForAPI:str # For companies to use extended functionality in the CLO API / SDK
m_ExportType:ExportTechPackType # 0: CLO_TECH_PACK, 1: CLO_SET_TECH_PACK, 2: CLO_SET_SREST, 3: CLO_API_TECH_PACK, 4: CLO_DUMMY
CloApiRgb
"""
RGB Values structure for Color related api calls in CLO API
"""
R:int # Red: 0 ~ 255
G:int # Green: 0 ~ 255
B:int # Blue: 0 ~ 255
CloGroundData
"""
Tip-to-ground drape measurement returned by TestAPI::GetTiptoGroundData: the heights of the four corners of a 4-line pattern.
"""
index:int # index of the measured pattern (the last 4-line pattern in the pattern list); -1 if none
avg_pos:float # average height of the four corners in mm; -1 if none
r:float # height (3D Y, mm) of the start point of the pattern's line 0; -1 if none
g:float # height (3D Y, mm) of the start point of the pattern's line 1; -1 if none
b:float # height (3D Y, mm) of the start point of the pattern's line 2; -1 if none
y:float # height (3D Y, mm) of the start point of the pattern's line 3; -1 if none
CloApiRgba
"""
RGBA Values structure for Color related api calls in CLO API
"""
R:int # Red: 0 ~ 255
G:int # Green: 0 ~ 255
B:int # Blue: 0 ~ 255
A:int # Alpha: 0 ~ 255
RenderColorwayType
"""
Colorway Type for ExportRenderingImage in CLO API
"""
SINGLE = 0 # Export Rendering Image for only the current colorway
ALL = 1 # Export Rendering Image for all the colorways
USER_DEFINED = 2 # Export Rendering Image per the current setting in the colorway type
AttachFileInfo
"""
AttachFileInfo structure for attaching files when using REST API
"""
fileName:str # The fileName
filePath:str # The file path
MimeData
"""
MimeData structure for form-data type
"""
mimeType:str # MIME type
mimeNmae:str # MIME field name
mimeValue:str # MIME value
HttpMethodType
"""
Http method Type for Http request
"""
HTTP_GET = 0 # HTTP GET method
HTTP_POST = 1 # HTTP POST method
HTTP_PUT = 2 # HTTP PUT method
CloApiRestRequest
"""
CloApiRestRequest structure that requests http when using REST API
"""
header:list[tuple[str, str]] # Http header
method:HttpMethodType # Http method Type
payload:str # Http payload supports json/raw.
url:str # Request url
attachements:list[AttachFileInfo] # List of Http attachments, but with PUT method there can be only one file.
formData:list[MimeData] # List of multi form-data
CloApiRestResponse
"""
CloApiRestResponse structure that responses http when using REST API
"""
header:str # Http header
buffer:str # Http response body
responseCode:int # Http response code
CloApiGraphicPosition
"""
A 2D point of a graphic placement, in mm, in the pattern piece's own frame (before it is moved, rotated or flipped), y up.
"""
x:float # X coordinate in mm
y:float # Y coordinate in mm, y up
CloApiGraphicDimensions
"""
Width and height of a graphic style or of a placed graphic, in mm.
"""
width:float # width in mm (-1 when GetGraphicStyleDimensions fails)
height:float # height in mm (-1 when GetGraphicStyleDimensions fails)
CloApiGraphicPlacementPoints
"""
Center, corners and edge midpoints of a placed graphic, returned by UtilityAPI::GetGraphicStylePlacementPoints.
"""
center:CloApiGraphicPosition # center of the graphic's placement box
corners:list[CloApiGraphicPosition] # box corners: bottom-left, bottom-right, top-right, top-left (empty for a 3D query)
edgeCenters:list[CloApiGraphicPosition] # edge midpoints: bottom, right, top, left (empty for a 3D query)
CleanedPathResult
"""
Result of UtilityAPI::CleanFilePath - one sanitized file name / path in several representations.
"""
detected_type:str # "filename" or "fullpath"
universal_clean_path:str # cleaned path using forward slashes '/'
windows_native_path:str # cleaned path using backslashes '\'
windows_long_path_variant:str # windows_native_path with the \\?\ (or \\?\UNC\) prefix for long absolute paths
isolated_filename:str # the cleaned final file name only
http_safe_filename:str # percent-encoded form of isolated_filename
CloApiAnchorPoint
"""
Point of a graphic's box, in the graphic's own directions after rotation. Used by RepositionGraphicByAnchor, ReplaceGraphicStyleFromImage and PlaceTopstitchOnInternalLine.
Layout (Y increases upward):
8(LEFT_UP)----1(UP)----2(RIGHT_UP)
| |
7(LEFT) 0(CENTER) 3(RIGHT)
| |
6(LEFT_DOWN)--5(DOWN)--4(RIGHT_DOWN)
"""
CLOAPI_ANCHOR_CENTER = 0 # center of the box
CLOAPI_ANCHOR_UP = 1 # midpoint of the top edge
CLOAPI_ANCHOR_RIGHT_UP = 2 # top-right corner
CLOAPI_ANCHOR_RIGHT = 3 # midpoint of the right edge
CLOAPI_ANCHOR_RIGHT_DOWN = 4 # bottom-right corner
CLOAPI_ANCHOR_DOWN = 5 # midpoint of the bottom edge
CLOAPI_ANCHOR_LEFT_DOWN = 6 # bottom-left corner
CLOAPI_ANCHOR_LEFT = 7 # midpoint of the left edge
CLOAPI_ANCHOR_LEFT_UP = 8 # top-left corner
SeamlinePairGroupResult
"""
Status code returned by the AddSeamlinePairGroupPartial family of APIs.
SEAMLINE_PAIR_SUCCESS is 0 and every failure is negative, so test the result with
'== SEAMLINE_PAIR_SUCCESS' rather than for truthiness (0 is falsy in Python).
"""
SEAMLINE_PAIR_SUCCESS = 0 # The stitch was created.
SEAMLINE_PAIR_ERROR_NO_PATTERN_EDITOR = -1 # No pattern editor is available in the current scene.
SEAMLINE_PAIR_ERROR_INVALID_PATTERN = -2 # A pattern index does not refer to an existing pattern.
SEAMLINE_PAIR_ERROR_INVALID_INNER_SHAPE = -3 # An inner shape (child) index does not refer to an existing inner shape.
SEAMLINE_PAIR_ERROR_INVALID_LINE = -4 # A line index does not refer to an existing line on the given shape.
SEAMLINE_PAIR_ERROR_RATIO_OUT_OF_RANGE = -5 # A start/end ratio lies outside the closed range [0.0, 1.0].
SEAMLINE_PAIR_ERROR_EMPTY_SEGMENT = -6 # A start ratio is not strictly less than its end ratio, so the segment is empty or inverted.
SEAMLINE_PAIR_ERROR_CREATE_FAILED = -7 # The stitch passed validation but the pattern editor rejected it.
CloApiPoint
"""
A 2D coordinate in the pattern 2D space. Used by the internal-line geometry APIs.
"""
x:float # X coordinate in mm, in the pattern piece's own frame
y:float # Y coordinate in mm, in the pattern piece's own frame, y up
CloApiLine
"""
A straight 2D line segment identified by a line number and its two endpoints.
Curved internal lines are represented by their start/end points (chord).
"""
lineNumber:int # 0-based number of the line among the pattern's internal-shape lines (default -1)
start:CloApiPoint # start point of the line
end:CloApiPoint # end point of the line
CloApiIntersectionPoint
"""
The coordinate where two lines meet, referencing both lines by their line numbers.
"""
coordinate:CloApiPoint # point where the two lines cross or touch
lineANumber:int # lineNumber of the first line (default -1)
lineBNumber:int # lineNumber of the second line (default -1)
CloApiInternalShape
"""
Root container for internal-line geometry: a named group of line segments and the intersection points between them.
"""
name:str # name of the shape, for example "InternalShape_0"
lines:list[CloApiLine] # line segments of the shape: internal lines that cross or touch within 0.5 mm
intersections:list[CloApiIntersectionPoint] # points where the shape's lines cross or touch
ImportAlembicOption
"""
Options for ImportAlembic as parameters without dialogs in CLO API
"""
aLoadType:bool # if false means open, true means add
aUnit:float # unit of the .abc file, an AlembicUnit value (default 0.01 = MEASURE_UNIT_MM)
aScale:float # 0 ~ 1
boolAddArrangementPoints:bool # if true add the arrangement points
boolAutoCreateFittingSuit:bool # if true create fitting suit
morphingFrameCount:int # set the morphing frame count ex: 1 to 99
boolMoveGarmentToStartPosition:bool # if true, this will select moveGarmentToStartPosition
boolTrace2DPatternsFromUVMap:bool # if true, this will select trace2DPatternsFromUVMap
boolAlignBottonToGround:bool # @deprecated [DEV-21494] Has never had any effect: nothing reads this field, and
# the GUI Alembic import dialog has no align-to-ground control to match it against
# (see c_ImportAlembic / c_SettingsImportAlembic in DialogImportOBJ.cpp). Wiring it
# would give the API a behaviour the GUI does not have, so it is documented as
# inert rather than implemented. Kept - with its original spelling - because
# removing or renaming it would break existing client scripts. To place an avatar
# on the ground, use ImportPose's _bBottomToGround. Pending a product decision.
# [inert - see above] if true, set the allignment to bottom
translationValueX:float # set x-offset value per the position-value in 3D Window for Avatar/Garment (left - right) unit (mm)
translationValueY:float # set y-offset value per the position-value in 3D Window for Avatar/Garment (up - down) unit (mm)
translationValueZ:float # set z-offset value per the position-value in 3D Window for Avatar/Garment (monitor - user) unit (mm)
PatternSnapShotPaperPreset
"""
Values for PatternSnapShotSizeOption.m_paperPreset. Read them from an instance, for example ApiTypes.PatternSnapShotPaperPreset().A3.
"""
A4:int # A4 (0)
A3:int # A3 (1)
B5:int # B5 (2)
B4:int # B4 (3)
Letter:int # Letter (4)
Legal:int # Legal (5)
Tabloid:int # Tabloid (6)
WideFormat_24:int # wide-format roll, 24 inches wide; the length follows the patterns (7)
WideFormat_36:int # wide-format roll, 36 inches wide; the length follows the patterns (8)
WideFormat_44:int # wide-format roll, 44 inches wide; the length follows the patterns (9)
oneToOne:int # 1:1 scale; Print Layout (mode 1) only (10)
Custom:int # custom size from m_width / m_height in mm (11)
PatternSnapShotPaperUnit
"""
Values for PatternSnapShotSizeOption.m_unit.
"""
Pixel:int # pixels (0)
Inches:int # inches (1)
Milimeters:int # millimeters (2)
Centimeters:int # centimeters (3)
PatternSnapShotSizeOption
"""
Paper size and resolution of the 2D pattern snapshot, for UtilityAPI::SetPatternSnapShotSizeOption (mode 0 = 2D window, 1 = Print Layout). Set writes every field.
"""
m_width:float # always set mm
m_height:float # always set mm
m_resolution:int # resolution in DPI, clamped to 72-1000 (default 0, applied as 72); PNG / JPEG only
m_paperPreset:int # PatternSnapShotPaperPreset value (0 = A4 ... 11 = Custom); out of range = A4 (default 0)
m_orientation:int # 0 = portrait, 1 = landscape; swaps width and height, ignored for wide-format presets (default 0)
m_unit:int # display unit, PatternSnapShotPaperUnit (0 = pixel, 1 = inch, 2 = mm, 3 = cm); m_width / m_height stay in mm (default 0)
PatternSnapShotLineType
"""
Values for the *Type fields of PatternSnapShotLineOption.
"""
DefualtLine:int # solid line (1)
DottedLine:int # dotted line (2)
DashedLine:int # dashed line (3)
PatternSnapShotLineOption
"""
Visibility, color and line style of each line kind in the 2D pattern snapshot, for UtilityAPI::SetPatternSnapShotLineOption. Colors are RGBA 0-255 (alpha is not drawn); line types are PatternSnapShotLineType values: 1 = solid, 2 = dotted, 3 = dashed.
"""
ShowPatternOutline:bool # draw the pattern outline; forced on when neither seam allowance nor reference line is shown (default true)
PatternOutlineColor:CloApiRgba # pattern outline color (default opaque black)
PatternOutLineType:int # pattern outline style: 1 = solid, 2 = dotted, 3 = dashed (default 1)
ShowInternalLine:bool # draw internal lines (default true)
InternalLineColor:CloApiRgba # internal line color (default opaque black)
InternalLineType:int # internal line style: 1 = solid, 2 = dotted, 3 = dashed (default 1)
ShowGraphicOutline:bool # draw graphic outlines (default true)
GraphicOutlineColor:CloApiRgba # graphic outline color (default opaque black)
GraphicOutlineType:int # graphic outline style: 1 = solid, 2 = dotted, 3 = dashed (default 1)
ShowBaseline:bool # draw baselines (default true)
BaselineColor:CloApiRgba # baseline color (default opaque black)
BaselineType:int # baseline style: 1 = solid, 2 = dotted, 3 = dashed (default 1)
ShowNotch:bool # draw notches on the seam allowance (default true)
NotchColor:CloApiRgba # seam allowance notch color (default opaque black)
NotchType:int # seam allowance notch style: 1 = solid, 2 = dotted, 3 = dashed (default 1)
ShowSeamAllowance:bool # draw seam allowance lines (default true)
SeamAllowanceColor:CloApiRgba # seam allowance color (default opaque black)
SeamAllowanceType:int # seam allowance style: 1 = solid, 2 = dotted, 3 = dashed (default 1)
ShowSymmetricInstanceLine:bool # draw the lines of symmetric / instance patterns (default true)
SymmetricInstanceLineColor:CloApiRgba # symmetric / instance pattern line color (default opaque black)
SymmetricInstanceLineType:int # symmetric / instance pattern line style: 1 = solid, 2 = dotted, 3 = dashed (default 1)
ShowReferenceLine:bool # draw reference lines (default true)
ReferenceLineColor:CloApiRgba # reference line color (default opaque black)
ReferenceLineType:int # reference line style: 1 = solid, 2 = dotted, 3 = dashed (default 1)
PatternSnapShotImageOption
"""
Textures and graphics drawn in the 2D pattern snapshot, for UtilityAPI::SetPatternSnapShotImageOption.
"""
ShowFabricTexture:bool # draw the fabric texture (default true)
ShowPatternTexture:bool # draw pattern textures on the fabric; Print Layout (mode 1) only (default true)
ShowGraphicTexture:bool # draw graphics (default true)
FabricTextureOpacity:float # fabric texture opacity in percent, 0-100; Print Layout (default 100)
PatternSnapShotPrintType
"""
Values for the *Type fields of PatternSnapShotInformationOption: the text size.
"""
ShrinkToFit:int # shrink the text to fit the pattern (1)
ActualSize:int # actual size (2)
PatternSnapShotInformationOption
"""
Text and markings printed in the 2D pattern snapshot, for UtilityAPI::SetPatternSnapShotInformationOption. Each item has a text size, a PatternSnapShotPrintType value: 1 = shrink to fit, 2 = actual size.
"""
ShowPatternName:bool # print pattern names (default true)
PatternNameType:int # pattern name text size: 1 = shrink to fit, 2 = actual size (default 2)
ShowPatternAnnotation:bool # print pattern annotations (default true)
PatternAnnotationType:int # annotation text size: 1 = shrink to fit, 2 = actual size (default 2)
ShowLineLength:bool # print line lengths (default true)
LineLengthType:int # line length text size: 1 = shrink to fit, 2 = actual size (default 2)
ShowGrainLine:bool # print grain lines (default true)
GrainLineType:int # grain line text size: 1 = shrink to fit, 2 = actual size (default 2)
ShowButtonHole:bool # print buttons and buttonholes (default true)
ButtonHoleType:int # button / buttonhole text size: 1 = shrink to fit, 2 = actual size (default 2)
ShowSeamTaping:bool # print seam taping (default true)
SeamTapingType:int # seam taping text size: 1 = shrink to fit, 2 = actual size (default 2)
ShowMeasurement2D:bool # print 2D measurements (default true)
Measurement2DType:int # 2D measurement text size: 1 = shrink to fit, 2 = actual size (default 2)
ShowGradingSizeName:bool # print grading size names; Print Layout (default true)
GradingSizeNameType:int # grading size name text size: 1 = shrink to fit, 2 = actual size (default 2)
ShowNestInformation:bool # print the nesting information; Print Layout (default true)
NestInformationType:int # nesting information text size: 1 = shrink to fit, 2 = actual size (default 2)
PatternSnapShotColorwayOption
"""
Colorways of the 2D pattern snapshot, for UtilityAPI::SetPatternSnapShotColorwayOption (mode 0 = 2D window, 1 = Print Layout).
"""
ColorwayOption:int # not applied by the API yet (Get returns 0); the dialog's choice is kept
m_customSelectColorwayIndexes:list[ int] # 0-based colorway indexes used when the snapshot's colorway choice is Custom (default [0])
TextureMapTarget
"""
Selects which texture map a texture-transform API targets.
Used by the unified texture-transform getters/setters (Fabric, Print, Graphic)
to choose the map the TransformOptions apply to.
"""
TEXTURE_MAP_BASE_COLOR = 0 # Base color / albedo map
TEXTURE_MAP_NORMAL = 1 # Normal map
TEXTURE_MAP_OPACITY = 2 # Opacity (alpha) map
TEXTURE_MAP_ROUGHNESS = 3 # Roughness (glossiness) map
TEXTURE_MAP_METALNESS = 4 # Metalness map
TEXTURE_MAP_DISPLACEMENT = 5 # Displacement map
ObjectBrowserType
"""
Object Browser category targeted by the unified material texture-transform API.
"""
OB_TYPE_FABRIC = 0 # Fabric (base color, or print/AOP via targetPrint)
OB_TYPE_GRAPHIC = 1 # Graphic style
OB_TYPE_TRIM = 2 # Trim object style (subItemIndex = trim mesh index)
OB_TYPE_BUTTON = 3 # Button head style (subItemIndex: 0=Button body, 1=Thread)
OB_TYPE_BUTTON_HOLE = 4 # Buttonhole style
OB_TYPE_PUCKERING = 5 # Puckering style
OB_TYPE_ZIPPER = 6 # Zipper style. subItemIndex selects the component: 0=Tape, 1=Teeth, 2=Slider, 3=Puller, 4=Bottom Slider, 5=Bottom Puller, 6=Top Stopper, 7=Bottom Stopper. targetComponent must be COMPONENT_NONE. Each index reports ONE representative material; a component built from several meshes (stoppers) exposes only the first, which need not be the one the Object Browser shows
OB_TYPE_POM = 7 # Points of Measure (POM) tab
OB_TYPE_GRADING = 8 # Grading tab
OB_TYPE_PATTERN = 9 # Pattern / Scene tree tab (maps to GUI_SCENEGRAPH)
OB_TYPE_TOPSTITCH = 10 # Top-stitch style (subItemIndex = stitch line index)
OB_TYPE_AVATAR = 11 # Avatar material (objectIndex = avatar index, subItemIndex = mesh index over the avatar's non-accessory meshes)
ObjectBrowserContextOptions
"""
Object Browser context: identifies which object/sub-item a material texture transform targets.
"""
type:ObjectBrowserType # object category (see ObjectBrowserType)
targetPrint:bool # FABRIC only: target the print/AOP texture (true) vs base color (false)
styleChipIndex:int # AOP/style-chip index. -1 = first/default
subItemIndex:int # sub-item/mesh index: button material tab (0=Button body, 1=Thread), trim mesh index, zipper component, top-stitch line index, or avatar mesh index. Default 0
folderName:str # Object Browser folder this object's context is scoped to. Empty ("") = root directory. GetObjectBrowserItems (FABRIC): folder to fetch from (non-empty = that named folder; empty result if not found)
bIncludeUnusedObjects:bool # when false, free/unused objects (not used by any colorway) are filtered out
bShowAllColorways:bool # (material-context API) expose every colorway rather than only the current one. Default false
showAllColorways:int # GetObjectBrowserItems colorway scope (tri-state). -1 (default) = follow the app's per-type "Show All Colorways" UI toggle. 0 = force the single colorway given by colorwayIndex. 1 = force all colorways. 0 and 1 override the UI toggle
colorwayIndex:int # GetObjectBrowserItems: colorway to scope the "used" check to when the effective "show all colorways" is off. -1 = current colorway
bIncludePrints:bool # FABRIC only. Default true. When true, the fabric response is an ObjectList of entries, each with Name and (only when the fabric has a print) PrintName. Set false to get a flat name list without prints
PropertyEditorContextOptions
"""
Property Editor context: which material face and texture map a transform applies to.
"""
materialSide:int # which material face: 0=Front, 1=Back, 2=Side
mapType:TextureMapTarget # which texture map (see TextureMapTarget)
TransformOptions
"""
Options for AOP (All Over Print) texture transformation operations
Provides parameters to control texture transformations including rotation, scaling, and translation.
Supports both percentage-based and millimeter-based sizing.
"""
angle:float # Rotation angle in degrees (0.0 = no rotation)
widthMm:float # Width in millimeters (system unit). Set to 0.0 to use widthPercent instead.
widthPercent:float # Width as percentage (100.0 = 100%, original size)
heightMm:float # Height in millimeters (system unit). Set to 0.0 to use heightPercent instead.
heightPercent:float # Height as percentage (100.0 = 100%, original size)
aspectRatioFixed:bool # true to maintain aspect ratio during scaling, false to allow independent width/height scaling
posX:float # Horizontal position/translation in display units
posY:float # Vertical position/translation in display units}
ZipperObjectType
"""
Specifies the zipper part type to generate via GenerateZippersFromObj.
Each value corresponds to a specific output file format and save behavior.
"""
ZIPPER_OBJECT_SLIDER = 0 # Slider only (.zsl): single OBJ input, saved as a single shape.
ZIPPER_OBJECT_PULLER = 1 # Puller only (.zpu): single OBJ input, saved as a single shape.
ZIPPER_OBJECT_SLIDER_PULLER = 2 # Slider + Puller combined (.zss): single OBJ with two meshes, saved as dual shape.
ZIPPER_OBJECT_TEETH = 3 # Zipper teeth (.zth): single OBJ, loaded with fixed internal axes.
ZIPPER_OBJECT_TOP_STOPPER = 4 # Top stopper (.zst): two OBJ inputs, saved as dual shape.
ZIPPER_OBJECT_BOTTOM_OPEN_STOPPER = 5 # Bottom open-end stopper (.zst): two OBJ inputs, saved as dual shape.
ZIPPER_OBJECT_BOTTOM_CLOSED_STOPPER = 6 # Bottom closed-end stopper (.zst): single OBJ input, saved as a single shape.
ZipperScaleUnit
"""
Unit of measurement for the OBJ geometry passed to GenerateZippersFromObj.
Mirrors the scale unit combobox in the "Register OBJ" dialog.
"""
ZIPPER_SCALE_MM = 0 # 1 mm = 0.01 CLO units (default)
ZIPPER_SCALE_CM = 1 # 1 cm = 0.1 CLO units
ZIPPER_SCALE_INCH = 2 # 1 in = 0.254 CLO units
ZIPPER_SCALE_FEET = 3 # 1 ft = 3.048 CLO units
ZIPPER_SCALE_M = 4 # 1 m = 10.0 CLO units
ZIPPER_SCALE_8_FEET = 5 # 8 ft = 24.384 CLO units
ZIPPER_SCALE_8_6_FEET = 6 # 8'6" = 26.2128 CLO units
ZIPPER_SCALE_AUTO = 7 # Auto scale from OBJ bounding box (applies 0.01 factor with auto-scale flag)
GraphicRemoveMode
"""
Specifies which targets a RemoveGraphicStyle call should delete from.
"""
GRAPHIC_REMOVE_BROWSER_ONLY = 0 # Delete from Object Browser only. Fails if the graphic is currently applied to a pattern.
GRAPHIC_REMOVE_PATTERN_ONLY = 1 # Delete from Pattern only (retain in Object Browser).
GRAPHIC_REMOVE_PATTERN_AND_BROWSER = 2 # Delete from both Pattern and Object Browser.
ObjRegisterOptions
"""
Full option set for GenerateZippersFromObj, mirroring all settings in the
"Register OBJ" dialog (DialogRegisterZipperObject). Supports all 7 zipper part types:
Slider, Puller, Slider+Puller, Teeth, Top Stopper, Bottom Open Stopper, Bottom Closed Stopper.
"""
objectType:ZipperObjectType # Zipper part type. Determines the output file format.
objFilePath:str # Full path to the primary OBJ file.
secondObjFilePath:str # Full path to the secondary OBJ file. Required for ZIPPER_OBJECT_TOP_STOPPER and ZIPPER_OBJECT_BOTTOM_OPEN_STOPPER.
sliderMeshNames:list[str] # OBJ group names to assign as Slider mesh(es). Empty list triggers auto-assignment. (ZIPPER_OBJECT_SLIDER_PULLER only)
pullerMeshNames:list[str] # OBJ group names to assign as Puller mesh(es). Empty list triggers auto-assignment. (ZIPPER_OBJECT_SLIDER_PULLER only)
scaleUnit:ZipperScaleUnit # Measurement unit. Combined with scaleValue to compute the final scale factor.
scaleValue:double # Scale percentage (e.g., 100.0 = 100%). Multiplied by the unit factor (e.g., 0.01 for MM yields 1.0 at 100%).
axisX:int # OBJ axis mapped to CLO X (0=X, 1=Y, 2=Z). Default: 0.
axisY:int # OBJ axis mapped to CLO Y (0=X, 1=Y, 2=Z). Default: 1.
axisZ:int # OBJ axis mapped to CLO Z (0=X, 1=Y, 2=Z). Default: 2.
invertX:bool # Invert the mapped X axis. Default: false.
invertY:bool # Invert the mapped Y axis. Default: false.
invertZ:bool # Invert the mapped Z axis. Default: false.
pullerPositionX:float # Puller anchor X position in the zipper coordinate system. (ZIPPER_OBJECT_SLIDER type only)
pullerPositionY:float # Puller anchor Y position in the zipper coordinate system. (ZIPPER_OBJECT_SLIDER type only)
pullerPositionZ:float # Puller anchor Z position in the zipper coordinate system. (ZIPPER_OBJECT_SLIDER type only)
teethSpace:double # Spacing between zipper teeth rows in CLO units. (ZIPPER_OBJECT_TEETH type only) Default: 0.0.
addToObjectBrowser:bool # If true, refreshes the Object Browser asset list after saving so the new preset appears in the dropdown.
MaterialMapTransformationOptions
"""
Texture transform (rotate/scale/translate) shared by every material map that supports transformation.
"""
angle:float # Rotation angle in degrees. Default 0.
width_mm:float # Width in millimeters. Default 0 (use width_percent instead).
width_percent:float # Width as a percentage (100 = original size). Default 100.
height_mm:float # Height in millimeters. Default 0 (use height_percent instead).
height_percent:float # Height as a percentage (100 = original size). Default 100.
aspect_ratio_on:bool # Keep width/height aspect ratio locked while scaling. Default true.
position_x_mm:float # Horizontal offset in millimeters. Default 0.
position_y_mm:float # Vertical offset in millimeters. Default 0.
MaterialBaseColorMapOptions
"""
Base color (albedo) map configuration and its transformation.
"""
has_map:bool # A base color map texture is assigned. Default false.
image_path:str # Source image file path of the assigned map. Read-only, empty when no map is assigned.
recolor_enabled:bool # Recolor toggle. Default false.
desaturate_enabled:bool # Desaturate toggle. Default false.
switch_enabled:bool # Switch (invert channels) toggle. Default false.
shadow_intensity:int # Desaturate 'Shadow Intensity' (0-100). Applies when desaturate is on. Default 0.
shadow_brightness:int # Desaturate 'Shadow Brightness' (a.k.a. shadow gray, 0-100). Applies when desaturate is on. Default 0.
transformation:MaterialMapTransformationOptions # texture transform of the base color map; read by GetMaterialProperties, ignored by SetMaterialProperties
MaterialBaseColorOptions
"""
Base color value (hex/named color) plus its optional map.
"""
color_hex_or_name:str # Base color as hex (#RRGGBB) or a named color. Default "(None)".
map:MaterialBaseColorMapOptions # base color texture map: file, color options and transform
MaterialNormalMapOptions
"""
Normal map configuration.
"""
has_normal_map:bool # A normal map texture is assigned. Default false.
image_path:str # Source image file path of the assigned map. Read-only, empty when no map is assigned.
intensity:int # Normal map intensity (0-100). Default 50.
transformation:MaterialMapTransformationOptions # texture transform of the normal map; read by GetMaterialProperties, ignored by SetMaterialProperties
MaterialDisplacementMapOptions
"""
Displacement map configuration.
"""
has_displacement_map:bool # A displacement map texture is assigned. Default false.
image_path:str # Source image file path of the assigned map. Read-only, empty when no map is assigned.
amount_mm:float # Displacement amount in millimeters. Default 0.
shift_mm:float # Displacement shift in millimeters. Default 0.
clipping_mm:float # Displacement clipping in millimeters. Default 0.
particle_distance_mm:float # Particle distance in millimeters. Default 4.
keep_continuity:bool # Keep continuity across seams. Default false.
MaterialOpacityMapOptions
"""
Opacity map configuration and its transformation.
"""
has_map:bool # An opacity map texture is assigned. Default false.
image_path:str # Source image file path of the assigned map. Read-only, empty when no map is assigned.
mode:str # Opacity map mode (e.g. "RGB", "Alpha"). Default "RGB".
transformation:MaterialMapTransformationOptions # texture transform of the opacity map; read by GetMaterialProperties, ignored by SetMaterialProperties
MaterialOpacityOptions
"""
Opacity value plus its optional map.
"""
opacity_value:int # Opacity percentage (0-100). Default 100.
map:MaterialOpacityMapOptions # opacity texture map: file, channel and transform
MaterialRoughnessOptions
"""
Roughness (glossiness) configuration.
"""
type:str # Roughness source: "Value" or "Map". Default "Value".
has_map:bool # A roughness map texture is assigned. Default false.
image_path:str # Source image file path of the assigned map. Read-only, empty when no map is assigned.
map_intensity:int # Roughness map intensity (0-100). Default 100.
invert:bool # Invert the roughness map. Default false.
MaterialMetalnessMapOptions
"""
Metalness map configuration and its transformation.
"""
has_map:bool # A metalness map texture is assigned. Default false.
image_path:str # Source image file path of the assigned map. Read-only, empty when no map is assigned.
transformation:MaterialMapTransformationOptions # texture transform of the metalness map; read by GetMaterialProperties, ignored by SetMaterialProperties
MaterialReflectionOptions
"""
Reflection stack: roughness, reflection/metalness intensities and the metalness map.
"""
roughness:MaterialRoughnessOptions # roughness: value or map, map file, intensity and invert
reflection_intensity:int # Reflection intensity (0-100). Default 0.
metalness:int # Metalness value (0-100). Default 0.
metalness_map:MaterialMetalnessMapOptions # metalness texture map: file and transform
MaterialFaceOptions
"""
The complete material stack for a single face (Front, Back, or Side).
"""
texture_mapping:str # Texture mapping mode (e.g. "Repeat", "Unified"). Default "Repeat".
type:str # Material type (e.g. "Fabric_Matte", "PBR"). Default "Fabric_Matte".
base_color:MaterialBaseColorOptions # base color and its optional map
normal_map:MaterialNormalMapOptions # normal map: file, intensity and transform
displacement_map:MaterialDisplacementMapOptions # displacement map: file, amount, shift, clipping and particle distance
opacity:MaterialOpacityOptions # opacity and its optional map
reflection:MaterialReflectionOptions # reflection: roughness, reflection intensity, metalness and metalness map
GetBaseColorMap() -> MaterialBaseColorMapOptions # Flattened, read-only accessors for each texture map on this face. They hide the value+map
# nesting - base color and opacity carry their map under a sub-struct, roughness and metalness
# live under reflection - so a caller can fetch any map's details in a single call.
GetNormalMap() -> MaterialNormalMapOptions # read-only: the same as normal_map
GetDisplacementMap() -> MaterialDisplacementMapOptions # read-only: the same as displacement_map
GetOpacityMap() -> MaterialOpacityMapOptions # read-only: the same as opacity.map
GetRoughnessMap() -> MaterialRoughnessOptions # read-only: the same as reflection.roughness
GetMetalnessMap() -> MaterialMetalnessMapOptions # read-only: the same as reflection.metalness_map
GetPresentMaps() -> list[str] # Names of every texture map currently assigned on this face, driven by CLO_MATERIAL_FACE_MAP_TABLE
# so it stays in sync with the accessors above. e.g. returns ["base_color", "normal"] when only the
# base color and normal maps have a texture assigned; an empty list when the face has no maps.
MaterialTargetComponent
"""
The sub-component tab a material operation targets. Fabric objects expose Front/Back/Side; Button
objects expose Button/Thread; Graphics and Avatars have no tabs (COMPONENT_NONE).
"""
COMPONENT_FRONT = 0 # Fabric front face
COMPONENT_BACK = 1 # Fabric back face
COMPONENT_SIDE = 2 # Fabric side face
COMPONENT_BUTTON = 3 # Button body
COMPONENT_THREAD = 4 # Button thread
COMPONENT_NONE = -1 # Graphics, Avatar (no component tabs)
MaterialContextOptions
"""
Property-Editor context for a material get/set. Which fields are meaningful depends on the object type:
- Fabric: targetComponent (Front/Back/Side), textureMappingType, materialType
- Graphic: printType, materialType (targetComponent = COMPONENT_NONE)
- Button: targetComponent (Button/Thread), materialType
"""
targetComponent:MaterialTargetComponent # Front/Back/Side or Button/Thread tab (COMPONENT_NONE for Graphics).
textureMappingType:int # 'Texture Mapping' dropdown (0: Repeat, 1: Unified).
printType:int # 'Print Type' dropdown for Graphics.
materialType:str # 'Type' dropdown (e.g. "Fabric_Matte", "PBR").
MaterialPropertyOptions
"""
Full material property payload exposed through the SDK. Groups the per-face stacks (Front/Back/Side)
with the physical-property settings so an entire material can be read or written in one call.
contextOptions (added in DEV-20805) selects which component tab / mapping the payload applies to and
is carried inside this struct so the get/set signatures stay symmetric.
"""
contextOptions:MaterialContextOptions # which component, mapping and material type the call targets; the getter reads only this field
material_type:str # Overall material type (e.g. "PBR"). Default "PBR".
front:MaterialFaceOptions # front face material; also used for buttons, threads and single-faced objects such as graphics and trims
back:MaterialFaceOptions # back face material; used when contextOptions.targetComponent is COMPONENT_BACK
side:MaterialFaceOptions # side face material; used when contextOptions.targetComponent is COMPONENT_SIDE
physical_type:str # Physical property type (e.g. "Fabric"). Default "Fabric".
physical_preset:str # Physical property preset name. Default "Custom".
physical_thickness_mm:float # Physical thickness in millimeters. Default 0.
GetContext() -> MaterialContextOptions # Read-only accessor for the Property-Editor context this payload targets (which component tab,
# texture mapping and material type the front/back/side maps above belong to).
GetFrontFaceOptions() -> MaterialFaceOptions # Read-only accessors for each per-face material stack.
GetBackFaceOptions() -> MaterialFaceOptions # read-only: the same as back
GetSideFaceOptions() -> MaterialFaceOptions # read-only: the same as side
GetSelectedFaceOptions() -> MaterialFaceOptions* # Returns the per-face material stack for the face currently selected by contextOptions
# (targetComponent). Only COMPONENT_FRONT / COMPONENT_BACK / COMPONENT_SIDE map to a face;
# COMPONENT_BUTTON / COMPONENT_THREAD / COMPONENT_NONE have no face and return nullptr.
CloApiAvatarMeasurement
"""
One measurement defined on an avatar, returned by UtilityAPI::GetAvatarMeasurements.
"""
measurementName:str # Name shown in the Object Browser / Property Editor.
measurementType:str # "Tape", "Circumference", "Height", "Linear" or "Default".
value:float # Active-shape length (basic or surface fit), in `unit`.
basicLength:float # Basic (convex-fit) length, in `unit`.
surfaceLength:float # Surface-fit length, in `unit`.
unit:str # Current CLO display unit ("mm", "cm" or "in").
HI_RES_TOLERANCE_TYPE
"""
Property row of the Hi-Res Properties window (3D Garment > Hi-Res Garment) that owns a
Tolerance min/max range. Used by PatternAPI::GetHiResTolerance / SetHiResTolerance to select
which of the three Tolerance ranges is read or written.
"""
HI_RES_TOLERANCE_PARTICLE_DISTANCE = 0 # Particle Distance tolerance range
HI_RES_TOLERANCE_COLLISION_THICKNESS = 1 # Additional Thickness - Collision tolerance range
HI_RES_TOLERANCE_SKIN_OFFSET = 2 # Skin Offset tolerance range
CloApiGuiFormFieldType
"""
Kind of input row in gui_api.AskForm. The value of every field is reported as text in CloApiGuiFormResult.values
"""
GUI_FIELD_TEXT = 0 # Single-line text input. Value is the entered text
GUI_FIELD_CHOICE = 1 # Drop-down list built from options. Value is the selected option caption
GUI_FIELD_CHECK = 2 # Check box. Value is true or false
GUI_FIELD_NUMBER = 3 # Decimal number input. Value is the number as decimal text
CloApiGuiFormField
"""
One row of a gui_api.AskForm dialog. key must be unique inside the form and is the key of CloApiGuiFormResult.values
"""
key:str # Result key. Required and unique inside one form
label:str # Caption shown next to the input
type:CloApiGuiFormFieldType # Input kind. Default GUI_FIELD_TEXT
defaultValue:str # Initial value as text. Choice: option caption. Check: true or false. Number: decimal text
options:list[str] # Option captions for GUI_FIELD_CHOICE. Ignored by the other kinds
CloApiGuiTextResult
"""
Answer of gui_api.AskText
"""
accepted:bool # true only when the user pressed OK. false on cancel, close or headless mode
value:str # Entered text. Empty unless accepted
CloApiGuiChoiceResult
"""
Answer of gui_api.AskChoice and gui_api.AskMultiChoice
"""
accepted:bool # true only when the user pressed OK. false on cancel, close or headless mode
selectedIndex:int # AskChoice: index of the picked option. AskMultiChoice: first checked index. -1 unless accepted
selectedValue:str # AskChoice: caption of the picked option. AskMultiChoice: caption of the first checked option. Empty unless accepted
selectedIndices:list[int] # Every selected index in ascending order. Empty unless accepted
CloApiGuiFormResult
"""
Answer of gui_api.AskForm
"""
accepted:bool # true only when the user pressed OK. false on cancel, close or headless mode
values:map[str, str] # Field key to value as text. Empty unless accepted