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::{BackfacePattern, 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::implicit::{ImplicitRenderOptions, march_implicit_surface, march_implicit_surface_color};
121pub use geometry::isoline::{IsolineItem, extract_isolines};
122pub use geometry::marching_cubes::{VolumeData, extract_isosurface};
123
124pub use interaction::annotation::AnnotationLabel;
125#[cfg(feature = "egui")]
126pub use interaction::annotation::draw_annotation_labels;
127pub use interaction::annotation::{world_to_screen, world_to_screen_from_frame};
128pub use interaction::gizmo::{
129 Gizmo, GizmoAxis, GizmoMode, GizmoSpace, PivotMode, gizmo_center_for_pivot,
130};
131pub use interaction::input::{
132 Action, ActionState, Binding, FrameInput, InputMode, InputSystem, KeyCode, Modifiers,
133 MouseButton, NavigationMode,
134};
135pub use interaction::input::{
137 ActionFrame, BindingPreset, ButtonState, ModifiersMatch, NavigationActions,
138 OrbitCameraController, ResolvedActionState, ScrollUnits, ViewportBinding, ViewportContext,
139 ViewportEvent, ViewportGesture, ViewportInput, viewport_all_bindings,
140};
141pub use interaction::manipulation::solvers::{
142 angular_rotation_from_cursor, constrained_scale, constrained_translation,
143};
144pub use interaction::manipulation::{
145 GizmoInfo, ManipResult, ManipulationContext, ManipulationController, ManipulationKind,
146 ManipulationState, TransformDelta,
147};
148
149pub use interaction::clip_plane::{
150 ClipAxis, ClipPlaneContext, ClipPlaneController, ClipPlaneDelta, ClipPlaneHit, ClipPlaneResult,
151 ClipPlaneSessionKind, hit_test_normal_handle, hit_test_plane_quad, plane_from_axis_preset,
152 project_drag_onto_normal, ray_plane_intersection, 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 PickId, PointCloudItem, PointRenderMode, PolylineItem, PostProcessSettings, RenderCamera,
172 SceneEffects, SceneFrame, SceneRenderItem, ScreenImageItem, ShadowFilter, StreamtubeItem,
173 SurfaceSubmission, ToneMapping, ViewportEffects, ViewportFrame, ViewportId, ViewportRenderer,
174 VolumeItem,
175};
176pub use renderer::{ScalarBar, ScalarBarAnchor, ScalarBarOrientation};
177
178pub use quantities::{
179 edge_one_form_to_glyphs, face_intrinsic_to_glyphs,
180 polyline_edge_vectors_to_glyphs, polyline_node_vectors_to_glyphs,
181 vertex_intrinsic_to_glyphs,
182};
183
184pub use resources::colormap_data::{
185 export_paraview_xml_colormap, lerp_colormap_lut, parse_paraview_xml_colormap,
186};
187pub use resources::mesh_store::MeshId;
188pub use resources::volume_mesh::{TET_SENTINEL, VolumeMeshData};
189pub use resources::{
190 AttributeData, AttributeKind, AttributeRef, BuiltinColormap, BuiltinMatcap, CameraUniform,
191 ClipVolumeUniform, ColormapId, ComputeFilterResult, LightUniform, LightsUniform, MatcapId,
192 MeshData, SingleLightUniform, ViewportGpuResources, VolumeId, lerp_attributes,
193};