fbx_direct is an FBX library for Rust programming language. It is heavily inspired by Java Streaming API for XML (StAX) and xml-rs.
This library currently contains event reader for Binary FBX and event writer for ASCII/Binary FBX like xml-rs. ASCII FBX reader is not yet supported.
This library supports FBX 7.4 or later.
Licensed under either of
-
Apache License, Version 2.0, (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
-
MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
- New feature and improvements
-
- Bump many dependencies
-
#2, thanks @VictorKoenders
- Changes and deprecations
-
- Changed interface of
common::OwnedProperty::into_*()
-
Their return types are changed from
Option<Foo>
toResult<Foo, OwnedProperty>
. Now they returnErr(self)
on conversion failure.
- Changed interface of
- Fixes
-
- Invalid left-brace '{' emission of FBX ascii writer
-
Sometimes '{' is missing in output data. Now this is fixed.
- Changes and deprecations
-
writer::Error::DataTooLarge
variant is added-
When a data size (number of elements, byte offset, byte size, etc.) is too large for the format of writing file, this error will be emitted.
- New feature and improvements
-
- Support FBX 7.5
-
From FBX 7.5.0, specification of binary format changed a little. Now, binary reader/writer supports it. Of course, FBX 7.4 is also supported.
- Changes and deprecations
-
- Relicenced under MIT and Apache-2.0
-
See Issue #1.
- Changed interface of
common::{OwnedProperty,Property}::{get,into}_binary()
-
Now their type is
fn get_binary(&self, from_string: bool) → Option<Cow<[u8]>>
andfn into_binary(&self, from_string: bool) → Option<Vec<u8>>
. Now the function tries to convert string to binary whenfrom_string
istrue
, and doesn’t try whenfalse
.
- New feature and improvements
-
- ASCII FBX writer became available
-
Note that some feature (such as ascii representation of node property of boolean vector) is unconfirmed and might be wrong.
writer::EmitterConfig::fbx_version
member variable is added-
This is used to specify FBX version to export. Default value is
None
. WhenNone
, it is automatically decided by writer if necessary. When it cannot be automatically decided, error will be emitted.
- Changes and deprecations
-
writer::Error::InvalidOption
variant is added-
When writer is configured with invalid/inconsistent option or inconsistent writer event (e.g. event specifying different version as writer config) is given, this error will be emitted.
- New feature and improvements
-
common::OwnedProperty::into_{bool,i16,i32,i64,f32,f64,vec_bool,vec_i32,vec_i64,vec_f32,vec_f64,string,binary}
is added-
get_foo
converts value safely but not consuming self.into_foo
converts value safely consuming self. When both can be used,into_foo
is preferred because it is more efficient.
- New feature and improvements
-
common::OwnedProperty::get_{bool,i16,i32,i64,f32,f64,vec_bool,vec_i32,vec_i64,vec_f32,vec_f64,string,binary}
is added-
get_foo
converts value safely but not consuming self. Note that it cannot be used to conversion with loss of information (such asi64
toi32
orf32
toi64
), but conversion betweenf32
andf64
is exceptionally allowed.