Skip to content
weSkelDOCUMENTATION
Documentation/API reference/Curve

Curve

NURBS curves: CVs, parameters, length and editing.

ClassAPI 2.0DAG
from weSkel.src.core.node.dag.curve.lib import Curve

Run in Maya or an initialized mayapy process. Import om only if your script uses OpenMaya types.

Item Value
Classe Curve
Module weSkel.src.core.node.dag.curve.lib
Maya type nurbsCurve
Direct parent ControlPoint
Inventory Members defined or overridden here; inherited members are grouped by parent in each section.

Signature : Curve(node) → Curve.

Parameter Accepted type Default
node Union[str, om.MObject, om.MObjectHandle, om.MFnDependencyNode, om.MDagPath, om.MFnDagNode, om.MFnNurbsCurve, om.MFnNurbsCurveData] Required

Wraps an existing node or stages a wrapper for an absent name; does not create the node. Call create() separately. An incompatible object or type can raise TypeError. Shared identity can return an already registered compatible wrapper.

Python properties defined or overridden here. R: read-only; R/W: a setter exists, subject to the member notes. om.* types belong to maya.api.OpenMaya.

Property Return type Access
mfn_curve Optional[om.MFnNurbsCurve] R
mfn_curve_data Optional[om.MFnNurbsCurveData] R
cvs om.MPointArray R/W
num_cvs int R
degree int R/W
knots om.MDoubleArray R/W
form int R/W
is_rational bool R/W
area Callable[..., float] | float R
cv_positions om.MPointArray R/W

node.mfn_curveRead only

Return the MFnNurbsCurve function set, or None if unavailable.

Item Type / behavior
Returns Optional[om.MFnNurbsCurve]
Observed type on live geometry MFnNurbsCurve

node.mfn_curve_dataRead only

Return the MFnNurbsCurveData function set, or None if unavailable.

Item Type / behavior
Returns Optional[om.MFnNurbsCurveData]
Observed type on live geometry MFnNurbsCurveData

node.cvsRead / write

Get the control vertices (CVs) of the Curve.

Item Type / behavior
Returns om.MPointArray
Observed type on live geometry MPointArray
Setter value Optional[Union[om.MPointArray, List[om.MPoint], List[List[float]]]]

The setter stages points without moving live CVs, and requires a function set. Use cv_positions or set_cv_positions() for live editing.

node.num_cvsRead only

Get the number of control vertices (CVs) of the Curve.

Item Type / behavior
Returns int
Observed type on live geometry int

node.degreeRead / write

Get the degree of the Curve.

Item Type / behavior
Returns int
Observed type on live geometry int
Setter value int

node.knotsRead / write

Get the knot vector of the Curve.

Item Type / behavior
Returns om.MDoubleArray
Observed type on live geometry MDoubleArray
Setter value Union[om.MDoubleArray, Sequence[float]]

node.formRead / write

Get the form of the Curve.

Item Type / behavior
Returns int
Observed type on live geometry int
Setter value int

node.is_rationalRead / write

Get whether the Curve is rational.

Item Type / behavior
Returns bool
Observed type on live geometry bool
Setter value bool

node.areaRead only

Returns the native area method on a live curve, otherwise 0.0.

Item Type / behavior
Returns Callable[..., float] | float
Observed type on live geometry builtin_function_or_method

The code returns the native mfn_curve.area method without calling it: a callable on a live curve, otherwise 0.0, despite the float annotation. Call node.mfn_curve.area() on a valid curve for a number.

node.cv_positionsRead / write

Get the positions of all control vertices (CVs).

Item Type / behavior
Returns om.MPointArray
Observed type on live geometry MPointArray
Setter value Union[om.MPointArray, List[om.MPoint], List[List[float]]]
Properties inherited from DAGNode20
Property Return type Access Description
dag_fn om.MFnDagNode R Live DAG function set, or unattached object when missing or invalid.
dag_path om.MDagPath R One path to the current node; empty path when unavailable.
has_valid_dag_path bool R Validity of the path returned by dag_path.
full_path_name str R Full DAG path; empty string when the path is invalid.
short_name str R Maya partial DAG path, which may contain more than a leaf name; empty string when invalid.
is_valid_dag_fn bool R Function-set validity for the current object.
is_shape bool R Current object compatibility with om.MFn.kShape.
parents list[DAGNode] R All native parents.
parent DAGNode | None R/W First parent only; None under world.
is_instanced bool R Whether the DAG object has multiple paths / parents; False when missing.
children list[DAGNode] R Direct children, without recursive traversal.
is_under_world bool R Live node directly under world; False when missing.
child_count int R Number of direct path children; 0 when invalid.
child_names list[str] R Full paths of direct children; empty list when the path is invalid.
shape_count int R Number of shapes directly under this path; 0 when invalid.
shapes list[DAGNode] R Direct child shapes, including intermediate shapes; empty list when invalid.
shape_orig DAGNode | None R First child shape with intermediateObject=True; None when absent.
intermediate_shapes list[DAGNode] R All direct child shapes marked as intermediate.
draw_override_info om.MDAGDrawOverrideInfo | None R Native path override information; None when unavailable.
fn_bounding_box om.MBoundingBox | None R Local bounding box from the function set; None when unavailable.
Properties inherited from DGNode15
Property Return type Access Description
dep_fn om.MFnDependencyNode R Live function set; unattached object when the node is missing.
uuid str | None R Live UUID, or the last staged value if still available.
name str | None R/W Live name, otherwise staged name.
absolute_name str | None R Absolute namespace name from MFnDependencyNode.absoluteName(); None without a node.
stripped_name str | None R/W Name without its namespace, or None when unnamed.
namespace str | None R/W Normalized namespace such as a:b; None at the root.
plugs Plugs | None R Live node plug manager; None otherwise.
is_valid_dep_fn bool R Function-set compatibility with the current MObject.
is_default_node bool R Whether this is a Maya default node; False without a node.
is_from_referenced_file bool R Whether the node comes from a referenced file; False without a node.
is_locked bool R/W Node lock, separate from plug locks.
is_shared bool R Shared state reported by Maya; False without a node.
plugin_name str | None R Associated Maya plugin name, possibly an empty string; None without a node.
affect_animation bool R Result of MFnDependencyNode.affectsAnimation(); False without a node.
type str | None R/W Live native type or staged type.
Properties inherited from Node10
Property Return type Access Description
mobject om.MObject R/W Live Maya object, or a null object.
mobject_handle om.MObjectHandle R/W Handle associated with the node.
api_type int | None R Maya API type identifier.
api_type_str str R API type name, for example "kTime".
exists bool R The wrapper currently has a live node.
is_null bool R The returned Maya object is null.
is_alive bool R The object exists with a valid, live handle.
is_valid_handle bool R Validity of the stored handle.
is_dag_node bool R Compatibility with om.MFn.kDagNode.
hash_code int R Maya handle hash.

Defaults and flags below are spec declarations, not guaranteed live values. A descriptor can return a proxy: .value reads its value; .plug accesses the Plug. Proxy names describe results, not private classes to import. Observed types come from a test fixture; disconnected geometry inputs may notably return None.

For writes where failure must be checked, use the Plug explicitly and verify live state. Descriptor setters do not propagate every native failure.

Property Maya plug Returns
tweak tweak _ValuePlugProxy · .value: bool
edit_points editPoints _DynNumericArrayProxy
x_value_ep editPoints[].xValueEp IndexedPathProxy
y_value_ep editPoints[].yValueEp IndexedPathProxy
z_value_ep editPoints[].zValueEp IndexedPathProxy
disp_cv dispCV _ValuePlugProxy · .value: bool
disp_curve_end_points dispCurveEndPoints _ValuePlugProxy · .value: bool
disp_ep dispEP _ValuePlugProxy · .value: bool
disp_geometry dispGeometry _ValuePlugProxy · .value: bool
disp_hull dispHull _ValuePlugProxy · .value: bool
cached cached _ValuePlugProxy · .value: CurveProxy
spec_degree degree _ValuePlugProxy · .value: int
spec_form form _ValuePlugProxy · .value: int
header header MObject
create_spec create _ValuePlugProxy · .value: None
local local _ValuePlugProxy · .value: CurveProxy
min_max_value minMaxValue _ValuePlugProxy · .value: tuple
min_value minValue _ValuePlugProxy · .value: float
max_value maxValue _ValuePlugProxy · .value: float
spans spans _ValuePlugProxy · .value: int
tweak_size tweakSize _ValuePlugProxy · .value: int
world_space worldSpace _ValuePlugProxy · .value: None
in_place inPlace _ValuePlugProxy · .value: bool
world_normal worldNormal _DynNumericArrayProxy
world_normal_x worldNormal[].worldNormalX IndexedPathProxy
world_normal_y worldNormal[].worldNormalY IndexedPathProxy
world_normal_z worldNormal[].worldNormalZ IndexedPathProxy
always_draw_on_top alwaysDrawOnTop _ValuePlugProxy · .value: bool
line_width lineWidth _ValuePlugProxy · .value: float

node.tweakNative spec

Access to native plug tweak.

Item Type / behavior
Maya path tweak
Property return _ValuePlugProxy · .value: bool
Declared kind numeric:bool
Declared default True
Flags input, output, connectable, stored
Read node.tweak.value
Descriptor assignment node.tweak = value

node.edit_pointsNative spec

Access to native plug editPoints.

Item Type / behavior
Maya path editPoints
Property return _DynNumericArrayProxy
Declared kind array:double3
Declared default ()
Flags array, output, connectable
Underlying plug node.edit_points.plug

node.x_value_epNative spec

Access to native plug editPoints[].xValueEp.

Item Type / behavior
Maya path editPoints[].xValueEp
Property return IndexedPathProxy
Declared kind unit:distance
Declared default 0.0
Flags output, connectable
Verified explicit path · Plug node.plugs["editPoints"][i1]["xValueEp"]

Observed limitation on the tested fixture: AttributeError: Child 'xValueEp' not found under 'curveShape1.editPoints[0]'. Indices are Maya logical indices; choose existing or intended elements.

node.y_value_epNative spec

Access to native plug editPoints[].yValueEp.

Item Type / behavior
Maya path editPoints[].yValueEp
Property return IndexedPathProxy
Declared kind unit:distance
Declared default 0.0
Flags output, connectable
Verified explicit path · Plug node.plugs["editPoints"][i1]["yValueEp"]

Observed limitation on the tested fixture: AttributeError: Child 'yValueEp' not found under 'curveShape1.editPoints[0]'. Indices are Maya logical indices; choose existing or intended elements.

node.z_value_epNative spec

Access to native plug editPoints[].zValueEp.

Item Type / behavior
Maya path editPoints[].zValueEp
Property return IndexedPathProxy
Declared kind unit:distance
Declared default 0.0
Flags output, connectable
Verified explicit path · Plug node.plugs["editPoints"][i1]["zValueEp"]

Observed limitation on the tested fixture: AttributeError: Child 'zValueEp' not found under 'curveShape1.editPoints[0]'. Indices are Maya logical indices; choose existing or intended elements.

node.disp_cvNative spec

Access to native plug dispCV.

Item Type / behavior
Maya path dispCV
Property return _ValuePlugProxy · .value: bool
Declared kind numeric:bool
Declared default False
Flags input, output, connectable, stored
Read node.disp_cv.value
Descriptor assignment node.disp_cv = value

node.disp_curve_end_pointsNative spec

Access to native plug dispCurveEndPoints.

Item Type / behavior
Maya path dispCurveEndPoints
Property return _ValuePlugProxy · .value: bool
Declared kind numeric:bool
Declared default False
Flags input, output, connectable, hidden
Read node.disp_curve_end_points.value

node.disp_epNative spec

Access to native plug dispEP.

Item Type / behavior
Maya path dispEP
Property return _ValuePlugProxy · .value: bool
Declared kind numeric:bool
Declared default False
Flags input, output, connectable, stored
Read node.disp_ep.value
Descriptor assignment node.disp_ep = value

node.disp_geometryNative spec

Access to native plug dispGeometry.

Item Type / behavior
Maya path dispGeometry
Property return _ValuePlugProxy · .value: bool
Declared kind numeric:bool
Declared default True
Flags input, output, connectable, stored
Read node.disp_geometry.value
Descriptor assignment node.disp_geometry = value

node.disp_hullNative spec

Access to native plug dispHull.

Item Type / behavior
Maya path dispHull
Property return _ValuePlugProxy · .value: bool
Declared kind numeric:bool
Declared default False
Flags input, output, connectable, stored
Read node.disp_hull.value
Descriptor assignment node.disp_hull = value

node.cachedNative spec

Access to native plug cached.

Item Type / behavior
Maya path cached
Property return _ValuePlugProxy · .value: CurveProxy
Declared kind typed:nurbsCurve
Declared default None
Flags input, output, connectable
Read node.cached.value

node.spec_degreeNative spec

Access to native plug degree.

Item Type / behavior
Maya path degree
Property return _ValuePlugProxy · .value: int
Declared kind numeric:short
Declared default 0
Flags output, connectable
Read node.spec_degree.value

node.spec_formNative spec

Access to native plug form.

Item Type / behavior
Maya path form
Property return _ValuePlugProxy · .value: int
Declared kind numeric:short
Declared default 0
Flags output, connectable
Read node.spec_form.value

node.headerNative spec

Access to native plug header.

Item Type / behavior
Maya path header
Property return MObject
Declared kind typed:nurbsCurveHeader
Declared default None
Flags input, output

The descriptor setter rejects assignment; use Plug connection operations.

node.create_specNative spec

Access to native plug create.

Item Type / behavior
Maya path create
Property return _ValuePlugProxy · .value: None
Declared kind typed:nurbsCurve
Declared default None
Flags input, output, connectable
Read node.create_spec.value

node.localNative spec

Access to native plug local.

Item Type / behavior
Maya path local
Property return _ValuePlugProxy · .value: CurveProxy
Declared kind typed:nurbsCurve
Declared default None
Flags output, connectable
Read node.local.value

node.min_max_valueNative spec

Access to native plug minMaxValue.

Item Type / behavior
Maya path minMaxValue
Property return _ValuePlugProxy · .value: tuple
Declared kind double2
Declared default (0.0, 0.0)
Flags output, connectable
Read node.min_max_value.value

node.min_valueNative spec

Access to native plug minValue.

Item Type / behavior
Maya path minValue
Property return _ValuePlugProxy · .value: float
Declared kind numeric:double
Declared default 0.0
Flags output, connectable
Read node.min_value.value

node.max_valueNative spec

Access to native plug maxValue.

Item Type / behavior
Maya path maxValue
Property return _ValuePlugProxy · .value: float
Declared kind numeric:double
Declared default 0.0
Flags output, connectable
Read node.max_value.value

node.spansNative spec

Access to native plug spans.

Item Type / behavior
Maya path spans
Property return _ValuePlugProxy · .value: int
Declared kind numeric:int
Declared default 0
Flags output, connectable
Read node.spans.value

node.tweak_sizeNative spec

Access to native plug tweakSize.

Item Type / behavior
Maya path tweakSize
Property return _ValuePlugProxy · .value: int
Declared kind numeric:int
Declared default -1
Flags input, output, connectable
Read node.tweak_size.value

node.world_spaceNative spec

Access to native plug worldSpace.

Item Type / behavior
Maya path worldSpace
Property return _ValuePlugProxy · .value: None
Declared kind typed:nurbsCurve
Declared default None
Flags array, output, connectable
Read node.world_space.value

node.in_placeNative spec

Access to native plug inPlace.

Item Type / behavior
Maya path inPlace
Property return _ValuePlugProxy · .value: bool
Declared kind numeric:bool
Declared default False
Flags input, output, connectable, stored
Read node.in_place.value
Descriptor assignment node.in_place = value

node.world_normalNative spec

Access to native plug worldNormal.

Item Type / behavior
Maya path worldNormal
Property return _DynNumericArrayProxy
Declared kind array:double3
Declared default ()
Flags array, output, connectable
Underlying plug node.world_normal.plug

node.world_normal_xNative spec

Access to native plug worldNormal[].worldNormalX.

Item Type / behavior
Maya path worldNormal[].worldNormalX
Property return IndexedPathProxy
Declared kind numeric:double
Declared default 0.0
Flags output, connectable
Verified explicit path · Plug node.plugs["worldNormal"][i1]["worldNormalX"]

Observed limitation on the tested fixture: AttributeError: Child 'worldNormalX' not found under 'curveShape1.worldNormal[0]'. Indices are Maya logical indices; choose existing or intended elements.

node.world_normal_yNative spec

Access to native plug worldNormal[].worldNormalY.

Item Type / behavior
Maya path worldNormal[].worldNormalY
Property return IndexedPathProxy
Declared kind numeric:double
Declared default 0.0
Flags output, connectable
Verified explicit path · Plug node.plugs["worldNormal"][i1]["worldNormalY"]

Observed limitation on the tested fixture: AttributeError: Child 'worldNormalY' not found under 'curveShape1.worldNormal[0]'. Indices are Maya logical indices; choose existing or intended elements.

node.world_normal_zNative spec

Access to native plug worldNormal[].worldNormalZ.

Item Type / behavior
Maya path worldNormal[].worldNormalZ
Property return IndexedPathProxy
Declared kind numeric:double
Declared default 0.0
Flags output, connectable
Verified explicit path · Plug node.plugs["worldNormal"][i1]["worldNormalZ"]

Observed limitation on the tested fixture: AttributeError: Child 'worldNormalZ' not found under 'curveShape1.worldNormal[0]'. Indices are Maya logical indices; choose existing or intended elements.

node.always_draw_on_topNative spec

Access to native plug alwaysDrawOnTop.

Item Type / behavior
Maya path alwaysDrawOnTop
Property return _ValuePlugProxy · .value: bool
Declared kind numeric:bool
Declared default False
Flags input, output, connectable, stored
Read node.always_draw_on_top.value
Descriptor assignment node.always_draw_on_top = value

node.line_widthNative spec

Access to native plug lineWidth.

Item Type / behavior
Maya path lineWidth
Property return _ValuePlugProxy · .value: float
Declared kind numeric:float
Declared default -1.0
Flags input, output, connectable, stored
Read node.line_width.value
Descriptor assignment node.line_width = value
Specs inherited from ControlPoint31
Property Maya plug Returns Description
blind_data_nodes blindDataNodes list[str] Link data for blind-data nodes.
color_set colorSet ArrayCompoundProxy Color-set array.
current_color_set currentColorSet _ValuePlugProxy · .value: str Current color-set name.
color_name colorSet[].colorName IndexedPathProxy Indexed color-set name.
clamped colorSet[].clamped IndexedPathProxy Color-set clamping state.
representation colorSet[].representation IndexedPathProxy Color representation mode.
color_set_points colorSet[].colorSetPoints AttributeError (direct access) Colors beneath an indexed color set.
color_set_points_r colorSet[].colorSetPoints[].colorSetPointsR IndexedPathProxy R component of color_set_points.
color_set_points_g colorSet[].colorSetPoints[].colorSetPointsG IndexedPathProxy G component of color_set_points.
color_set_points_b colorSet[].colorSetPoints[].colorSetPointsB IndexedPathProxy B component of color_set_points.
color_set_points_a colorSet[].colorSetPoints[].colorSetPointsA IndexedPathProxy A component of color_set_points.
control_points controlPoints ArrayCompoundProxy Native control-point / tweak array; not a universal read of final positions.
control_points_x_value controlPoints[].xValue IndexedPathProxy X component of the indexed control point.
control_points_y_value controlPoints[].yValue IndexedPathProxy Y component of the indexed control point.
control_points_z_value controlPoints[].zValue IndexedPathProxy Z component of the indexed control point.
relative_tweak relativeTweak _ValuePlugProxy · .value: bool Relative tweak mode.
tweak_location tweakLocation Any (native data) Native tweak-location data.
display_immediate displayImmediate _ValuePlugProxy · .value: bool Native immediate-display option.
display_color_channel displayColorChannel _ValuePlugProxy · .value: str Displayed color channel.
display_colors displayColors _ValuePlugProxy · .value: bool Component color display switch.
current_uv_set currentUVSet _ValuePlugProxy · .value: str Current UV-set name.
uv_set uvSet ArrayCompoundProxy UV-set array.
uv_set_name uvSet[].uvSetName IndexedPathProxy Indexed UV-set name.
uv_set_points uvSet[].uvSetPoints _DynNumericArrayProxy UV pairs of the UV set; access through its parent element to choose the set.
uv_set_points_u uvSet[].uvSetPoints[].uvSetPointsU IndexedPathProxy U coordinate addressed by two logical indices.
uv_set_points_v uvSet[].uvSetPoints[].uvSetPointsV IndexedPathProxy V coordinate addressed by two logical indices.
uv_set_tweak_location uvSet[].uvSetTweakLocation IndexedPathProxy UV-set tweak-location data.
uv_pivot uvPivot _ValuePlugProxy · .value: tuple[float, float] Two-component UV pivot.
uv_pivot_x uvPivot.uvPivotX _ValuePlugProxy · .value: float First UV pivot component.
uv_pivot_y uvPivot.uvPivotY _ValuePlugProxy · .value: float Second UV pivot component.
weights weights TypedArrayProxy Native control-point weights; distinct from skinCluster influence weights.
Specs inherited from GeometryShape32
Property Maya plug Returns Description
as_background asBackground _ValuePlugProxy · .value: bool Native background-use option.
depth_jitter depthJitter _ValuePlugProxy · .value: bool Native depth-jitter option.
primary_visiblity primaryVisibility _ValuePlugProxy · .value: bool Primary render visibility.
antialiasing_level antialiasingLevel _ValuePlugProxy · .value: int Geometry antialiasing level.
geometry_antialiasing_override geometryAntialiasingOverride _ValuePlugProxy · .value: bool Geometry antialiasing override switch.
component_tags componentTags ArrayCompoundProxy Component-tag array.
component_tag_name componentTags[].componentTagName IndexedPathProxy Tag name at the requested index.
component_tag_contents componentTags[].componentTagContents IndexedPathProxy Component-tag contents.
casts_shadows castsShadows _ValuePlugProxy · .value: bool Shadow casting switch.
hardware_fog_multiplier hardwareFogMultiplier _ValuePlugProxy · .value: float Hardware fog multiplier.
ignore_self_shadowing ignoreSelfShadowing _ValuePlugProxy · .value: bool Ignore-self-shadowing option.
max_shading_samples maxShadingSamples _ValuePlugProxy · .value: int Maximum shading sample count.
receive_shadows receiveShadows _ValuePlugProxy · .value: bool Shadow receiving switch.
shading_samples shadingSamples _ValuePlugProxy · .value: int Shading sample count.
shading_samples_override shadingSamplesOverride _ValuePlugProxy · .value: bool Shading sample override switch.
inst_material_assign instMaterialAssign list[str] Per-instance material assignment data.
pick_texture pickTexture None Native texture-picking connection.
comp_inst_obj_groups compInstObjGroups ArrayCompoundProxy Per-instance component groups.
comp_object_groups compInstObjGroups[].objectGroups AttributeError (direct access) Groups beneath a component instance.
comp_object_grp_comp_list compInstObjGroups[].objectGroups[].objectGrpCompList IndexedPathProxy Component list of the indexed group.
comp_object_group_id compInstObjGroups[].objectGroups[].objectGroupId IndexedPathProxy Indexed component group identifier.
reference_object referenceObject None Connection to the shape reference object.
max_visibility_samples maxVisibilitySamples _ValuePlugProxy · .value: int Maximum visibility sample count.
max_visibility_samples_override maxVisibilitySamplesOverride _ValuePlugProxy · .value: bool Visibility sample override switch.
render_type renderType _ValuePlugProxy · .value: int Native shape render type.
render_volume renderVolume _ValuePlugProxy · .value: bool Native volume rendering option.
visible_fraction visibleFraction _ValuePlugProxy · .value: float Native visible fraction.
visible_in_reflections visibleInReflections _ValuePlugProxy · .value: bool Visibility in reflections.
visible_in_refractions visibleInRefractions _ValuePlugProxy · .value: bool Visibility in refractions.
volume_samples volumeSamples _ValuePlugProxy · .value: int Volume sample count.
volume_samples_override volumeSamplesOverride _ValuePlugProxy · .value: bool Volume sample override switch.
motion_blur motionBlur _ValuePlugProxy · .value: bool Motion blur switch.
Specs inherited from DAGNode93
Property Maya plug Returns Description
use_object_color useObjectColor _ValuePlugProxy · .value: int Object-color usage mode.
visibility visibility _ValuePlugProxy · .value: bool Local node visibility; it does not summarize visibility across the hierarchy.
template template _ValuePlugProxy · .value: bool Object template display state.
lod_visibility lodVisibility _ValuePlugProxy · .value: bool Level-of-detail visibility.
object_color objectColor _ValuePlugProxy · .value: int Object color index.
object_color_rgb objectColorRGB _ValuePlugProxy · .value: tuple[float, float, float] Object RGB color.
object_color_r objectColorR _ValuePlugProxy · .value: float R component of object_color_rgb.
object_color_g objectColorG _ValuePlugProxy · .value: float G component of object_color_rgb.
object_color_b objectColorB _ValuePlugProxy · .value: float B component of object_color_rgb.
wire_color_rgb wireColorRGB _ValuePlugProxy · .value: tuple[float, float, float] Wireframe RGB color.
wire_color_r wireColorRGB.wireColorR _ValuePlugProxy · .value: float R component of wire_color_rgb.
wire_color_g wireColorRGB.wireColorG _ValuePlugProxy · .value: float G component of wire_color_rgb.
wire_color_b wireColorRGB.wireColorB _ValuePlugProxy · .value: float B component of wire_color_rgb.
hidden_in_outliner hiddenInOutliner _ValuePlugProxy · .value: bool Hidden state in the Outliner.
use_outliner_color useOutlinerColor _ValuePlugProxy · .value: bool Custom Outliner color switch.
outliner_color outlinerColor _ValuePlugProxy · .value: tuple[float, float, float] Outliner RGB color.
outliner_color_r outlinerColorR _ValuePlugProxy · .value: float R component of outliner_color.
outliner_color_g outlinerColorG _ValuePlugProxy · .value: float G component of outliner_color.
outliner_color_b outlinerColorB _ValuePlugProxy · .value: float B component of outliner_color.
ghosting ghosting _ValuePlugProxy · .value: bool Maya ghosting switch.
ghosting_mode ghostingMode _ValuePlugProxy · .value: int Ghosting mode.
ghost_custom_steps ghostCustomSteps CompoundProxy Compound ghosting-step settings.
ghost_pre_frames ghostCustomSteps.ghostPreFrames _ValuePlugProxy · .value: int Number of frames before the current frame.
ghost_post_frames ghostCustomSteps.ghostPostFrames _ValuePlugProxy · .value: int Number of frames after the current frame.
ghosts_step ghostCustomSteps.ghostsStep _ValuePlugProxy · .value: int Step between ghosting samples.
ghost_frames ghostFrames TypedArrayProxy Native ghosting frame list.
ghost_use_driver ghostUseDriver _ValuePlugProxy · .value: bool Use of a ghosting driver.
ghost_driver ghostDriver None Connection to the ghosting driver.
ghost_color_pre ghostColorPre _ValuePlugProxy · .value: tuple[float, float, float] Previous-ghost color.
ghost_color_pre_r ghostColorPre.ghostColorPreR _ValuePlugProxy · .value: float R component of ghost_color_pre.
ghost_color_pre_g ghostColorPre.ghostColorPreG _ValuePlugProxy · .value: float G component of ghost_color_pre.
ghost_color_pre_b ghostColorPre.ghostColorPreB _ValuePlugProxy · .value: float B component of ghost_color_pre.
ghost_color_post ghostColorPost _ValuePlugProxy · .value: tuple[float, float, float] Following-ghost color.
ghost_color_post_r ghostColorPost.ghostColorPostR _ValuePlugProxy · .value: float R component of ghost_color_post.
ghost_color_post_g ghostColorPost.ghostColorPostG _ValuePlugProxy · .value: float G component of ghost_color_post.
ghost_color_post_b ghostColorPost.ghostColorPostB _ValuePlugProxy · .value: float B component of ghost_color_post.
ghost_opacity_range ghostOpacityRange _ValuePlugProxy · .value: tuple[float, float] Compound ghost opacity range.
ghost_near_opacity ghostOpacityRange.ghostNearOpacity _ValuePlugProxy · .value: float Near-ghost opacity.
ghost_far_opacity ghostOpacityRange.ghostFarOpacity _ValuePlugProxy · .value: float Far-ghost opacity.
render_info renderInfo CompoundProxy Compound node render information.
identification renderInfo.identification _ValuePlugProxy · .value: int Native identifier in render information.
layer_renderable renderInfo.layerRenderable _ValuePlugProxy · .value: bool Layer renderability.
layer_override_color renderInfo.layerOverrideColor _ValuePlugProxy · .value: int Layer override color index.
render_layer_info renderLayerInfo ArrayCompoundProxy Per-render-layer information array.
render_layer_id renderLayerInfo[].renderLayerId IndexedPathProxy Render layer identifier at the requested index.
render_layer_renderable renderLayerInfo[].renderLayerRenderable IndexedPathProxy Renderability of the layer at the requested index.
render_layer_color renderLayerInfo[].renderLayerColor IndexedPathProxy Render layer color index.
selection_child_highlighting selectionChildHighlighting _ValuePlugProxy · .value: bool Child highlighting on selection.
inst_obj_groups instObjGroups ArrayCompoundProxy Membership groups per DAG instance.
object_groups instObjGroups[].objectGroups AttributeError (direct access) Component groups beneath a DAG instance.
object_grp_comp_list instObjGroups[].objectGroups[].objectGrpCompList IndexedPathProxy Group components addressed by two logical indices.
object_group_id instObjGroups[].objectGroups[].objectGroupId IndexedPathProxy Component group identifier.
object_grp_color instObjGroups[].objectGroups[].objectGrpColor IndexedPathProxy Component group color index.
matrix matrix _ValuePlugProxy · .value: om.MMatrix Local matrix evaluated by Maya.
inverse_matrix inverseMatrix _ValuePlugProxy · .value: om.MMatrix Inverse local matrix.
parent_matrix parentMatrix TypedArrayProxy Parent matrices indexed by instance.
parent_inverse_matrix parentInverseMatrix TypedArrayProxy Inverse parent matrices.
world_matrix worldMatrix TypedArrayProxy World matrices indexed by DAG instance.
world_inverse_matrix worldInverseMatrix TypedArrayProxy Inverse world matrices.
intermediate_object intermediateObject _ValuePlugProxy · .value: bool Maya intermediate-shape flag.
draw_override drawOverride CompoundProxy Compound display overrides.
override_enabled overrideEnabled _ValuePlugProxy · .value: bool Display override switch.
override_display_type overrideDisplayType _ValuePlugProxy · .value: int Override display type.
override_level_of_detail overrideLevelOfDetail _ValuePlugProxy · .value: int Override level of detail.
override_shading overrideShading _ValuePlugProxy · .value: bool Shading switch in the override.
override_texturing overrideTexturing _ValuePlugProxy · .value: bool Texturing switch in the override.
override_playback overridePlayback _ValuePlugProxy · .value: bool Playback display according to the override.
override_visibility overrideVisibility _ValuePlugProxy · .value: bool Override visibility.
override_color overrideColor _ValuePlugProxy · .value: int Override color index.
hide_on_playback hideOnPlayback _ValuePlugProxy · .value: bool Hide-on-playback switch.
override_rgb_colors overrideRGBColors _ValuePlugProxy · .value: bool RGB color mode for the override.
override_color_rgb overrideColorRGB _ValuePlugProxy · .value: tuple[float, float, float] Override RGB color.
override_color_r overrideColorRGB.overrideColorR _ValuePlugProxy · .value: float R component of override_color_rgb.
override_color_g overrideColorRGB.overrideColorG _ValuePlugProxy · .value: float G component of override_color_rgb.
override_color_b overrideColorRGB.overrideColorB _ValuePlugProxy · .value: float B component of override_color_rgb.
override_color_a overrideColorA _ValuePlugProxy · .value: float Override color alpha component.
bounding_box boundingBox CompoundProxy Compound bounding-box plugs; distinct from fn_bounding_box.
bounding_box_min boundingBox.boundingBoxMin _ValuePlugProxy · .value: tuple[float, float, float] Minimum corner of the local bounding box.
bounding_box_min_x boundingBox.boundingBoxMin.boundingBoxMinX _ValuePlugProxy · .value: float X component of bounding_box_min.
bounding_box_min_y boundingBox.boundingBoxMin.boundingBoxMinY _ValuePlugProxy · .value: float Y component of bounding_box_min.
bounding_box_min_z boundingBox.boundingBoxMin.boundingBoxMinZ _ValuePlugProxy · .value: float Z component of bounding_box_min.
bounding_box_max boundingBox.boundingBoxMax _ValuePlugProxy · .value: tuple[float, float, float] Maximum corner of the local bounding box.
bounding_box_max_x boundingBox.boundingBoxMax.boundingBoxMaxX _ValuePlugProxy · .value: float X component of bounding_box_max.
bounding_box_max_y boundingBox.boundingBoxMax.boundingBoxMaxY _ValuePlugProxy · .value: float Y component of bounding_box_max.
bounding_box_max_z boundingBox.boundingBoxMax.boundingBoxMaxZ _ValuePlugProxy · .value: float Z component of bounding_box_max.
bounding_box_size boundingBox.boundingBoxSize _ValuePlugProxy · .value: tuple[float, float, float] Local bounding-box dimensions.
bounding_box_size_x boundingBox.boundingBoxSize.boundingBoxSizeX _ValuePlugProxy · .value: float X component of bounding_box_size.
bounding_box_size_y boundingBox.boundingBoxSize.boundingBoxSizeY _ValuePlugProxy · .value: float Y component of bounding_box_size.
bounding_box_size_z boundingBox.boundingBoxSize.boundingBoxSizeZ _ValuePlugProxy · .value: float Z component of bounding_box_size.
center center _ValuePlugProxy · .value: tuple[float, float, float] Local bounding-box center.
center_x center.boundingBoxCenterX _ValuePlugProxy · .value: float X component of center.
center_y center.boundingBoxCenterY _ValuePlugProxy · .value: float Y component of center.
center_z center.boundingBoxCenterZ _ValuePlugProxy · .value: float Z component of center.
Specs inherited from ContainerBase21
Property Maya plug Returns Description
black_box blackBox _ValuePlugProxy · .value: bool Maya container black-box presentation.
border_connections borderConnections list[str] Container boundary connection data.
creator creator _ValuePlugProxy · .value: str Container creator metadata.
creation_date creationDate _ValuePlugProxy · .value: str Creation date metadata.
custom_treatment customTreatment _ValuePlugProxy · .value: str Custom container treatment.
hyper_layout hyperLayout None Connection to the Hypergraph layout.
icon_name iconName _ValuePlugProxy · .value: str Icon name associated with the container.
is_collapsed isCollapsed _ValuePlugProxy · .value: bool Collapsed container state in Maya views.
is_hierarchical_connection isHierarchicalConnection TypedArrayProxy Hierarchical connection flags.
rmb_command rmbCommand _ValuePlugProxy · .value: str Container context-menu command.
template_name templateName _ValuePlugProxy · .value: str Container template name.
template_path templatePath _ValuePlugProxy · .value: str Container template path.
template_version templateVersion _ValuePlugProxy · .value: int Container template version.
container_type containerType _ValuePlugProxy · .value: str Container type metadata.
ui_treatment uiTreatment _ValuePlugProxy · .value: int Container presentation mode.
view_mode viewMode _ValuePlugProxy · .value: int Container view mode.
view_name viewName _ValuePlugProxy · .value: str Container view name.
published_node_info publishedNodeInfo ArrayCompoundProxy Array of published-node information.
published_node publishedNodeInfo[].publishedNode IndexedPathProxy Connection to the published node at a given index.
is_hierarchical_node publishedNodeInfo[].isHierarchicalNode IndexedPathProxy Hierarchical flag of a published node.
published_node_type publishedNodeInfo[].publishedNodeType IndexedPathProxy Declared type of a published node.
Specs inherited from DGNode6
Property Maya plug Returns Description
message message None Node message plug; used for connections, with no numeric value.
frozen frozen _ValuePlugProxy · .value: bool Native evaluation freeze state.
is_historically_interesting isHistoricallyInteresting _ValuePlugProxy · .value: int Node interest level in Maya history.
bin_membership binMembership _ValuePlugProxy · .value: str Maya bin membership.
caching_enabled caching _ValuePlugProxy · .value: bool Native node caching switch.
caching_node_state nodeState _ValuePlugProxy · .value: int Native nodeState evaluation state.

node.snapshot(profile: str='rig') → CurveSnapshotMethod

Build and return a minimal Curve snapshot for pre-create and safe replay.

Item Type / behavior
Returns CurveSnapshot
profile str · default: 'rig'

node.closest_point(point: Union[om.MPoint, List[float], Tuple[float, float, float]], tolerance: Optional[float]=None, guess: Optional[float]=None, space: Optional[om.MSpace]=None) → Tuple[om.MPoint, float]Method

Find the closest point on the Curve to a given point.

Item Type / behavior
Returns Tuple[om.MPoint, float]
point Union[om.MPoint, List[float], Tuple[float, float, float]] · default: —
tolerance Optional[float] · default: None
guess Optional[float] · default: None
space Optional[om.MSpace] · default: None

Requires a valid live curve; a missing function set raises RuntimeError.

node.get_cv_position(index: int, space: Optional[om.MSpace]=None) → om.MPointMethod

Get the position of a control vertex (CV) at a given index.

Item Type / behavior
Returns om.MPoint
index int · default: —
space Optional[om.MSpace] · default: None

Requires a valid live curve; a missing function set raises RuntimeError.

node.get_cv_positions(space: Optional[om.MSpace]=None) → om.MPointArrayMethod

Get the positions of all control vertices (CVs).

Item Type / behavior
Returns om.MPointArray
space Optional[om.MSpace] · default: None

Requires a valid live curve; a missing function set raises RuntimeError.

node.set_cv_position(index: int, point: Union[om.MPoint, List[float], Tuple[float, float, float]], space: Optional[om.MSpace]=None) → NoneMethod

Set the position of a control vertex (CV) at a given index.

Item Type / behavior
Returns None
index int · default: —
point Union[om.MPoint, List[float], Tuple[float, float, float]] · default: —
space Optional[om.MSpace] · default: None

Requires a valid live curve; a missing function set raises RuntimeError.

node.set_cv_positions(points: Union[om.MPointArray, List[om.MPoint], List[List[float]]], space: Optional[om.MSpace]=None) → NoneMethod

Set the positions of all control vertices (CVs).

Item Type / behavior
Returns None
points Union[om.MPointArray, List[om.MPoint], List[List[float]]] · default: —
space Optional[om.MSpace] · default: None

Requires a valid live curve; a missing function set raises RuntimeError.

node.cvs_in_range(start: int, end: int) → om.MObjectMethod

Get a range of control vertices (CVs) as an MObject.

Item Type / behavior
Returns om.MObject
start int · default: —
end int · default: —

Requires a valid live curve; a missing function set raises RuntimeError.

node.distance_to_point(point: Union[om.MPoint, List[float], Tuple[float, float, float]], space: Optional[om.MSpace]=None) → floatMethod

Calculate the distance from a point to the Curve.

Item Type / behavior
Returns float
point Union[om.MPoint, List[float], Tuple[float, float, float]] · default: —
space Optional[om.MSpace] · default: None

Requires a valid live curve; a missing function set raises RuntimeError.

node.find_length_from_param(param: float) → floatMethod

Find the length along the Curve from the start to a given parameter.

Item Type / behavior
Returns float
param float · default: —

Requires a valid live curve; a missing function set raises RuntimeError.

node.find_param_from_length(length: float, tolerance: Optional[float]=None) → floatMethod

Find the parameter along the Curve corresponding to a given length.

Item Type / behavior
Returns float
length float · default: —
tolerance Optional[float] · default: None

Requires a valid live curve; a missing function set raises RuntimeError.

node.get_param_at_point(point: Union[om.MPoint, List[float], Tuple[float, float, float]], tolerance: Optional[float]=None, space: Optional[om.MSpace]=None) → floatMethod

Finds parameters at a point on the geometry; this is not automatic projection of an arbitrary point.

Item Type / behavior
Returns float
point Union[om.MPoint, List[float], Tuple[float, float, float]] · default: —
tolerance Optional[float] · default: None
space Optional[om.MSpace] · default: None

Requires a valid live curve; a missing function set raises RuntimeError.

node.get_point_at_param(param: float, space: Optional[om.MSpace]=None) → om.MPointMethod

Get the point on the Curve at a given parameter value.

Item Type / behavior
Returns om.MPoint
param float · default: —
space Optional[om.MSpace] · default: None

Requires a valid live curve; a missing function set raises RuntimeError.

node.is_param_on_curve(param: float) → boolMethod

Check if a parameter value is on the Curve.

Item Type / behavior
Returns bool
param float · default: —

Requires a valid live curve; a missing function set raises RuntimeError.

node.is_point_on_curve(point: Union[om.MPoint, List[float], Tuple[float, float, float]], tolerance: Optional[float]=None, space: Optional[om.MSpace]=None) → boolMethod

Check if a point is on the Curve within a given tolerance.

Item Type / behavior
Returns bool
point Union[om.MPoint, List[float], Tuple[float, float, float]] · default: —
tolerance Optional[float] · default: None
space Optional[om.MSpace] · default: None

Requires a valid live curve; a missing function set raises RuntimeError.

node.get_knot(index: int) → floatMethod

Get the knot value at a given index.

Item Type / behavior
Returns float
index int · default: —

Requires a valid live curve; a missing function set raises RuntimeError.

node.set_knot(index: int, param: float) → NoneMethod

Set the knot value at a given index.

Item Type / behavior
Returns None
index int · default: —
param float · default: —

Requires a valid live curve; a missing function set raises RuntimeError.

node.set_knots_in_range(start_index: int, end_index: int, params: Union[om.MDoubleArray, Sequence[float]]) → NoneMethod

Set the knot values in a specified range.

Item Type / behavior
Returns None
start_index int · default: —
end_index int · default: —
params Union[om.MDoubleArray, Sequence[float]] · default: —

Requires a valid live curve; a missing function set raises RuntimeError.

node.get_length(tolerance: Optional[float]=None) → floatMethod

Get the length of the Curve.

Item Type / behavior
Returns float
tolerance Optional[float] · default: None

Requires a valid live curve; a missing function set raises RuntimeError.

node.make_multiple_end_knots() → NoneMethod

Sets the curve’s end knots to have full multiplicity. This ensures that the end points interpolate the first and last CVs (i.e. lie directly on them). It can also be used to convert a periodic curve to a closed curve.

Item Type / behavior
Returns None

Requires a valid live curve; a missing function set raises RuntimeError.

node.get_normal_at_param(param: float, space: Optional[om.MSpace]=None) → om.MVectorMethod

Get the normal vector at a given parameter value on the Curve.

Item Type / behavior
Returns om.MVector
param float · default: —
space Optional[om.MSpace] · default: None

Requires a valid live curve; a missing function set raises RuntimeError.

node.reverse() → NoneMethod

Reverse the direction of the Curve.

Item Type / behavior
Returns None

Requires a valid live curve; a missing function set raises RuntimeError.

node.tangent_at_param(param: float, space: Optional[om.MSpace]=None) → om.MVectorMethod

Get the tangent vector at a given parameter value on the Curve.

Item Type / behavior
Returns om.MVector
param float · default: —
space Optional[om.MSpace] · default: None

Requires a valid live curve; a missing function set raises RuntimeError.

node.translate_by(vector: Union[om.MVector, Sequence[float], float, int]) → NoneMethod

Translate the Curve by a given vector.

Item Type / behavior
Returns None
vector Union[om.MVector, Sequence[float], float, int] · default: —

Requires a valid live curve; a missing function set raises RuntimeError.

node.rotate_by(rotation: Union[om.MEulerRotation, om.MQuaternion, om.MVector, Sequence[Union[float, om.MAngle]]]) → NoneMethod

Rotate the Curve by a given rotation.

Item Type / behavior
Returns None
rotation Union[om.MEulerRotation, om.MQuaternion, om.MVector, Sequence[Union[float, om.MAngle]]] · default: —

Requires a valid live curve; a missing function set raises RuntimeError.

node.scale_by(scale: Union[om.MVector, Sequence[float], float, int]) → NoneMethod

Scale the Curve by a given scale vector.

Item Type / behavior
Returns None
scale Union[om.MVector, Sequence[float], float, int] · default: —

Requires a valid live curve; a missing function set raises RuntimeError.

node.export_curve(name: str) → NoneMethod

Export the Curve node to a JSON string.

Item Type / behavior
Returns None
name str · default: —

The method has no return statement: it returns None despite its str annotation. It writes to disk; check export_path and the name before calling. Requires a valid live curve; a missing function set raises RuntimeError.

node.import_curve(name: str) → NoneMethod

Import a Curve node from a JSON string.

Item Type / behavior
Returns None
name str · default: —

This is not a validated transactional import: degree and form setters reject a live curve, while the CV setter requires a function set. Do not use this path to replace a production curve. Requires a valid live curve; a missing function set raises RuntimeError.

Methods inherited from DAGNode4
Method Returns Description
create None Creates a missing DAG node with its optional staged parent.
delete None Uses DGNode deletion.
finalize None Stores the dictionary and delegates replay to DGNode.finalize().
set_parent None Reparents the live node.
Methods inherited from DGNode3
Method Returns Description
snapshot_svd SVDSnapshot Captures Source / Value / Destinations for the requested list.
svd SVDView Returns a read-only live view of source, value and destinations; it is not a frozen capture.
clear_attr_cache None Clears this instance attribute cache; does not delete nodes or clear the global wrapper registry.
Methods inherited from Node2
Method Returns Description
has_fn(fn_type) bool Test compatibility with a Maya function set.
clear_node_registry() None Detach registered wrappers and clear their shared registry.
Attribute Value / composition
NODE_TYPE 'nurbsCurve'
SPEC_LAYERS get_dg_specs_all, get_container_base_specs_all, get_dag_specs_all, get_geometry_shape_specs_all, get_control_point_specs_all, get_curve_specs_all, get_curve_spec_overrides_map

NODE_REGISTRY and other class attributes not overridden here remain inherited. Exported Snapshot types describe dictionaries; use node.snapshot() to capture state.

Point Behavior
Identity A node recreated under the same name is a new Maya object.
Creation and geometry Creating an empty shape does not construct topology. The example below uses API 2.0 for geometry and the wrapper for documented operations.
Capture Snapshots can contain Maya objects; do not assume JSON-ready data or complete geometry reconstruction.
area The code returns the native mfn_curve.area method without calling it: a callable on a live curve, otherwise 0.0, despite the float annotation. Call node.mfn_curve.area() on a valid curve for a number.
cvs The setter stages points without moving live CVs, and requires a function set. Use cv_positions or set_cv_positions() for live editing.
export_curve The method has no return statement: it returns None despite its str annotation. It writes to disk; check export_path and the name before calling.
import_curve This is not a validated transactional import: degree and form setters reject a live curve, while the CV setter requires a function set. Do not use this path to replace a production curve.

Self-contained Maya Python Script Editor example. In mayapy, initialize maya.standalone before this block. The demonstration creates its own nodes and removes them in finally.

from uuid import uuid4
import maya.api.OpenMaya as om
from weSkel.src.core.node.dag.transform.lib import Transform
from weSkel.src.core.node.dag.curve.lib import Curve
parent = Transform("api_curve_" + uuid4().hex[:8])
try:
parent.create()
points = om.MPointArray([(0, 0, 0), (1, 1, 0), (2, 1, 0), (3, 0, 0)])
obj = om.MFnNurbsCurve().create(points, [0, 0, 0, 1, 1, 1], 3,
om.MFnNurbsCurve.kOpen, False, False, parent.mobject)
node = Curve(obj)
assert node.num_cvs == 4
before = node.get_cv_position(0)
node.set_cv_position(0, before + om.MVector(0, 0.25, 0))
assert abs(node.get_cv_position(0).y - 0.25) < 1e-6
assert node.get_length() > 0.0
print("Curve: native shape, CV editing and length OK")
finally:
parent.delete(snapshot=False)

Expected result : Curve: native shape, CV editing and length OK.

SDK checkpoint 87c3486. Member inventory and fixture reads checked in Maya 2025.3 and 2026.3; example executed in both versions. The example does not cover every method. Listed limitations remain in source; these checks do not validate the compiled package.