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::clip_plane;
91pub use interaction::gizmo;
92pub use interaction::input;
93pub use interaction::manipulation;
94pub use interaction::picking;
95pub use interaction::selection;
96pub use interaction::snap;
97pub use scene::aabb;
98pub use scene::material;
99pub use scene::traits;
100pub use widgets::axes_indicator;
101
102pub use error::{ViewportError, ViewportResult};
107
108pub use camera::animator::{CameraAnimator, CameraDamping, Easing};
109pub use camera::camera::{Camera, CameraTarget, Projection};
110pub use camera::frustum::{CullStats, Frustum};
111pub use camera::track::{CameraTrack, interpolate_camera};
112pub use camera::turntable::TurntableController;
113pub use camera::view_preset::ViewPreset;
114
115pub use scene::aabb::Aabb;
116pub use scene::material::{BackfacePattern, BackfacePolicy, Material, ParamVis, ParamVisMode, PatternConfig};
117pub use scene::scene::{Group, GroupId, Layer, LayerId, Scene, SceneNode};
118pub use scene::traits::{RenderMode, ViewportObject};
119
120pub use geometry::bvh::PickAccelerator;
121pub use geometry::implicit::{ImplicitRenderOptions, march_implicit_surface, march_implicit_surface_color};
122pub use geometry::isoline::{IsolineItem, extract_isolines};
123pub use geometry::marching_cubes::{VolumeData, extract_isosurface};
124
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, NavigationMode,
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::widgets::{
147 BoxWidget, CylinderWidget, DiskWidget, LineProbeWidget, PlaneWidget, PolylineWidget,
148 SphereWidget, SplineWidget, WidgetContext, WidgetResult,
149};
150
151pub use interaction::clip_plane::{
152 ClipAxis, ClipPlaneContext, ClipPlaneController, ClipPlaneDelta, ClipPlaneHit, ClipPlaneResult,
153 ClipPlaneSessionKind, hit_test_normal_handle, hit_test_plane_quad, plane_from_axis_preset,
154 project_drag_onto_normal, ray_plane_intersection, snap_plane_distance,
155};
156pub use interaction::picking::{
157 GpuPickHit, PickHit, ProbeBinding, RectPickResult, pick_rect,
158 pick_scene_accelerated_with_probe_cpu, pick_scene_nodes_with_probe_cpu, pick_scene_with_probe_cpu,
159 pick_volume_cpu, voxel_world_aabb,
160};
161pub use interaction::selection::{NodeId, Selection};
162pub use interaction::snap::{ConstraintOverlay, SnapConfig};
163pub use interaction::sub_object;
164pub use interaction::sub_object::{SubObjectRef, SubSelection, SubSelectionRef, VolumeSelectionInfo};
165
166pub use widgets::axes_indicator::AxisView;
167
168pub use renderer::shader_hashes::ShaderValidation;
169pub use renderer::stats::{FrameStats, PerformancePolicy, QualityPreset, RuntimeMode};
170pub use renderer::{
171 CameraFrame, CameraFrustumItem, ClipObject, ClipShape, ComputeFilterItem, ComputeFilterKind,
172 EffectsFrame, EnvironmentMap, FilterMode, FrameData, GlyphItem, GlyphType, GroundPlane,
173 TensorGlyphItem,
174 GroundPlaneMode, ImageAnchor, InteractionFrame, LabelAnchor, LabelItem, LightKind, LightSource,
175 LightingSettings, LoadingBarAnchor, LoadingBarItem, OverlayFrame, OverlayImageItem, PickId,
176 PointCloudItem, PointRenderMode,
177 aabb_wireframe_polyline, PolylineItem, PostProcessSettings, RenderCamera, RulerItem, ScalarBarAnchor, ScalarBarItem,
178 ScalarBarOrientation, SceneEffects,
179 RibbonItem, SceneFrame, SceneRenderItem, ScreenImageItem,
180 ImageSliceItem, SliceAxis, ShadowFilter, StreamtubeItem, SurfaceLICConfig, SurfaceLICItem,
181 SurfaceSubmission, ToneMapping, TubeItem,
182 TransparentVolumeMeshItem,
183 ViewportEffects, ViewportFrame, ViewportId, ViewportRenderer, VolumeItem,
184};
185
186pub use quantities::{
187 edge_one_form_to_glyphs, face_intrinsic_to_glyphs,
188 polyline_edge_vectors_to_glyphs, polyline_node_vectors_to_glyphs,
189 vertex_intrinsic_to_glyphs,
190 volume_mesh_cell_vectors_to_glyphs, volume_mesh_vertex_vectors_to_glyphs,
191};
192
193pub use resources::colormap_data::{
194 export_paraview_xml_colormap, lerp_colormap_lut, parse_paraview_xml_colormap,
195};
196pub use resources::mesh_store::MeshId;
197pub use resources::sparse_volume::SparseVolumeGridData;
198#[allow(deprecated)]
199pub use resources::volume_mesh::{CELL_SENTINEL, TET_SENTINEL, VolumeMeshData, extract_clipped_volume_faces};
200pub use resources::{
201 AttributeData, AttributeKind, AttributeRef, BuiltinColormap, BuiltinMatcap, CameraUniform,
202 ClipVolumeUniform, ColormapId, ComputeFilterResult, FontError, FontHandle, GpuImplicitItem,
203 GpuImplicitOptions, GpuMarchingCubesJob, ImplicitBlendMode, ImplicitPrimitive, LightUniform,
204 LightsUniform, MatcapId, MeshData, ProjectedTetId, SingleLightUniform, ViewportGpuResources,
205 VolumeGpuId, VolumeId, lerp_attributes,
206};