1#![warn(missing_docs)]
2pub mod error;
74
75pub mod camera;
77pub mod geometry;
79pub mod interaction;
81pub mod plugin_api;
84pub mod quantities;
86pub mod renderer;
88pub mod resources;
90pub mod plugins;
92pub mod runtime;
94pub mod scene;
96pub mod widgets;
98
99pub use geometry::bvh;
104pub use geometry::primitives;
105pub use interaction::clip_plane;
106pub use interaction::gizmo;
107pub use interaction::input;
108pub use interaction::manipulation;
109pub use interaction::picking;
110pub use interaction::selection;
111pub use interaction::snap;
112pub use scene::aabb;
113pub use scene::material;
114pub use scene::scatter_volume;
115pub use scene::scatter_volume::{
116 ColourSource, DensityRemap, Emission, EmissionCurve, NoiseDriver, RefractionParams,
117 ScatterShape, ScatterVolume,
118};
119pub use scene::traits;
120pub use widgets::axes_indicator;
121
122pub use error::{ViewportError, ViewportResult};
127
128pub use camera::animator::{CameraAnimator, CameraDamping, Easing};
129pub use camera::camera::{Camera, CameraTarget, Projection};
130pub use camera::frustum::{CullStats, Frustum};
131pub use camera::track::{CameraTrack, interpolate_camera};
132pub use camera::turntable::TurntableController;
133pub use camera::view_preset::ViewPreset;
134
135pub use scene::aabb::Aabb;
136pub use scene::material::{
137 BackfacePattern, BackfacePolicy, ItemSettings, Material, ParamVis, ParamVisMode, PatternConfig,
138 ShadingModel,
139};
140pub use scene::scene::{
141 DecalHandle, Group, GroupId, Layer, LayerId, LiveDecal, Scene, SceneNode, SceneStats,
142};
143pub use scene::traits::{RenderMode, ViewportObject};
144
145pub use geometry::bvh::PickAccelerator;
146pub use geometry::implicit::{
147 ImplicitRenderOptions, march_implicit_surface, march_implicit_surface_colour,
148};
149pub use geometry::isoline::{IsolineItem, extract_isolines};
150pub use geometry::marching_cubes::{VolumeData, extract_isosurface};
151
152pub use interaction::gizmo::{
153 Gizmo, GizmoAxis, GizmoMode, GizmoSpace, PivotMode, gizmo_center_for_pivot,
154};
155pub use interaction::input::{
156 Action, ActionState, Binding, FrameInput, InputMode, InputSystem, KeyCode, Modifiers,
157 MouseButton, NavigationMode,
158};
159pub use interaction::input::{
161 ActionFrame, BindingPreset, ButtonState, ModifiersMatch, NavigationActions,
162 OrbitCameraController, ResolvedActionState, ScrollUnits, ViewportBinding, ViewportContext,
163 ViewportEvent, ViewportGesture, ViewportInput, viewport_all_bindings,
164};
165pub use interaction::manipulation::solvers::{
166 angular_rotation_from_cursor, constrained_scale, constrained_translation,
167};
168pub use interaction::manipulation::{
169 GizmoInfo, ManipResult, ManipulationContext, ManipulationController, ManipulationKind,
170 ManipulationState, TransformDelta,
171};
172
173pub use interaction::widgets::{
174 BoxWidget, CylinderWidget, DiskWidget, LineProbeWidget, PlaneWidget, PolylineWidget,
175 SphereWidget, SplineWidget, WidgetContext, WidgetResult,
176};
177
178pub use interaction::clip_plane::{
179 ClipAxis, ClipPlaneContext, ClipPlaneController, ClipPlaneDelta, ClipPlaneHit, ClipPlaneResult,
180 ClipPlaneSessionKind, hit_test_normal_handle, hit_test_plane_quad, plane_from_axis_preset,
181 project_drag_onto_normal, ray_plane_intersection, snap_plane_distance,
182};
183pub use interaction::pick_mask::PickMask;
184pub use interaction::picking::{
185 GpuPickHit, PickHit, ProbeBinding, RectPickResult, nearest_vertex_on_hit,
186 pick_gaussian_splat_cpu, pick_gaussian_splat_rect, pick_point_cloud_cpu, pick_rect,
187 pick_scene_accelerated_with_probe_cpu, pick_scene_nodes_with_probe_cpu,
188 pick_scene_with_probe_cpu, pick_transparent_volume_mesh_cpu, pick_transparent_volume_mesh_rect,
189 pick_volume_cpu, pick_volume_rect, voxel_world_aabb,
190};
191pub use interaction::selection::{NodeId, Selection};
192pub use interaction::snap::{ConstraintOverlay, SnapConfig};
193pub use interaction::sub_object;
194pub use interaction::sub_object::{
195 CellSelectionInfo, PolylineSelectionInfo, SubObjectRef, SubSelection, SubSelectionRef,
196 VolumeSelectionInfo,
197};
198
199pub use widgets::axes_indicator::AxisView;
200
201pub use renderer::ShadowDebugStats;
202pub use renderer::shader_hashes::ShaderValidation;
203pub use renderer::stats::{FrameStats, PerformancePolicy, QualityPreset, RuntimeMode};
204pub use renderer::{
205 AnimTrack, AtlasViewerCorner, BorderMode, CameraFrame, ClipObject, ClipShape,
206 ComputeFilterItem, ComputeFilterKind, CylindricalFacing, DebugOutputMode, DebugQuantity,
207 DebugVis, DecalAnimation, DecalBlendMode, DecalItem, DecalProjection, EffectsFrame,
208 EmitterConfig, EnvironmentMap, FilterMode, ForceField, FrameData, GaussianSplatData,
209 GaussianSplatId, GaussianSplatItem, GlyphItem, GlyphSetRefItem, GlyphType,
210 GpuParticleSystemItem, GradientStop, GroundPlane, GroundPlaneMode, ImageAnchor, ImageSliceItem,
211 InteractionFrame, LabelAnchor, LabelItem, LerpAnim, LicOverlay, LightKind, LightSource,
212 LightingSettings, LineCap, LineJoin, LoadingBarAnchor, LoadingBarItem, MeshInstanceItem,
213 NineSlice, OVERLAY_MAX_GRADIENT_STOPS, OverlayAnimation, OverlayAnimations, OverlayEasing, ParticleMeshAlign,
214 OverlayFill, OverlayFrame, OverlayImageItem, OverlayPolylineItem, OverlayRectItem,
215 OverlayShape, OverlayShapeItem, OverlayTextureId, OwnedPath, PassPath, PassView, PathTrack,
216 PickId, PickRectResult, PointCloudItem, PointCloudRefItem, PointRenderMode, PolylineItem,
217 PolylineRefItem, PostProcessSettings, RenderCamera, RepeatMode, RibbonItem, RibbonRefItem,
218 RulerItem, ScalarBarAnchor, ScalarBarItem, ScalarBarOrientation, ScatterQuality,
219 ScatterSettings, ScatterVolumeItem, SceneEffects, SceneFrame, SceneRenderItem, ScreenImageItem,
220 ShDegree, ShadowFilter, SliceAxis, SpawnShape, SpriteBlend, SpriteInstanceSetRefItem,
221 SpriteItem, SpriteOrientation, SpriteSetRefItem, SpriteSizeMode, StreamtubeItem,
222 StreamtubeRefItem, SurfaceLICConfig, SurfaceSubmission, TensorGlyphItem, TensorGlyphSetRefItem,
223 TextureTransform, TileMode, ToneMapping, TriangleDirection, TubeItem, TubeRefItem,
224 VelocityDist, ViewportEffects, ViewportFrame, ViewportId, ViewportRenderer, VolumeItem,
225 VolumeMeshItem, VolumeSurfaceSliceItem, VolumeTransparency, aabb_wireframe_polyline,
226 sphere_wireframe_polyline,
227};
228
229pub use quantities::{
230 edge_one_form_to_glyphs, face_intrinsic_to_glyphs, polyline_edge_vectors_to_glyphs,
231 polyline_node_vectors_to_glyphs, vertex_intrinsic_to_glyphs,
232 volume_mesh_cell_vectors_to_glyphs, volume_mesh_vertex_vectors_to_glyphs,
233};
234
235pub use resources::colourmap_data::{
236 export_paraview_xml_colourmap, lerp_colourmap_lut, parse_paraview_xml_colourmap,
237};
238pub use resources::{
239 DEFORM_PARAMS_PER_SLOT_PUB as DEFORM_PARAMS_PER_SLOT,
240 DEFORM_SLOT_COUNT_PUB as DEFORM_SLOT_COUNT, DEFORM_SLOT_PARAMS_BYTES, DeformSlotHandle,
241 DeformStage, DeformerDesc, DeformerId, deform_slot_params_byte_offset,
242};
243pub use resources::mesh_store::MeshId;
244pub use resources::sparse_volume::SparseVolumeGridData;
245pub use resources::volume_mesh::{CELL_SENTINEL, VolumeMeshData, extract_clipped_volume_faces};
246pub use resources::{
247 AttributeData, AttributeKind, AttributeRef, BuiltinColourmap, BuiltinMatcap, CLIP_VOLUME_MAX,
248 CameraUniform, ClipVolumeEntry, ClipVolumesUniform, ColourmapId, ComputeFilterResult,
249 FontError, FontHandle, GpuImplicitItem, GpuImplicitOptions, GpuMarchingCubesJob,
250 ImplicitBlendMode, ImplicitPrimitive, JobId, LightUniform, LightsUniform, MatcapId, MeshData,
251 ProgressHandle, SingleLightUniform, TextureMemoryStats,
252 UploadStatus, ViewportGpuResources, VolumeGpuId, VolumeId, lerp_attributes,
253};
254pub use resources::{
255 GlyphSetId, GpuParticleSystemConfig, GpuParticleSystemId, ParticleRender, PointCloudId,
256 PolylineId, RibbonId, SpriteInstanceSetId, SpriteSetId, StreamtubeId, TensorGlyphSetId, TubeId,
257};
258
259pub use runtime::{
260 CameraFollow, DebugDraw, DebugLayer, DebugPrim, FixedStepIter, FixedTimestep,
261 ManipulationSystem, NodeTransformOp, RuntimeFrameContext, RuntimeOutput, RuntimePhase,
262 RuntimePlugin, RuntimeStepContext, SceneRuntimeMode, SelectionOp, SelectionSystem,
263 SimulationStepContext, TransformSnapshot,
264 TransformSnapshotTable, TransformWriteback, ViewportRuntime,
265};
266