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::widgets::{BoxWidget, LineProbeWidget, SphereWidget, WidgetContext, WidgetResult};
145
146pub use interaction::clip_plane::{
147 ClipAxis, ClipPlaneContext, ClipPlaneController, ClipPlaneDelta, ClipPlaneHit, ClipPlaneResult,
148 ClipPlaneSessionKind, hit_test_normal_handle, hit_test_plane_quad, plane_from_axis_preset,
149 project_drag_onto_normal, ray_plane_intersection, snap_plane_distance,
150};
151pub use interaction::picking::{
152 GpuPickHit, PickHit, ProbeBinding, RectPickResult, pick_rect,
153 pick_scene_accelerated_with_probe_cpu, pick_scene_nodes_with_probe_cpu, pick_scene_with_probe_cpu,
154 pick_volume_cpu, voxel_world_aabb,
155};
156pub use interaction::selection::{NodeId, Selection};
157pub use interaction::snap::{ConstraintOverlay, SnapConfig};
158pub use interaction::sub_object;
159pub use interaction::sub_object::{SubObjectRef, SubSelection, SubSelectionRef, VolumeSelectionInfo};
160
161pub use widgets::axes_indicator::AxisView;
162
163pub use renderer::shader_hashes::ShaderValidation;
164pub use renderer::stats::{FrameStats, PerformancePolicy, QualityPreset, RuntimeMode};
165pub use renderer::{
166 CameraFrame, CameraFrustumItem, ClipObject, ClipShape, ComputeFilterItem, ComputeFilterKind,
167 EffectsFrame, EnvironmentMap, FilterMode, FrameData, GlyphItem, GlyphType, GroundPlane,
168 GroundPlaneMode, ImageAnchor, InteractionFrame, LabelAnchor, LabelItem, LightKind, LightSource,
169 LightingSettings, LoadingBarAnchor, LoadingBarItem, OverlayFrame, OverlayImageItem, PickId,
170 PointCloudItem, PointRenderMode,
171 aabb_wireframe_polyline, PolylineItem, PostProcessSettings, RenderCamera, RulerItem, ScalarBarAnchor, ScalarBarItem,
172 ScalarBarOrientation, SceneEffects,
173 SceneFrame, SceneRenderItem, ScreenImageItem,
174 ShadowFilter, StreamtubeItem, SurfaceLICConfig, SurfaceLICItem, SurfaceSubmission, ToneMapping,
175 TransparentVolumeMeshItem,
176 ViewportEffects, ViewportFrame, ViewportId, ViewportRenderer, VolumeItem,
177};
178
179pub use quantities::{
180 edge_one_form_to_glyphs, face_intrinsic_to_glyphs,
181 polyline_edge_vectors_to_glyphs, polyline_node_vectors_to_glyphs,
182 vertex_intrinsic_to_glyphs,
183 volume_mesh_cell_vectors_to_glyphs, volume_mesh_vertex_vectors_to_glyphs,
184};
185
186pub use resources::colormap_data::{
187 export_paraview_xml_colormap, lerp_colormap_lut, parse_paraview_xml_colormap,
188};
189pub use resources::mesh_store::MeshId;
190pub use resources::sparse_volume::SparseVolumeGridData;
191#[allow(deprecated)]
192pub use resources::volume_mesh::{CELL_SENTINEL, TET_SENTINEL, VolumeMeshData, extract_clipped_volume_faces};
193pub use resources::{
194 AttributeData, AttributeKind, AttributeRef, BuiltinColormap, BuiltinMatcap, CameraUniform,
195 ClipVolumeUniform, ColormapId, ComputeFilterResult, FontError, FontHandle, GpuImplicitItem,
196 GpuImplicitOptions, GpuMarchingCubesJob, ImplicitBlendMode, ImplicitPrimitive, LightUniform,
197 LightsUniform, MatcapId, MeshData, ProjectedTetId, SingleLightUniform, ViewportGpuResources,
198 VolumeGpuId, VolumeId, lerp_attributes,
199};