359 | function IKUtil.registerIKChainTargetsXMLPaths(schema, basePath) |
360 | schema:register(XMLValueType.STRING, basePath .. ".target(?)#ikChain", "IK chain name") |
361 | schema:register(XMLValueType.NODE_INDEX, basePath .. ".target(?)#targetNode", "Target node") |
362 | schema:register(XMLValueType.VECTOR_TRANS, basePath .. ".target(?)#targetOffset", "Target offset") |
363 | schema:register(XMLValueType.BOOL, basePath .. ".target(?)#setDirty", "Is dirty", true) |
364 | schema:register(XMLValueType.INT, basePath .. ".target(?).rotationNode(?)#id", "Rotation node index") |
365 | schema:register(XMLValueType.VECTOR_ROT, basePath .. ".target(?).rotationNode(?)#rotation", "Rotation node rotation") |
366 | schema:register(XMLValueType.STRING, basePath .. ".target(?)#poseId", "Pose id") |
367 | end |
371 | function IKUtil.registerIKChainXMLPaths(schema, basePath) |
372 | schema:register(XMLValueType.STRING, basePath .. "#id", "Chain identifier") |
373 | schema:register(XMLValueType.NODE_INDEX, basePath .. "#target", "Target node") |
374 | schema:register(XMLValueType.VECTOR_TRANS, basePath .. "#targetOffset", "Target offset", "0 0 0") |
375 | schema:register(XMLValueType.BOOL, basePath .. "#alignToTarget", "Align to target", false) |
376 | schema:register(XMLValueType.VECTOR_TRANS, basePath .. "#alignNodeOffset", "Align node offset", "0 0 0") |
377 | |
378 | schema:register(XMLValueType.NODE_INDEX, basePath .. ".node(?)#index", "Chain node") |
379 | schema:register(XMLValueType.ANGLE, basePath .. ".node(?)#minRx", "Min. rotation X", -180) |
380 | schema:register(XMLValueType.ANGLE, basePath .. ".node(?)#maxRx", "Max. rotation X", 180) |
381 | schema:register(XMLValueType.ANGLE, basePath .. ".node(?)#minRy", "Min. rotation Y", -180) |
382 | schema:register(XMLValueType.ANGLE, basePath .. ".node(?)#maxRy", "Max. rotation Y", 180) |
383 | schema:register(XMLValueType.ANGLE, basePath .. ".node(?)#minRy", "Min. rotation Z", -180) |
384 | schema:register(XMLValueType.ANGLE, basePath .. ".node(?)#maxRy", "Max. rotation Z", 180) |
385 | schema:register(XMLValueType.ANGLE, basePath .. ".node(?)#damping", "Damping", 30) |
386 | schema:register(XMLValueType.BOOL, basePath .. ".node(?)#localLimits", "Local limits", false) |
387 | |
388 | schema:register(XMLValueType.NODE_INDEX, basePath .. ".rotationNode(?)#index", "Rotation node") |
389 | schema:register(XMLValueType.VECTOR_ROT, basePath .. ".rotationNode(?)#rotation", "Rotation") |
390 | |
391 | schema:register(XMLValueType.STRING, basePath .. ".pose(?)#id", "Pose id") |
392 | schema:register(XMLValueType.BOOL, basePath .. ".pose(?)#isDefaultPose", "Is default pose", false) |
393 | schema:register(XMLValueType.NODE_INDEX, basePath .. ".pose(?).rotationNode(?)#index", "Rotation node") |
394 | schema:register(XMLValueType.VECTOR_ROT, basePath .. ".pose(?).rotationNode(?)#rotation", "Rotation") |
395 | |
396 | schema:register(XMLValueType.INT, basePath .. "#numIterations", "Max. number of iterations", 20) |
397 | schema:register(XMLValueType.INT, basePath .. "#numIterationsInit", "Initial max. number of iterations", "numIterations * 2") |
398 | schema:register(XMLValueType.FLOAT, basePath .. "#positionThreshold", "Position threshold", 0.005) |
399 | schema:register(XMLValueType.BOOL, basePath .. "#isDirtyOnLoad", "Is dirty on load", false) |
400 | end |