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