Skip to main content

Crate scena

Crate scena 

Source
Expand description

scena is a Rust-native scene-graph renderer.

The first implementation slice establishes the public scene/assets/renderer vocabulary and the explicit prepare/render lifecycle.

Re-exports§

pub use animation::AnimationChannel;
pub use animation::AnimationClip;
pub use animation::AnimationClipKey;
pub use animation::AnimationInterpolation;
pub use animation::AnimationLoopMode;
pub use animation::AnimationMixer;
pub use animation::AnimationMixerKey;
pub use animation::AnimationOutput;
pub use animation::AnimationPlaybackState;
pub use animation::AnimationSourceChannel;
pub use animation::AnimationSourceClip;
pub use animation::AnimationTarget;
pub use assets::FileAssetFetcher;
pub use assets::AssetEvictionStats;
pub use assets::AssetFetcher;
pub use assets::AssetLoadControl;
pub use assets::AssetLoadProgress;
pub use assets::AssetLoadReport;
pub use assets::AssetLoadWarning;
pub use assets::AssetPath;
pub use assets::AssetStoreId;
pub use assets::Assets;
pub use assets::DefaultAssetFetcher;
pub use assets::EnvironmentDerivative;
pub use assets::EnvironmentDesc;
pub use assets::EnvironmentHandle;
pub use assets::EnvironmentSourceKind;
pub use assets::GeometryHandle;
pub use assets::GltfDecoderPolicy;
pub use assets::GltfExtensionDiagnostic;
pub use assets::GltfExtensionStatus;
pub use assets::MaterialHandle;
pub use assets::MaterialVariantBinding;
pub use assets::ModelHandle;
pub use assets::RetainPolicy;
pub use assets::SceneAsset;
pub use assets::SceneAssetAnchor;
pub use assets::SceneAssetClip;
pub use assets::SceneAssetLight;
pub use assets::SceneAssetMesh;
pub use assets::SceneAssetNode;
pub use assets::TextureDesc;
pub use assets::TextureFilter;
pub use assets::TextureHandle;
pub use assets::TextureSamplerDesc;
pub use assets::TextureSourceFormat;
pub use assets::TextureWrap;
pub use assets::WasmEnvironmentDelivery;
pub use controls::OrbitControlAction;
pub use controls::OrbitControls;
pub use controls::PointerButton;
pub use controls::PointerEvent;
pub use controls::PointerEventKind;
pub use controls::TouchEvent;
pub use controls::TouchEventKind;
pub use diagnostics::AdapterLimitsReport;
pub use diagnostics::AlphaPipelineStatus;
pub use diagnostics::AnimationError;
pub use diagnostics::AssetError;
pub use diagnostics::Backend;
pub use diagnostics::BuildError;
pub use diagnostics::Capabilities;
pub use diagnostics::CapabilityReport;
pub use diagnostics::CapabilityStatus;
pub use diagnostics::ChangeKind;
pub use diagnostics::DebugOverlay;
pub use diagnostics::DevicePoll;
pub use diagnostics::Diagnostic;
pub use diagnostics::DiagnosticCode;
pub use diagnostics::DiagnosticSeverity;
pub use diagnostics::Error;
pub use diagnostics::GpuAdapterReport;
pub use diagnostics::HardwareTier;
pub use diagnostics::ImportDiagnosticOverlay;
pub use diagnostics::ImportDiagnosticOverlayKind;
pub use diagnostics::ImportError;
pub use diagnostics::InstantiateError;
pub use diagnostics::LookupError;
pub use diagnostics::NotPreparedReason;
pub use diagnostics::OutputStageStatus;
pub use diagnostics::PrepareError;
pub use diagnostics::RenderError;
pub use diagnostics::RenderOutcome;
pub use diagnostics::RendererStats;
pub use geometry::Aabb;
pub use geometry::FramingAngles;
pub use geometry::GeometryDesc;
pub use geometry::GeometryError;
pub use geometry::GeometryMorphTarget;
pub use geometry::GeometrySkin;
pub use geometry::GeometryTopology;
pub use geometry::GeometryVertex;
pub use geometry::Primitive;
pub use geometry::SkinningMatrix;
pub use geometry::StaticBatchReport;
pub use geometry::Vertex;
pub use material::AlphaMode;
pub use material::Color;
pub use material::ColorParseError;
pub use material::DEFAULT_EDGE_ANGLE_THRESHOLD_DEGREES;
pub use material::DEFAULT_STROKE_WIDTH_PX;
pub use material::MaterialDesc;
pub use material::MaterialKind;
pub use material::TextureColorSpace;
pub use material::TextureTransform;
pub use picking::CursorPosition;
pub use picking::Hit;
pub use picking::HitTarget;
pub use picking::InteractionContext;
pub use picking::InteractionStyle;
pub use picking::Viewport;
pub use platform::NativeWindowHandle;
pub use platform::PlatformSurface;
pub use platform::SurfaceEvent;
pub use platform::SurfaceKind;
pub use platform::SurfaceSize;
pub use platform::SurfaceViewport;
pub use render::OffscreenTarget;
pub use render::PixelReadback;
pub use render::Profile;
pub use render::Quality;
pub use render::RenderMode;
pub use render::Renderer;
pub use render::RendererOptions;
pub use render::Tonemapper;
pub use scene::AnchorFrame;
pub use scene::AnchorKey;
pub use scene::Angle;
pub use scene::Camera;
pub use scene::CameraKey;
pub use scene::ClippingPlane;
pub use scene::ClippingPlaneKey;
pub use scene::ClippingPlaneSet;
pub use scene::ConnectOptions;
pub use scene::ConnectionAlignment;
pub use scene::ConnectionError;
pub use scene::ConnectionLineOverlay;
pub use scene::ConnectionParenting;
pub use scene::ConnectionPreview;
pub use scene::ConnectionRequest;
pub use scene::ConnectionRoll;
pub use scene::ConnectionWarning;
pub use scene::ConnectorFrame;
pub use scene::ConnectorKey;
pub use scene::ConnectorMetadata;
pub use scene::ConnectorPolarity;
pub use scene::ConnectorRollPolicy;
pub use scene::DepthRange;
pub use scene::DirectionalLight;
pub use scene::ImportAnchor;
pub use scene::ImportAnchorDebugMetadata;
pub use scene::ImportClip;
pub use scene::ImportConnector;
pub use scene::ImportOptions;
pub use scene::ImportPivot;
pub use scene::Instance;
pub use scene::InstanceCullingPolicy;
pub use scene::InstanceId;
pub use scene::InstanceSet;
pub use scene::InstanceSetKey;
pub use scene::LabelBillboard;
pub use scene::LabelDesc;
pub use scene::LabelKey;
pub use scene::LabelRasterization;
pub use scene::Light;
pub use scene::LightBuilder;
pub use scene::LightKey;
pub use scene::MeshBuilder;
pub use scene::MeshNode;
pub use scene::ModelBuilder;
pub use scene::ModelNode;
pub use scene::Node;
pub use scene::NodeKey;
pub use scene::NodeKind;
pub use scene::OrthographicCamera;
pub use scene::PerspectiveCamera;
pub use scene::PointLight;
pub use scene::Scene;
pub use scene::SceneDirtyState;
pub use scene::SceneImport;
pub use scene::SceneSkinBinding;
pub use scene::SourceCoordinateSystem;
pub use scene::SourceUnits;
pub use scene::SpotLight;
pub use scene::StudioLightingHandles;
pub use scene::Transform;
pub use scene::SceneCameraFrustumInspection;
pub use scene::SceneDrawInspection;
pub use scene::SceneInspectionReport;
pub use scene::SceneMaterialInspection;
pub use scene::SceneNodeInspection;
pub use scene::SceneNormalInspection;
pub use scene::SceneTextureInspection;
pub use viewer::FirstRender;
pub use viewer::HeadlessGltfViewer;
pub use viewer::HeadlessGltfViewerBuilder;
pub use viewer::InteractiveGltfViewer;
pub use viewer::InteractiveGltfViewerBuilder;
pub use viewer::first_render_gltf_headless;
pub use viewer::headless_gltf_viewer;
pub use viewer::interactive_gltf_viewer;

Modules§

animation
glTF animation playback, mixer state, skinning, and morph-target support.
assets
Asset fetchers, caches, glTF/GLB parsing, texture decoding, and asset handles.
controls
Platform-neutral orbit, pan, fly, and focus controls.
diagnostics
Structured errors, debug overlays, capability reports, and renderer stats.
geometry
Primitive meshes, generated helper geometry, technical lines, arrows, grids, and labels.
material
Material descriptors, texture slots, color space, alpha modes, and technical materials.
picking
Ray construction, bounds tests, triangle/BVH tests, and typed hit results.
platform
Optional native/browser platform adapters. Renderer logic must stay outside this module.
render
wgpu device/surface ownership, prepare lifecycle, passes, resource tables, and stats.
scene
Scene graph, typed keys, transforms, bounds, anchors, clipping, and queries.
viewer
High-level viewer helpers built from Scene, Assets, and Renderer.

Structs§

Quat
A quaternion representing an orientation.
Vec3
A 3-dimensional vector.

Type Aliases§

Result
Crate-level result type for APIs that can return any structured scena error.