UNPKG

forge-convert-utils

Version:

Tools for converting Autodesk Forge file formats.

362 lines (251 loc) 10.5 kB
# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] ## [4.0.5] - 2023-09-29 - Added - SVF materials that are not referenced by anything are excluded from the glTF output ## [4.0.4] - 2023-08-08 - Added - Support for gltf output filtering based on fragment IDs. - Support for svf input filtering based on dbID or fragment ID. ## [4.0.3] - 2023-06-28 - Fixed - Solved an issue with glTF geometry being broken in certain scenarios (kudos to [henrikbuchholz](https://github.com/henrikbuchholz)!) ## [4.0.2] - 2023-03-10 - Added - Support for custom serialization of the glTF manifest - Fixed - Parsing of properties for the very last object (kudos to [johannesheesterman](https://github.com/johannesheesterman)!) ## [4.0.1] - 2022-03-24 - Fixed - Deduplication of geometries now using maps instead of arrays, bringing dramatic speed improvements (kudos to [VFedyk](https://github.com/VFedyk)!) ## [4.0.0] - 2022-03-24 - Removed - Support for the (experimental) OTG format download and parsing ## [3.6.3] - 2022-01-20 - Fixed - Conversion of SVF 3x3 matrix + translation into glTF 4x4 matrix ## [3.6.2] - 2021-11-04 - Fixed - Failing TypeScript build due to changes in `adm-zip` dependency ## [3.6.1] - 2021-11-04 - Fixed - Updated dependencies - Added URL-encoding when downloading SVF viewables ## [3.6.0] - 2021-02-04 - Added - Re-introduced code docs generator - Fixed - Updated dependencies - Changed - CI/CD now in Github Actions ## [3.5.2] - 2021-01-04 - Fixed - Downloading of SVF assets with special characters (kudos [thejakobn](https://github.com/thejakobn)) - Parsing textures with custom scale (kudos [thejakobn](https://github.com/thejakobn)) - Bug when parsing props with undefined category ## [3.5.1] - 2020-11-20 - Added - New version of forge-server-utils - Support for chunked download of Model Derivative assets ## [3.5.0] - 2020-03-30 - Added - Mapping SVF/OTG glossiness to glTF roughness (need to confirm that the mapping is correct) ## [3.4.5] - 2020-03-26 - Fixed - SVF parser property db config from 3.4.4 ## [3.4.4] - 2020-03-26 - Added - SVF parser can now be configured to skip property DB ## [3.4.3] - 2020-03-25 - Fixed - Travis config ## [3.4.1] - 2020-03-25 - Added - SVF downloader can now be initialized with custom host URL and region - SVF parser can now be initialized with custom host URL and region - Removed - Docs generator (due to audit warnings and lack of updates); will continue generating the docs manually. ## [3.4.0] - 2020-03-24 - Added - Support for meshes with vertex colors ## [3.3.1] - 2020-03-17 - Fixed - Npm dependency vulnerability ## [3.3.0] - 2020-03-13 - Added - F2D downloader - Changed - SVF/OTG/F2D downloaders can now accept existing auth tokens - SVF/OTG/F2D downloaders can now be configured to ignore missing assets ## [3.2.0] - 2020-03-13 - Added - SVF and OTG downloader classes ## [3.1.2] - 2020-03-12 - Fixed - When converting to gltf, empty `textures` or `images` are removed to prevent validation errors (thanks [@AlexPiro](https://github.com/AlexPiro)!) - Added - Dev utility for validating gltf manifests (to be used in CI/CD) ## [3.1.1] - 2020-02-25 - Fixed - Alpha blending only enabled when opacity is less than 1.0 ([#21](https://github.com/petrbroz/forge-convert-utils/issues/21)) ## [3.1.0] - 2020-01-15 - Added - **[experimental]** OTG parser - Fixed - Flipped V component of texture coords ([#18](https://github.com/petrbroz/forge-convert-utils/issues/18), kudos to [@dykarohora](https://github.com/dykarohora)!) ## [3.0.0] - 2020-01-07 - Changed - Updated to TypeScript version 3.7 - **[BREAKING CHANGE]** loaders/writers now load/write a centralized _intermediate file format_ - Fixed - Extended fix from version 2.0.1: 1x1 black pixel images now used also when materials reference non-existent texture URIs ## [2.0.1] - 2019-12-20 - Fixed - Missing SVF textures no longer cause the conversion to fail, and are instead replaced with 1x1 black pixel images ## [2.0.0] - 2019-12-17 - Changed - **[BREAKING CHANGE]** removed post-processing options (Draco compression and binary output) - We encourage users to post-process the raw glTFs generated by this library in their own pipelines, using Node.js modules and CLI tools like [gltf-pipeline](https://github.com/AnalyticalGraphicsInc/gltf-pipeline) or [gltfpack](https://github.com/zeux/meshoptimizer#gltfpack) - See [test/remote-svf-to-gltf.sh](test/remote-svf-to-gltf.sh) for an example of such integration ## [1.2.1] - 2019-12-13 - Added - Scaling the output model based on SVF distance units (added by @dykarohora) - Fixed - Sanitizing URNs (removing trailing '='s) ## [1.2.0] - 2019-12-10 - Fixed - Missing folders when post-processing ([#11](https://github.com/petrbroz/forge-convert-utils/issues/11), fixed by @AlexPiro) - Added - Filtering of objects to be included in the output glTF ## [1.1.2] - 2019-11-30 - Fixed - Multi-byte characters in derivative URNs (thanks @dykarohora!) ## [1.1.1] - 2019-11-13 - Changed - When exporting to glTF+Draco, resources are no longer embedded into the manifest ([#7](https://github.com/petrbroz/forge-convert-utils/issues/7)) ## [1.1.0] - 2019-11-08 - Added - Opt-in feature to move the model to origin - Changed - Forge models are now reoriented based on their metadata to align with the glTF coordinate system (X=left, Y=up, Z=front) > Note: scene hierarchies in the generated glTFs now contain two additional levels: all scene objects are grouped into an _xform node_ that applies additional transformations (for example, moving the model to origin), and the _xform node_ is a child of a _root node_ which transforms the entire scene to the glTF coordinate system. ## [1.0.2] - 2019-11-01 - Removed - Support for sqlite output - Since [sqlite3](https://www.npmjs.com/package/sqlite3) is a native Node.js module, it was a [pain](https://css-tricks.com/what-i-learned-by-building-my-own-vs-code-extension/) to use this library in [vscode-forge-tools](https://github.com/petrbroz/vscode-forge-tools) - The experimental serialization/deserialization to/from sqlite is now developed in [forge-convert-sqlite](https://github.com/petrbroz/forge-convert-sqlite) ## [1.0.1] - 2019-10-31 - Fixed - Calls to `GltfWriter.prototype.write` now await postprocessing (if there's any) ## [1.0.0] - 2019-10-31 - Changed - **[BREAKING]** gltf/glb is now written with a single call (`await writer.write(svf, outputDir)`) - Removed - `debug` dependency (using `console.log` instead) ## [0.8.0] - 2019-10-29 - Added - The `sqlite` flag now generates a sqlite manifest with both the glTF data and the property database - When deserializing sqlite back to glTF, you can now pass in a filter of dbids - The filter can be either a `SELECT dbid FROM properties WHERE ...`, or a list of dbids - Fixed - Iterating of object properties - Changed - Adding multiple SVFs into single glTF is now considered unsupported - Trying to do so will cause an exception in the `GltfWriter.write` method ## [0.7.2] - 2019-10-25 - Added - deserialization of sqlite manifest back to glTF ## [0.7.1] - 2019-10-24 - Fixed - glTF deduplication (incl. performance improvement) - sqlite serialization when ignoring mesh, line, or point geometries ## [0.7.0] - 2019-10-24 - Added - More deduplication, now also on the glTF accessor and mesh level - Additional CLI options for ignoring mesh, line, or point geometry - (experimental) serialization of glTF manifest into sqlite - Can only be used when texture/buffer data is referenced and not embedded - Potentially could be used for dynamically generating glTF variants with subsets of the original model - Additional CLI option for serializing glTF manifest into sqlite - Note that the schema of the sqlite database might change ## [0.6.4] - 2019-10-22 - Added - Skipping texture UVs when there's no material using them - Fixed - Computing position bounds ## [0.6.3] - 2019-10-17 - Changed - Geometry deduplication now on BufferView (instead of Mesh) level - Sample scripts now using proper error catching ## [0.6.2] - 2019-10-17 - Added - Opt-in deduplication of materials - Fixed - Caching of meshes ## [0.6.1] - 2019-10-14 - Added - Progress logging when parsing SVF and writing glTF - Fixed - Typo in reference to package.json in CLI tool - Typo in CLI when accessing Forge credentials ## [0.6.0] - 2019-10-11 - Added - Opt-in deduplication of exported geometries - Opt-in output to GLB - Opt-in output with Draco compression - Fixed - Normalizing windows/posix paths of SVF assets ## [0.5.0] - 2019-10-08 - Added - Listing IDs of object children from SVF property database - Changed - Excluding internal attributes when parsing SVF property database ## [0.4.1] - 2019-10-07 - Added - Access to internal SVF manifest - Fixed - Gltf schema now included in build output ## [0.4.0] - 2019-10-07 - Added - Support for converting both remote and local SVFs using the CLI tool - Support for configuring glTF output (max. size of binary files, ignoring line/point geometries, ...) - Outputting multiple scenes in one glTF - Changed - Moved to new version of forge-server-utils ## [0.3.0] - 2019-10-07 - Added - TypeScript definition files with glTF and SVF schemas - Changed - Code restructure - SVF parsing code moved from forge-server-utils back here ## [0.2.1] - 2019-10-04 - Fixed - Images now extracted with both lower-cased and unmodified URIs ## [0.2.0] - 2019-10-03 - Added - Support for line/point geometry, incl. colors ## [0.1.0] - 2019-10-03 - Added - Parsing individual SVF assets in parallel - CI/CD pipeline setup - Support for basic material textures (texture transforms not yet supported) - Changed - Moved to TypeScript for additional type security, incl. official typings for the glTF 2.0 schema - Moved to yarn - Reusing SVF parser from [forge-server-utils](https://www.npmjs.com/package/forge-server-utils) module - Fixed - Crash when no materials are available ## [0.0.2] - 2019-09-24 - Fixed - CLI script ## [0.0.1] - 2019-09-20 - First release