1#![warn(missing_docs)]
2pub mod error;
19
20pub mod camera;
22pub mod geometry;
24pub mod interaction;
26pub mod renderer;
28pub mod resources;
30pub mod scene;
32pub mod widgets;
34
35pub use geometry::bvh;
40pub use geometry::primitives;
41pub use interaction::annotation;
42pub use interaction::gizmo;
43pub use interaction::input;
44pub use interaction::picking;
45pub use interaction::selection;
46pub use interaction::snap;
47pub use scene::aabb;
48pub use scene::material;
49pub use scene::traits;
50pub use widgets::axes_indicator;
51
52pub use error::{ViewportError, ViewportResult};
57
58pub use camera::animator::{CameraAnimator, CameraDamping, Easing};
59pub use camera::camera::{Camera, CameraTarget, Projection};
60pub use camera::frustum::{CullStats, Frustum};
61pub use camera::view_preset::ViewPreset;
62
63pub use scene::aabb::Aabb;
64pub use scene::material::Material;
65pub use scene::scene::{Group, GroupId, Layer, LayerId, Scene, SceneNode};
66pub use scene::traits::{RenderMode, ViewportObject};
67
68pub use geometry::bvh::PickAccelerator;
69pub use geometry::isoline::{IsolineItem, extract_isolines};
70pub use geometry::marching_cubes::{VolumeData, extract_isosurface};
71
72pub use interaction::annotation::AnnotationLabel;
73#[cfg(feature = "egui")]
74pub use interaction::annotation::draw_annotation_labels;
75pub use interaction::annotation::{world_to_screen, world_to_screen_from_frame};
76pub use interaction::gizmo::{
77 Gizmo, GizmoAxis, GizmoMode, GizmoSpace, PivotMode, gizmo_center_for_pivot,
78};
79pub use interaction::input::{
80 Action, ActionState, Binding, FrameInput, InputMode, InputSystem, KeyCode, Modifiers,
81 MouseButton,
82};
83pub use interaction::picking::{
84 GpuPickHit, PickHit, ProbeBinding, RectPickResult, pick_rect,
85 pick_scene_accelerated_with_probe, pick_scene_nodes_with_probe, pick_scene_with_probe,
86};
87pub use interaction::selection::{NodeId, Selection};
88pub use interaction::snap::{ConstraintOverlay, SnapConfig};
89
90pub use widgets::axes_indicator::AxisView;
91
92pub use renderer::shader_hashes::ShaderValidation;
93pub use renderer::stats::FrameStats;
94pub use renderer::{
95 CameraFrame, ClipPlane, ClipVolume, ComputeFilterItem, ComputeFilterKind, EffectsFrame,
96 FilterMode, FrameData, GlyphItem, GlyphType, InteractionFrame, LightKind, LightSource,
97 LightingSettings, PointCloudItem, PointRenderMode, PolylineItem, PostProcessSettings,
98 RenderCamera, SceneFrame, SceneRenderItem, ShadowFilter, StreamtubeItem, SurfaceSubmission,
99 ToneMapping, ViewportFrame, ViewportRenderer, VolumeItem,
100};
101pub use renderer::{ScalarBar, ScalarBarAnchor, ScalarBarOrientation};
102
103pub use resources::colormap_data::{
104 export_paraview_xml_colormap, lerp_colormap_lut, parse_paraview_xml_colormap,
105};
106pub use resources::mesh_store::MeshId;
107pub use resources::{
108 AttributeData, AttributeKind, AttributeRef, BuiltinColormap, CameraUniform, ClipVolumeUniform,
109 ColormapId, ComputeFilterResult, LightUniform, LightsUniform, MeshData, SingleLightUniform,
110 ViewportGpuResources, VolumeId, lerp_attributes,
111};