Esempio n. 1
0
        public static NodeAttribute GetFromNode(IntPtr ptr)
        {
            var attribute = FbxNodeGetAttribute(ptr);

            if (attribute == IntPtr.Zero)
            {
                return(Empty);
            }
            switch (FbxNodeGetAttributeType(ptr))
            {
            case FbxNodeType.MESH:
                var meshAttribute = MeshAttribute.FromSubmesh(attribute);
                var count         = FbxNodeGetAttributeCount(ptr);
                for (int i = 1; i < count; i++)
                {
                    meshAttribute = MeshAttribute.Combine(
                        meshAttribute,
                        MeshAttribute.FromSubmesh(FbxNodeGetAttribute(ptr, i)));
                }
                return(meshAttribute);

            case FbxNodeType.CAMERA:
                return(new CameraAttribute(attribute));

            case FbxNodeType.NONE:
            default:
                return(Empty);
            }
        }
Esempio n. 2
0
        public static MeshAttribute Combine(MeshAttribute meshAttribute1, MeshAttribute meshAttribute2)
        {
            var sm = new List <Submesh>();

            sm.AddRange(meshAttribute1.Submeshes);
            sm.AddRange(meshAttribute2.Submeshes);
            return(new MeshAttribute {
                Submeshes = sm
            });
        }