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, AssetResolverEvent, AssetResolverResponse, BundleAssetResolver,
54    PathAssetResolver, RelativeAssetResolver,
55};
56pub use camera::{Camera, StereoscopicCamera};
57pub use error::{ModelIoError, Result};
58pub use light::Light;
59pub use light_probe::{LightProbe, LightProbeIrradianceDataSource};
60pub use material::{
61    Material, MaterialProperty, MaterialPropertyConnection, MaterialPropertyGraph,
62    MaterialPropertyNode, PhysicallyPlausibleScatteringFunction, ScatteringFunction,
63    TextureFilter, TextureSampler,
64};
65pub use mesh::{Mesh, MeshBuffer, VertexAttributeData};
66pub use mesh_buffer::{
67    MeshBufferAllocator, MeshBufferAllocatorEvent, MeshBufferAllocatorResponse, MeshBufferData,
68    MeshBufferDataAllocator, MeshBufferMap, MeshBufferZone, MeshBufferZoneDefault,
69};
70pub use object::{Object, ObjectContainer};
71pub use physically_plausible_light::{AreaLight, PhotometricLight, PhysicallyPlausibleLight};
72pub use protocols::{Component, JointAnimation, Named, ObjectContainerComponent};
73pub use sdk_constants::{ut_type, vertex_attribute_name};
74pub use skeleton::Skeleton;
75pub use submesh::{Submesh, SubmeshTopology};
76pub use texture::Texture;
77pub use transform::{
78    Transform, TransformComponent, TransformComponentEvent, TransformComponentResponse,
79    TransformMatrixOp, TransformOp, TransformOpEvent, TransformOpResponse, TransformOrientOp,
80    TransformRotateOp, TransformRotateXOp, TransformRotateYOp, TransformRotateZOp,
81    TransformScaleOp, TransformStack, TransformTranslateOp,
82};
83pub use types::{
84    vertex_format, AnimatedValueInfo, AnimatedValueInterpolation, AreaLightInfo, AssetInfo,
85    BoundingBox, CameraInfo, CameraProjection, DataPrecision, GeometryType, IndexBitDepth,
86    LightInfo, LightType, MaterialFace, MaterialInfo, MaterialMipMapFilterMode,
87    MaterialPropertyInfo, MaterialPropertyType, MaterialSemantic, MaterialTextureFilterMode,
88    MaterialTextureWrapMode, Matrix4x4ArrayInfo, MeshBufferInfo, MeshBufferType, ObjectInfo,
89    ObjectKind, PackedJointAnimationInfo, PhotometricLightInfo, PhysicallyPlausibleLightInfo,
90    ProbePlacement, SkeletonInfo, StereoscopicCameraInfo, TextureChannelEncoding,
91    TextureFilterInfo, TextureInfo, TextureSamplerInfo, TransformOpRotationOrder,
92    VertexAttributeDescriptorInfo, VertexAttributeInfo, VertexDescriptorInfo, VoxelArrayInfo,
93    VoxelIndexExtent,
94};
95pub use utility::Utility;
96pub use value_types::Matrix4x4Array;
97pub use vertex_attribute::{VertexAttribute, VertexBufferLayout, VertexDescriptor};
98pub use voxel_array::VoxelArray;
99
100/// Re-exports the primary Model I/O wrappers for convenient imports.
101pub mod prelude {
102    pub use crate::{
103        ut_type, vertex_attribute_name, vertex_format, AnimatedMatrix4x4, AnimatedQuaternion,
104        AnimatedQuaternionArray, AnimatedScalar, AnimatedScalarArray, AnimatedValue,
105        AnimatedValueInfo, AnimatedValueInterpolation, AnimatedVector2, AnimatedVector3,
106        AnimatedVector3Array, AnimatedVector4, AnimationBindComponent, AreaLight, AreaLightInfo,
107        Asset, AssetInfo, AssetResolver, AssetResolverEvent, AssetResolverResponse, BoundingBox,
108        BundleAssetResolver, Camera, CameraInfo, CameraProjection, Component, DataPrecision,
109        GeometryType, IndexBitDepth, JointAnimation, Light, LightInfo, LightProbe,
110        LightProbeIrradianceDataSource, LightType, Material, MaterialFace, MaterialInfo,
111        MaterialMipMapFilterMode, MaterialProperty, MaterialPropertyConnection,
112        MaterialPropertyGraph, MaterialPropertyInfo, MaterialPropertyNode,
113        MaterialPropertyType, MaterialSemantic, MaterialTextureFilterMode,
114        MaterialTextureWrapMode, Matrix4x4Array, Matrix4x4ArrayInfo, Mesh, MeshBuffer,
115        MeshBufferAllocator, MeshBufferAllocatorEvent, MeshBufferAllocatorResponse,
116        MeshBufferData, MeshBufferDataAllocator, MeshBufferInfo, MeshBufferMap,
117        MeshBufferType, MeshBufferZone, MeshBufferZoneDefault, ModelIoError, Named, Object,
118        ObjectContainer, ObjectContainerComponent, ObjectInfo, ObjectKind,
119        PackedJointAnimation, PackedJointAnimationInfo, PathAssetResolver,
120        PhotometricLight, PhotometricLightInfo, PhysicallyPlausibleLight,
121        PhysicallyPlausibleLightInfo, PhysicallyPlausibleScatteringFunction, ProbePlacement,
122        RelativeAssetResolver, Result, ScatteringFunction, Skeleton, SkeletonInfo,
123        StereoscopicCamera, StereoscopicCameraInfo, Submesh, SubmeshTopology, Texture,
124        TextureChannelEncoding, TextureFilter, TextureFilterInfo, TextureInfo, TextureSampler,
125        TextureSamplerInfo, Transform, TransformComponent, TransformComponentEvent,
126        TransformComponentResponse, TransformMatrixOp, TransformOp, TransformOpEvent,
127        TransformOpResponse, TransformOpRotationOrder, TransformOrientOp, TransformRotateOp,
128        TransformRotateXOp, TransformRotateYOp, TransformRotateZOp, TransformScaleOp,
129        TransformStack, TransformTranslateOp, Utility, VertexAttribute, VertexAttributeData,
130        VertexAttributeDescriptorInfo, VertexAttributeInfo, VertexBufferLayout,
131        VertexDescriptor, VertexDescriptorInfo, VoxelArray, VoxelArrayInfo, VoxelIndexExtent,
132    };
133}