Skip to main content

modelio/
lib.rs

1#![doc = include_str!("../README.md")]
2#![cfg_attr(docsrs, feature(doc_cfg))]
3#![allow(
4    clippy::cast_possible_truncation,
5    clippy::doc_markdown,
6    clippy::missing_const_for_fn,
7    clippy::missing_errors_doc,
8    clippy::module_name_repetitions,
9    clippy::must_use_candidate,
10    clippy::redundant_pub_crate,
11    clippy::return_self_not_must_use,
12    clippy::similar_names,
13    clippy::struct_excessive_bools,
14    clippy::too_many_lines
15)]
16
17mod animated_value_types;
18mod animation;
19mod asset;
20mod asset_resolver;
21mod camera;
22mod error;
23mod ffi;
24mod handle;
25mod light;
26mod light_probe;
27mod material;
28mod mesh;
29mod mesh_buffer;
30mod object;
31mod physically_plausible_light;
32mod protocols;
33mod sdk_constants;
34mod skeleton;
35mod submesh;
36mod texture;
37mod transform;
38mod types;
39mod util;
40mod utility;
41mod value_types;
42mod vertex_attribute;
43mod voxel_array;
44
45pub use animated_value_types::{
46    AnimatedMatrix4x4, AnimatedQuaternion, AnimatedQuaternionArray, AnimatedScalar,
47    AnimatedScalarArray, AnimatedValue, AnimatedVector2, AnimatedVector3, AnimatedVector3Array,
48    AnimatedVector4,
49};
50pub use animation::{AnimationBindComponent, PackedJointAnimation};
51pub use asset::Asset;
52pub use asset_resolver::{
53    AssetResolver, BundleAssetResolver, PathAssetResolver, RelativeAssetResolver,
54};
55pub use camera::{Camera, StereoscopicCamera};
56pub use error::{ModelIoError, Result};
57pub use light::Light;
58pub use light_probe::{LightProbe, LightProbeIrradianceDataSource};
59pub use material::{
60    Material, MaterialProperty, MaterialPropertyConnection, MaterialPropertyGraph,
61    MaterialPropertyNode, TextureFilter, TextureSampler,
62};
63pub use mesh::{Mesh, MeshBuffer, VertexAttributeData};
64pub use mesh_buffer::{
65    MeshBufferAllocator, MeshBufferData, MeshBufferDataAllocator, MeshBufferMap, MeshBufferZone,
66    MeshBufferZoneDefault,
67};
68pub use object::{Object, ObjectContainer};
69pub use physically_plausible_light::{AreaLight, PhotometricLight, PhysicallyPlausibleLight};
70pub use protocols::{Component, JointAnimation, Named, ObjectContainerComponent};
71pub use sdk_constants::{ut_type, vertex_attribute_name};
72pub use skeleton::Skeleton;
73pub use submesh::{Submesh, SubmeshTopology};
74pub use texture::Texture;
75pub use transform::{
76    Transform, TransformComponent, TransformMatrixOp, TransformOp, TransformOrientOp,
77    TransformRotateOp, TransformRotateXOp, TransformRotateYOp, TransformRotateZOp,
78    TransformScaleOp, TransformStack, TransformTranslateOp,
79};
80pub use types::{
81    vertex_format, AnimatedValueInfo, AnimatedValueInterpolation, AreaLightInfo, AssetInfo,
82    BoundingBox, CameraInfo, CameraProjection, DataPrecision, GeometryType, IndexBitDepth,
83    LightInfo, LightType, MaterialFace, MaterialInfo, MaterialMipMapFilterMode,
84    MaterialPropertyInfo, MaterialPropertyType, MaterialSemantic, MaterialTextureFilterMode,
85    MaterialTextureWrapMode, Matrix4x4ArrayInfo, MeshBufferInfo, MeshBufferType, ObjectInfo,
86    ObjectKind, PackedJointAnimationInfo, PhotometricLightInfo, PhysicallyPlausibleLightInfo,
87    ProbePlacement, SkeletonInfo, StereoscopicCameraInfo, TextureChannelEncoding,
88    TextureFilterInfo, TextureInfo, TextureSamplerInfo, TransformOpRotationOrder,
89    VertexAttributeDescriptorInfo, VertexAttributeInfo, VertexDescriptorInfo, VoxelArrayInfo,
90    VoxelIndexExtent,
91};
92pub use utility::Utility;
93pub use value_types::Matrix4x4Array;
94pub use vertex_attribute::{VertexAttribute, VertexBufferLayout, VertexDescriptor};
95pub use voxel_array::VoxelArray;
96
97/// Re-exports the primary Model I/O wrappers for convenient imports.
98pub mod prelude {
99    pub use crate::{
100        ut_type, vertex_attribute_name, vertex_format, AnimatedMatrix4x4, AnimatedQuaternion,
101        AnimatedQuaternionArray, AnimatedScalar, AnimatedScalarArray, AnimatedValue,
102        AnimatedValueInfo, AnimatedValueInterpolation, AnimatedVector2, AnimatedVector3,
103        AnimatedVector3Array, AnimatedVector4, AnimationBindComponent, AreaLight, AreaLightInfo,
104        Asset, AssetInfo, AssetResolver, BoundingBox, BundleAssetResolver, Camera, CameraInfo,
105        CameraProjection, Component, DataPrecision, GeometryType, IndexBitDepth, JointAnimation,
106        Light, LightInfo, LightProbe, LightProbeIrradianceDataSource, LightType, Material,
107        MaterialFace, MaterialInfo, MaterialMipMapFilterMode, MaterialProperty,
108        MaterialPropertyConnection, MaterialPropertyGraph, MaterialPropertyInfo,
109        MaterialPropertyNode, MaterialPropertyType, MaterialSemantic, MaterialTextureFilterMode,
110        MaterialTextureWrapMode, Matrix4x4Array, Matrix4x4ArrayInfo, Mesh, MeshBuffer,
111        MeshBufferAllocator, MeshBufferData, MeshBufferDataAllocator, MeshBufferInfo,
112        MeshBufferMap, MeshBufferType, MeshBufferZone, MeshBufferZoneDefault, ModelIoError, Named,
113        Object, ObjectContainer, ObjectContainerComponent, ObjectInfo, ObjectKind,
114        PackedJointAnimation, PackedJointAnimationInfo, PathAssetResolver, PhotometricLight,
115        PhotometricLightInfo, PhysicallyPlausibleLight, PhysicallyPlausibleLightInfo,
116        ProbePlacement, RelativeAssetResolver, Result, Skeleton, SkeletonInfo, StereoscopicCamera,
117        StereoscopicCameraInfo, Submesh, SubmeshTopology, Texture, TextureChannelEncoding,
118        TextureFilter, TextureFilterInfo, TextureInfo, TextureSampler, TextureSamplerInfo,
119        Transform, TransformComponent, TransformMatrixOp, TransformOp, TransformOpRotationOrder,
120        TransformOrientOp, TransformRotateOp, TransformRotateXOp, TransformRotateYOp,
121        TransformRotateZOp, TransformScaleOp, TransformStack, TransformTranslateOp, Utility,
122        VertexAttribute, VertexAttributeData, VertexAttributeDescriptorInfo, VertexAttributeInfo,
123        VertexBufferLayout, VertexDescriptor, VertexDescriptorInfo, VoxelArray, VoxelArrayInfo,
124        VoxelIndexExtent,
125    };
126}