private glTFLoader.Schema.Image GetImageFromBitmapText(Bitmap bitmap)
        {
            byte[] imageBytes = GetImageBytes(bitmap);

            var textureBuffer = new glTFLoader.Schema.Buffer();

            textureBuffer.Uri        = Constants.TextBufferHeader + Convert.ToBase64String(imageBytes);
            textureBuffer.ByteLength = imageBytes.Length;

            int textureBufferIdx = dummy.Buffers.AddAndReturnIndex(textureBuffer);

            // Create bufferviews
            var textureBufferView = new glTFLoader.Schema.BufferView()
            {
                Buffer     = textureBufferIdx,
                ByteOffset = 0,
                ByteLength = textureBuffer.ByteLength,
            };
            int textureBufferViewIdx = dummy.BufferViews.AddAndReturnIndex(textureBufferView);

            return(new glTFLoader.Schema.Image()
            {
                BufferView = textureBufferViewIdx,
                MimeType = glTFLoader.Schema.Image.MimeTypeEnum.image_png,
            });
        }
        private glTFLoader.Schema.Image GetImageFromFileText(string fileName)
        {
            byte[] imageBytes = GetImageBytesFromFile(fileName);

            var textureBuffer = new glTFLoader.Schema.Buffer()
            {
                Uri        = Constants.TextBufferHeader + Convert.ToBase64String(imageBytes),
                ByteLength = imageBytes.Length,
            };

            int textureBufferIdx = dummy.Buffers.AddAndReturnIndex(textureBuffer);

            var textureBufferView = new glTFLoader.Schema.BufferView()
            {
                Buffer     = textureBufferIdx,
                ByteOffset = 0,
                ByteLength = textureBuffer.ByteLength,
            };
            int textureBufferViewIdx = dummy.BufferViews.AddAndReturnIndex(textureBufferView);

            return(new glTFLoader.Schema.Image()
            {
                BufferView = textureBufferViewIdx,
                MimeType = glTFLoader.Schema.Image.MimeTypeEnum.image_png,
            });
        }
Esempio n. 3
0
        int GetVertexColorBuffer(MeshVertexColorList vertexColors, out Color4f min, out Color4f max, out int byteLength)
        {
            byte[] bytes = GetVertexColorBytes(vertexColors, out min, out max);

            glTFLoader.Schema.Buffer vertexColorsBuffer = new glTFLoader.Schema.Buffer()
            {
                Uri        = Constants.TextBufferHeader + Convert.ToBase64String(bytes),
                ByteLength = bytes.Length,
            };

            byteLength = bytes.Length;

            return(dummy.Buffers.AddAndReturnIndex(vertexColorsBuffer));
        }
Esempio n. 4
0
        int GetTextureCoordinatesBuffer(MeshTextureCoordinateList textureCoordinates, out Point2f min, out Point2f max, out int byteLength)
        {
            byte[] bytes = GetTextureCoordinatesBytes(textureCoordinates, out min, out max);

            glTFLoader.Schema.Buffer textureCoordinatesBuffer = new glTFLoader.Schema.Buffer()
            {
                Uri        = Constants.TextBufferHeader + Convert.ToBase64String(bytes),
                ByteLength = bytes.Length,
            };

            byteLength = bytes.Length;

            return(dummy.Buffers.AddAndReturnIndex(textureCoordinatesBuffer));
        }
Esempio n. 5
0
        int GetNormalsBuffer(MeshVertexNormalList normals, out Vector3f min, out Vector3f max, out int byteLength)
        {
            byte[] bytes = GetNormalsBytes(normals, out min, out max);

            byteLength = bytes.Length;

            glTFLoader.Schema.Buffer normalBuffer = new glTFLoader.Schema.Buffer()
            {
                Uri        = Constants.TextBufferHeader + Convert.ToBase64String(bytes),
                ByteLength = bytes.Length,
            };

            return(dummy.Buffers.AddAndReturnIndex(normalBuffer));
        }
Esempio n. 6
0
        private int GetIndicesBuffer(MeshFaceList faces, out int indicesCount, out int byteLength)
        {
            byte[] bytes = GetIndicesBytes(faces, out indicesCount);

            byteLength = bytes.Length;

            glTFLoader.Schema.Buffer indicesBuffer = new glTFLoader.Schema.Buffer()
            {
                Uri        = Constants.TextBufferHeader + Convert.ToBase64String(bytes),
                ByteLength = bytes.Length,
            };

            return(dummy.Buffers.AddAndReturnIndex(indicesBuffer));
        }
Esempio n. 7
0
        private int GetVertexBuffer(MeshVertexList vertices, out Point3d min, out Point3d max, out int length)
        {
            byte[] bytes = GetVertexBytes(vertices, out min, out max);

            length = bytes.Length;

            glTFLoader.Schema.Buffer buffer = new glTFLoader.Schema.Buffer()
            {
                Uri        = Constants.TextBufferHeader + Convert.ToBase64String(bytes),
                ByteLength = length,
            };

            return(dummy.Buffers.AddAndReturnIndex(buffer));
        }
Esempio n. 8
0
        public void WriteDracoBytes(byte[] bytes, out int bufferIndex, out int byteOffset, out int byteLength)
        {
            byteLength = bytes.Length;

            if (binary)
            {
                byteOffset = (int)binaryBuffer.Count;
                binaryBuffer.AddRange(bytes);
                bufferIndex = 0;
            }
            else
            {
                glTFLoader.Schema.Buffer buffer = new glTFLoader.Schema.Buffer()
                {
                    Uri        = Constants.TextBufferHeader + Convert.ToBase64String(bytes),
                    ByteLength = bytes.Length,
                };
                bufferIndex = dummy.Buffers.AddAndReturnIndex(buffer);
                byteOffset  = 0;
            }
        }