Closed david-cattermole closed 3 years ago
I have changed the mmSolver API to allow custom Maya transform node plug-ins, now. Assuming the custom transform node still uses the standard Maya translate, rotate and scale attributes, I expect any Maya transform plug-in node to work with mmSolver.
This will be merged into the master branch as part of #72 and #57.
It has been reported that this issue is happening again, in v0.3.2.
The problem in question seems to be due to type checking against the transform node type explicitly.
To effectively fix the bug, and ensure we don't reintroduce the bug, we need to write unit tests for (all?) tools that work with cameras. We will need to create a test transform plug-in, and load it during the unit tests.
This is a relatively low priority problem, because workflows exist to work around the problem, and the user base affected is small.
Custom transform plug-in nodes will now work for cameras.
All the unit tests seem to work. It's still possible there's some mmSolver.tool.*
code that doesn't work, but the utilities and API work correctly with custom transform nodes.
The only requirement of a transform node is that it's derived from a transform. It is not possible to derive a custom MPxNode
with the same attributes - it must derive from MPxTransform
.
Problem
mmSolver only works with Maya transform and camera nodes. Sub-classed, custom plug-ins will cause an assertion error (because they are untested). We should attempt to allow all types of transform nodes, even if they are custom plug-ins.
Expected behavior: If a camera (transform and shape node) are custom (derived API nodes), then we should not error.
Actual behavior: When loading 2D Marker data onto a camera with custom Maya transform plugin (MPxTransform), we get an assertion error.
Steps to Reproduce
Software Versions
mmSolver version: v0.2.1
Maya version: Maya 2018
Operating System (OS): Linux