pymxs_stubs icon indicating copy to clipboard operation
pymxs_stubs copied to clipboard

Added support for certain struct types

Open munkybutt opened this issue 3 years ago • 2 comments

Added functionality to parse some struct types for signatures. It doesn't cover all the types, but provides data on a large number of the outstanding ones. Currently formatted to return nested dictionaries with all the data like so:

"SkinUtils": {
    "ExtractSkinData": {
        "signature": "<void>ExtractSkinData <node>node",
        "return_type": "void",
        "arguments": [
            {
                "type": "void",
                "name": "ExtractSkinData "
            },
            {
                "type": "node",
                "name": "node"
            }
        ]
    },
    "ImportSkinData": {
        "signature": "<void>ImportSkinData <node>targetNode <node>sourceNode",
        "return_type": "void",
        "arguments": [
            {
                "type": "void",
                "name": "ImportSkinData "
            },
            {
                "type": "node",
                "name": "targetNode "
            },
            {
                "type": "node",
                "name": "sourceNode"
            }
        ]
    },
    "GetBoneBindTM": {
        "signature": "<matrix3>GetBoneBindTM <node>skinNode <node>boneNode",
        "return_type": "matrix3",
        "arguments": [
            {
                "type": "matrix3",
                "name": "GetBoneBindTM "
            },
            {
                "type": "node",
                "name": "skinNode "
            },
            {
                "type": "node",
                "name": "boneNode"
            }
        ]
    },
    "SetBoneBindTM": {
        "signature": "<void>SetBoneBindTM <node>skinNode <node>boneNode <matrix3>tm",
        "return_type": "void",
        "arguments": [
            {
                "type": "void",
                "name": "SetBoneBindTM "
            },
            {
                "type": "node",
                "name": "skinNode "
            },
            {
                "type": "node",
                "name": "boneNode "
            },
            {
                "type": "matrix3",
                "name": "tm"
            }
        ]
    },
    "GetMeshBindTM": {
        "signature": "<matrix3>GetMeshBindTM <node>skinNode",
        "return_type": "matrix3",
        "arguments": [
            {
                "type": "matrix3",
                "name": "GetMeshBindTM "
            },
            {
                "type": "node",
                "name": "skinNode"
            }
        ]
    },
    "SetMeshBindTM": {
        "signature": "<void>SetMeshBindTM <node>skinNode <matrix3>tm",
        "return_type": "void",
        "arguments": [
            {
                "type": "void",
                "name": "SetMeshBindTM "
            },
            {
                "type": "node",
                "name": "skinNode "
            },
            {
                "type": "matrix3",
                "name": "tm"
            }
        ]
    },
    "GetBoneStretchTM": {
        "signature": "<matrix3>GetBoneStretchTM <node>skinNode <node>boneNode",
        "return_type": "matrix3",
        "arguments": [
            {
                "type": "matrix3",
                "name": "GetBoneStretchTM "
            },
            {
                "type": "node",
                "name": "skinNode "
            },
            {
                "type": "node",
                "name": "boneNode"
            }
        ]
    },
    "SetBoneStretchTM": {
        "signature": "<void>SetBoneStretchTM <node>skinNode <node>boneNode <matrix3>tm",
        "return_type": "void",
        "arguments": [
            {
                "type": "void",
                "name": "SetBoneStretchTM "
            },
            {
                "type": "node",
                "name": "skinNode "
            },
            {
                "type": "node",
                "name": "boneNode "
            },
            {
                "type": "matrix3",
                "name": "tm"
            }
        ]
    },
    "GrowSelection": {
        "signature": "<void>GrowSelection <node>skinNode",
        "return_type": "void",
        "arguments": [
            {
                "type": "void",
                "name": "GrowSelection "
            },
            {
                "type": "node",
                "name": "skinNode"
            }
        ]
    },
    "ShrinkSelection": {
        "signature": "<void>ShrinkSelection <node>skinNode",
        "return_type": "void",
        "arguments": [
            {
                "type": "void",
                "name": "ShrinkSelection "
            },
            {
                "type": "node",
                "name": "skinNode"
            }
        ]
    },
    "LoopSelection": {
        "signature": "<void>LoopSelection <node>skinNode",
        "return_type": "void",
        "arguments": [
            {
                "type": "void",
                "name": "LoopSelection "
            },
            {
                "type": "node",
                "name": "skinNode"
            }
        ]
    },
    "RingSelection": {
        "signature": "<void>RingSelection <node>skinNode",
        "return_type": "void",
        "arguments": [
            {
                "type": "void",
                "name": "RingSelection "
            },
            {
                "type": "node",
                "name": "skinNode"
            }
        ]
    },
    "ImportSkinDataNoDialog": {
        "signature": "<void>ImportSkinDataNoDialog <boolean>matchByName <boolean>removeTargetPrefix <boolean>removeTargetSuffix <boolean>removeSourcePrefix <boolean>removeSourceSuffix <float>threshold <integer>interpolationType",
        "return_type": "void",
        "arguments": [
            {
                "type": "void",
                "name": "ImportSkinDataNoDialog "
            },
            {
                "type": "boolean",
                "name": "matchByName "
            },
            {
                "type": "boolean",
                "name": "removeTargetPrefix "
            },
            {
                "type": "boolean",
                "name": "removeTargetSuffix "
            },
            {
                "type": "boolean",
                "name": "removeSourcePrefix "
            },
            {
                "type": "boolean",
                "name": "removeSourceSuffix "
            },
            {
                "type": "float",
                "name": "threshold "
            },
            {
                "type": "integer",
                "name": "interpolationType"
            }
        ]
    }
}

munkybutt avatar Jan 26 '22 21:01 munkybutt

Hey @munkybutt - this is great! I attempted something similar in one of the branches, but didn't get around yet to make it functional. I like your approach here and will see that I can integrate it soon :) I'm a bit slow on integrations right now, but I appreciate the Pull Request and will definitely use this!

friedererdmann avatar Feb 02 '22 13:02 friedererdmann

I will make another pass to see if I can feed the data I am getting into the functions you already have. This was me being a bit lazy tbh :/

munkybutt avatar Feb 04 '22 20:02 munkybutt