1#![warn(missing_docs)]
2pub mod error;
66
67pub mod camera;
69pub mod geometry;
71pub mod interaction;
73pub mod quantities;
75pub mod renderer;
77pub mod resources;
79pub mod scene;
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, ClipPlaneResult,
150 ClipPlaneSessionKind, hit_test_normal_handle, hit_test_plane_quad, plane_from_axis_preset,
151 project_drag_onto_normal, ray_plane_intersection, snap_plane_distance,
152};
153pub use interaction::picking::{
154 GpuPickHit, PickHit, ProbeBinding, RectPickResult, pick_rect,
155 pick_scene_accelerated_with_probe, pick_scene_nodes_with_probe, pick_scene_with_probe,
156};
157pub use interaction::selection::{NodeId, Selection};
158pub use interaction::snap::{ConstraintOverlay, SnapConfig};
159pub use interaction::sub_object;
160pub use interaction::sub_object::{SubObjectRef, SubSelection};
161
162pub use widgets::axes_indicator::AxisView;
163
164pub use renderer::shader_hashes::ShaderValidation;
165pub use renderer::stats::FrameStats;
166pub use renderer::{
167 CameraFrame, CameraFrustumItem, ClipObject, ClipShape, ComputeFilterItem, ComputeFilterKind,
168 EffectsFrame, EnvironmentMap, FilterMode, FrameData, GlyphItem, GlyphType, GroundPlane,
169 GroundPlaneMode, ImageAnchor, InteractionFrame, LightKind, LightSource, LightingSettings,
170 PointCloudItem, PointRenderMode, PolylineItem, PostProcessSettings, RenderCamera, SceneEffects,
171 SceneFrame, SceneRenderItem, ScreenImageItem, ShadowFilter, StreamtubeItem, SurfaceSubmission,
172 ToneMapping, ViewportEffects, ViewportFrame, ViewportId, ViewportRenderer, VolumeItem,
173};
174pub use renderer::{ScalarBar, ScalarBarAnchor, ScalarBarOrientation};
175
176pub use quantities::{
177 edge_one_form_to_glyphs, face_intrinsic_to_glyphs, vertex_intrinsic_to_glyphs,
178};
179
180pub use resources::colormap_data::{
181 export_paraview_xml_colormap, lerp_colormap_lut, parse_paraview_xml_colormap,
182};
183pub use resources::mesh_store::MeshId;
184pub use resources::volume_mesh::{TET_SENTINEL, VolumeMeshData};
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};