diff --git a/docs/guides/BROWSER.md b/docs/guides/BROWSER.md new file mode 100644 index 0000000..5ebf14d --- /dev/null +++ b/docs/guides/BROWSER.md @@ -0,0 +1,108 @@ +# Using Draco in the Browser +This guide will show you how to use Draco files from the browser. + +## JavaScript Decode + +This is a minimal example to show how to use the Draco JavaScript deocder to +decode Draco files in the browser. + +This is the minimal amount of code to decode a Draco file: +~~~ +// Create the Draco decoder. +const decoderModule = DracoDecoderModule(); +const buffer = new decoderModule.DecoderBuffer(); +buffer.Init(byteArray, byteArray.length); + +// Create a buffer to hold the encoded data. +const decoder = new decoderModule.Decoder(); +const geometryType = decoder.GetEncodedGeometryType(buffer); + +// Decode the encoded geometry. +let outputGeometry; +let status; +if (geometryType == decoderModule.TRIANGULAR_MESH) { + outputGeometry = new decoderModule.Mesh(); + status = decoder.DecodeBufferToMesh(buffer, outputGeometry); +} else { + outputGeometry = new decoderModule.PointCloud(); + status = decoder.DecodeBufferToPointCloud(buffer, outputGeometry); +} + +// You must explicitly delete objects created from the DracoDecoderModule +// or Decoder. +decoderModule.destroy(outputGeometry); +decoderModule.destroy(decoder); +decoderModule.destroy(buffer); +~~~ + +Now create a web page to decode a Draco file and just output the number of +points decoded. Save this file as *DracoDecode.html*. +~~~ + + +
+