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::view_preset::ViewPreset;
112
113pub use scene::aabb::Aabb;
114pub use scene::material::{BackfacePattern, BackfacePolicy, Material, ParamVis, ParamVisMode, PatternConfig};
115pub use scene::scene::{Group, GroupId, Layer, LayerId, Scene, SceneNode};
116pub use scene::traits::{RenderMode, ViewportObject};
117
118pub use geometry::bvh::PickAccelerator;
119pub use geometry::implicit::{ImplicitRenderOptions, march_implicit_surface, march_implicit_surface_color};
120pub use geometry::isoline::{IsolineItem, extract_isolines};
121pub use geometry::marching_cubes::{VolumeData, extract_isosurface};
122
123pub use interaction::gizmo::{
124 Gizmo, GizmoAxis, GizmoMode, GizmoSpace, PivotMode, gizmo_center_for_pivot,
125};
126pub use interaction::input::{
127 Action, ActionState, Binding, FrameInput, InputMode, InputSystem, KeyCode, Modifiers,
128 MouseButton, NavigationMode,
129};
130pub use interaction::input::{
132 ActionFrame, BindingPreset, ButtonState, ModifiersMatch, NavigationActions,
133 OrbitCameraController, ResolvedActionState, ScrollUnits, ViewportBinding, ViewportContext,
134 ViewportEvent, ViewportGesture, ViewportInput, viewport_all_bindings,
135};
136pub use interaction::manipulation::solvers::{
137 angular_rotation_from_cursor, constrained_scale, constrained_translation,
138};
139pub use interaction::manipulation::{
140 GizmoInfo, ManipResult, ManipulationContext, ManipulationController, ManipulationKind,
141 ManipulationState, TransformDelta,
142};
143
144pub use interaction::clip_plane::{
145 ClipAxis, ClipPlaneContext, ClipPlaneController, ClipPlaneDelta, ClipPlaneHit, ClipPlaneResult,
146 ClipPlaneSessionKind, hit_test_normal_handle, hit_test_plane_quad, plane_from_axis_preset,
147 project_drag_onto_normal, ray_plane_intersection, snap_plane_distance,
148};
149pub use interaction::picking::{
150 GpuPickHit, PickHit, ProbeBinding, RectPickResult, pick_rect,
151 pick_scene_accelerated_with_probe_cpu, pick_scene_nodes_with_probe_cpu, pick_scene_with_probe_cpu,
152 pick_volume_cpu, voxel_world_aabb,
153};
154pub use interaction::selection::{NodeId, Selection};
155pub use interaction::snap::{ConstraintOverlay, SnapConfig};
156pub use interaction::sub_object;
157pub use interaction::sub_object::{SubObjectRef, SubSelection, SubSelectionRef, VolumeSelectionInfo};
158
159pub use widgets::axes_indicator::AxisView;
160
161pub use renderer::shader_hashes::ShaderValidation;
162pub use renderer::stats::{FrameStats, PerformancePolicy, RuntimeMode};
163pub use renderer::{
164 CameraFrame, CameraFrustumItem, ClipObject, ClipShape, ComputeFilterItem, ComputeFilterKind,
165 EffectsFrame, EnvironmentMap, FilterMode, FrameData, GlyphItem, GlyphType, GroundPlane,
166 GroundPlaneMode, ImageAnchor, InteractionFrame, LabelAnchor, LabelItem, LightKind, LightSource,
167 LightingSettings, LoadingBarAnchor, LoadingBarItem, OverlayFrame, OverlayImageItem, PickId,
168 PointCloudItem, PointRenderMode,
169 PolylineItem, PostProcessSettings, RenderCamera, RulerItem, ScalarBarAnchor, ScalarBarItem,
170 ScalarBarOrientation, SceneEffects,
171 SceneFrame, SceneRenderItem, ScreenImageItem,
172 ShadowFilter, StreamtubeItem, SurfaceSubmission, ToneMapping, ViewportEffects, ViewportFrame,
173 ViewportId, ViewportRenderer, VolumeItem,
174};
175
176pub use quantities::{
177 edge_one_form_to_glyphs, face_intrinsic_to_glyphs,
178 polyline_edge_vectors_to_glyphs, polyline_node_vectors_to_glyphs,
179 vertex_intrinsic_to_glyphs,
180 volume_mesh_cell_vectors_to_glyphs, volume_mesh_vertex_vectors_to_glyphs,
181};
182
183pub use resources::colormap_data::{
184 export_paraview_xml_colormap, lerp_colormap_lut, parse_paraview_xml_colormap,
185};
186pub use resources::mesh_store::MeshId;
187pub use resources::sparse_volume::SparseVolumeGridData;
188#[allow(deprecated)]
189pub use resources::volume_mesh::{CELL_SENTINEL, TET_SENTINEL, VolumeMeshData};
190pub use resources::{
191 AttributeData, AttributeKind, AttributeRef, BuiltinColormap, BuiltinMatcap, CameraUniform,
192 ClipVolumeUniform, ColormapId, ComputeFilterResult, FontError, FontHandle, GpuImplicitItem,
193 GpuImplicitOptions, GpuMarchingCubesJob, ImplicitBlendMode, ImplicitPrimitive, LightUniform,
194 LightsUniform, MatcapId, MeshData, SingleLightUniform, ViewportGpuResources, VolumeGpuId,
195 VolumeId, lerp_attributes,
196};