aiBone.GetmWeights C# (CSharp) Method

GetmWeights() private method

private GetmWeights ( ) : aiVertexWeightVector
return aiVertexWeightVector
  private aiVertexWeightVector GetmWeights() {
    IntPtr cPtr = AssimpPINVOKE.aiBone_GetmWeights(swigCPtr);
    aiVertexWeightVector ret = (cPtr == IntPtr.Zero) ? null : new aiVertexWeightVector(cPtr, true);
    return ret;
  }

Usage Example

        private NodeContent extractNo(aiNode node)
        {
            NodeContent nodeContent = new NodeContent();

            nodeContent.Name      = node.mName.Data;
            nodeContent.Transform = tomatrix(node.mTransformation);
            ainodetocontent.Add(node.mName.Data, nodeContent);

            wbone.Clear();
            for (int i = 0; i < node.mNumMeshes; i++)
            {
                for (int j = 0; j < scene.mMeshes[(int)node.mMeshes[i]].mNumBones; j++)
                {
                    aiBone b = scene.mMeshes[(int)node.mMeshes[i]].mBones[j];
                    for (int w = 0; w < b.mNumWeights; w++)
                    {
                        aiVertexWeight vw = b.GetmWeights()[w];
                        if (!wbone.ContainsKey((int)vw.mVertexId))
                        {
                            wbone[(int)vw.mVertexId] = new List <KeyValuePair <string, float> >();
                        }
                        wbone[(int)vw.mVertexId].Add(new KeyValuePair <string, float>(b.mName.Data, vw.mWeight));
                    }
                    bones.Add(b);
                }

                log("model " + node.mMeshes[i].ToString());
                MeshContent MeshContent = ExtractMesh(scene.mMeshes[(int)node.mMeshes[i]]);
                MeshHelper.SwapWindingOrder(MeshContent);
                MeshHelper.OptimizeForCache(MeshContent);
                nodeContent.Children.Add(MeshContent);
            }

            foreach (var item in node.mChildren)
            {
                nodeContent.Children.Add(extractNo(item));
            }
            return(nodeContent);
        }