1#![warn(missing_docs)]
2pub mod error;
66
67pub mod camera;
69pub mod geometry;
71pub mod interaction;
73pub mod renderer;
75pub mod resources;
77pub mod scene;
79pub mod widgets;
81
82pub use geometry::bvh;
87pub use geometry::primitives;
88pub use interaction::annotation;
89pub use interaction::clip_plane;
90pub use interaction::gizmo;
91pub use interaction::input;
92pub use interaction::manipulation;
93pub use interaction::picking;
94pub use interaction::selection;
95pub use interaction::snap;
96pub use scene::aabb;
97pub use scene::material;
98pub use scene::traits;
99pub use widgets::axes_indicator;
100
101pub use error::{ViewportError, ViewportResult};
106
107pub use camera::animator::{CameraAnimator, CameraDamping, Easing};
108pub use camera::camera::{Camera, CameraTarget, Projection};
109pub use camera::frustum::{CullStats, Frustum};
110pub use camera::view_preset::ViewPreset;
111
112pub use scene::aabb::Aabb;
113pub use scene::material::Material;
114pub use scene::scene::{Group, GroupId, Layer, LayerId, Scene, SceneNode};
115pub use scene::traits::{RenderMode, ViewportObject};
116
117pub use geometry::bvh::PickAccelerator;
118pub use geometry::isoline::{IsolineItem, extract_isolines};
119pub use geometry::marching_cubes::{VolumeData, extract_isosurface};
120
121pub use interaction::annotation::AnnotationLabel;
122#[cfg(feature = "egui")]
123pub use interaction::annotation::draw_annotation_labels;
124pub use interaction::annotation::{world_to_screen, world_to_screen_from_frame};
125pub use interaction::gizmo::{
126 Gizmo, GizmoAxis, GizmoMode, GizmoSpace, PivotMode, gizmo_center_for_pivot,
127};
128pub use interaction::input::{
129 Action, ActionState, Binding, FrameInput, InputMode, InputSystem, KeyCode, Modifiers,
130 MouseButton,
131};
132pub use interaction::input::{
134 ActionFrame, BindingPreset, ButtonState, ModifiersMatch, NavigationActions,
135 OrbitCameraController, ResolvedActionState, ScrollUnits, ViewportBinding, ViewportContext,
136 ViewportEvent, ViewportGesture, ViewportInput, viewport_all_bindings,
137};
138pub use interaction::manipulation::solvers::{
139 angular_rotation_from_cursor, constrained_scale, constrained_translation,
140};
141pub use interaction::manipulation::{
142 GizmoInfo, ManipResult, ManipulationContext, ManipulationController, ManipulationKind,
143 ManipulationState, TransformDelta,
144};
145
146pub use interaction::clip_plane::{
147 ClipAxis, ClipPlaneContext, ClipPlaneController, ClipPlaneDelta, ClipPlaneHit,
148 ClipPlaneOverlay, ClipPlaneResult, ClipPlaneSessionKind, hit_test_normal_handle,
149 hit_test_plane_quad, plane_from_axis_preset, project_drag_onto_normal, ray_plane_intersection,
150 snap_plane_distance,
151};
152pub use interaction::picking::{
153 GpuPickHit, PickHit, ProbeBinding, RectPickResult, pick_rect,
154 pick_scene_accelerated_with_probe, pick_scene_nodes_with_probe, pick_scene_with_probe,
155};
156pub use interaction::selection::{NodeId, Selection};
157pub use interaction::snap::{ConstraintOverlay, SnapConfig};
158pub use interaction::sub_object;
159pub use interaction::sub_object::{SubObjectRef, SubSelection};
160
161pub use widgets::axes_indicator::AxisView;
162
163pub use renderer::shader_hashes::ShaderValidation;
164pub use renderer::stats::FrameStats;
165pub use renderer::{
166 CameraFrame, ClipPlane, ClipVolume, ComputeFilterItem, ComputeFilterKind, EffectsFrame,
167 EnvironmentMap, FilterMode, FrameData, GlyphItem, GlyphType, InteractionFrame, LightKind,
168 LightSource, LightingSettings, PointCloudItem, PointRenderMode, PolylineItem,
169 PostProcessSettings, RenderCamera, SceneEffects, SceneFrame, SceneRenderItem, ShadowFilter,
170 StreamtubeItem, SurfaceSubmission, ToneMapping, ViewportEffects, ViewportFrame, ViewportId,
171 ViewportRenderer, VolumeItem,
172};
173pub use renderer::{ScalarBar, ScalarBarAnchor, ScalarBarOrientation};
174
175pub use resources::colormap_data::{
176 export_paraview_xml_colormap, lerp_colormap_lut, parse_paraview_xml_colormap,
177};
178pub use resources::mesh_store::MeshId;
179pub use resources::{
180 AttributeData, AttributeKind, AttributeRef, BuiltinColormap, BuiltinMatcap, CameraUniform,
181 ClipVolumeUniform, ColormapId, ComputeFilterResult, LightUniform, LightsUniform, MatcapId,
182 MeshData, SingleLightUniform, ViewportGpuResources, VolumeId, lerp_attributes,
183};