#![warn(missing_docs)]
pub mod error;
pub mod camera;
pub mod geometry;
pub mod interaction;
pub mod renderer;
pub mod resources;
pub mod scene;
pub mod widgets;
pub use geometry::bvh;
pub use geometry::primitives;
pub use interaction::annotation;
pub use interaction::gizmo;
pub use interaction::input;
pub use interaction::manipulation;
pub use interaction::picking;
pub use interaction::selection;
pub use interaction::snap;
pub use scene::aabb;
pub use scene::material;
pub use scene::traits;
pub use widgets::axes_indicator;
pub use error::{ViewportError, ViewportResult};
pub use camera::animator::{CameraAnimator, CameraDamping, Easing};
pub use camera::camera::{Camera, CameraTarget, Projection};
pub use camera::frustum::{CullStats, Frustum};
pub use camera::view_preset::ViewPreset;
pub use scene::aabb::Aabb;
pub use scene::material::Material;
pub use scene::scene::{Group, GroupId, Layer, LayerId, Scene, SceneNode};
pub use scene::traits::{RenderMode, ViewportObject};
pub use geometry::bvh::PickAccelerator;
pub use geometry::isoline::{IsolineItem, extract_isolines};
pub use geometry::marching_cubes::{VolumeData, extract_isosurface};
pub use interaction::annotation::AnnotationLabel;
#[cfg(feature = "egui")]
pub use interaction::annotation::draw_annotation_labels;
pub use interaction::annotation::{world_to_screen, world_to_screen_from_frame};
pub use interaction::gizmo::{
Gizmo, GizmoAxis, GizmoMode, GizmoSpace, PivotMode, gizmo_center_for_pivot,
};
pub use interaction::input::{
Action, ActionState, Binding, FrameInput, InputMode, InputSystem, KeyCode, Modifiers,
MouseButton,
};
pub use interaction::input::{
ActionFrame, BindingPreset, ButtonState, ModifiersMatch, NavigationActions,
OrbitCameraController, ResolvedActionState, ScrollUnits, ViewportBinding, ViewportContext,
ViewportEvent, ViewportGesture, ViewportInput, viewport_all_bindings,
};
pub use interaction::manipulation::{
GizmoInfo, ManipResult, ManipulationContext, ManipulationController, ManipulationKind,
ManipulationState, TransformDelta,
};
pub use interaction::manipulation::solvers::{
angular_rotation_from_cursor, constrained_scale, constrained_translation,
};
pub use interaction::picking::{
GpuPickHit, PickHit, ProbeBinding, RectPickResult, pick_rect,
pick_scene_accelerated_with_probe, pick_scene_nodes_with_probe, pick_scene_with_probe,
};
pub use interaction::selection::{NodeId, Selection};
pub use interaction::snap::{ConstraintOverlay, SnapConfig};
pub use widgets::axes_indicator::AxisView;
pub use renderer::shader_hashes::ShaderValidation;
pub use renderer::stats::FrameStats;
pub use renderer::{
CameraFrame, ClipPlane, ClipVolume, ComputeFilterItem, ComputeFilterKind, EffectsFrame,
FilterMode, FrameData, GlyphItem, GlyphType, InteractionFrame, LightKind, LightSource,
LightingSettings, PointCloudItem, PointRenderMode, PolylineItem, PostProcessSettings,
RenderCamera, SceneFrame, SceneRenderItem, ShadowFilter, StreamtubeItem, SurfaceSubmission,
ToneMapping, ViewportFrame, ViewportRenderer, VolumeItem,
};
pub use renderer::{ScalarBar, ScalarBarAnchor, ScalarBarOrientation};
pub use resources::colormap_data::{
export_paraview_xml_colormap, lerp_colormap_lut, parse_paraview_xml_colormap,
};
pub use resources::mesh_store::MeshId;
pub use resources::{
AttributeData, AttributeKind, AttributeRef, BuiltinColormap, CameraUniform, ClipVolumeUniform,
ColormapId, ComputeFilterResult, LightUniform, LightsUniform, MeshData, SingleLightUniform,
ViewportGpuResources, VolumeId, lerp_attributes,
};