Kinematics

class AddIKFKControlAction

Bases: BuildAction

Add a control to an existing IKFK switch, allowing it to have different parent spaces for IK and FK.

run()

Perform the main functionality of this build action. Attribute values can be accessed using self.myAttr.

class IKFKControlContextSubmenu(menu: PulseNodeContextMenu, is_only_submenu: bool)

Bases: PulseNodeContextSubMenu

Provides IKFK switching options on related controls.

build_menu_items()

Build the menu items for this utility

classmethod should_build_sub_menu(menu) bool

Return true if this submenu should be built for a node

Parameters:

menu (PulseNodeContextMenu) – The parent context menu, containing a reference to the hit node

class IKFKControlUtils

Bases: object

Utils for working with IKFK controls

static calculate_ik_pole_ctl_location(ctl, root: pymel.core.dt.Vector, mid: pymel.core.dt.Vector, end: pymel.core.dt.Vector)

Calculate the new position for an ik pole ctl given the matrices of the ikfk joints

static get_ikfk_joint_matrices(ikfk_data: dict)

Return the list of matrices for the IKFK joint chain in the order (root, middle, end)

class ThreeBoneIKFKAction

Bases: BuildAction

Create a 3-bone IK chain that can switch to FK.

run()

Perform the main functionality of this build action. Attribute values can be accessed using self.myAttr.

class SplineIKFKAction

Bases: BuildAction

Create a spline IK chain that can switch to FK.

run()

Perform the main functionality of this build action. Attribute values can be accessed using self.myAttr.

validate()

Validate this build action. Can be implemented in subclasses to check the action’s attribute values and raise BuildActionErrors if anything is invalid.