--- source: packages/saft/tests/public-api.rs expression: "::ark_public_api_test::list_public_api(::ark_public_api_test::Options {\n target: None,\n }).unwrap()" --- pub mod saft pub use saft::<> pub use saft::BoundingBox pub mod saft::sphere_tracing pub struct saft::sphere_tracing::ClosestHit pub saft::sphere_tracing::ClosestHit::dist: f32 pub saft::sphere_tracing::ClosestHit::is_hit: bool pub saft::sphere_tracing::ClosestHit::pos: glam::f32::vec3::Vec3 pub saft::sphere_tracing::ClosestHit::t: f32 impl saft::sphere_tracing::ClosestHit pub fn saft::sphere_tracing::ClosestHit::angle_distance(&self) -> f32 pub fn saft::sphere_tracing::ClosestHit::miss() -> Self impl core::cmp::PartialOrd for saft::sphere_tracing::ClosestHit pub fn saft::sphere_tracing::ClosestHit::partial_cmp(&self, other: &Self) -> core::option::Option impl core::default::Default for saft::sphere_tracing::ClosestHit pub fn saft::sphere_tracing::ClosestHit::default() -> Self impl core::clone::Clone for saft::sphere_tracing::ClosestHit pub fn saft::sphere_tracing::ClosestHit::clone(&self) -> saft::sphere_tracing::ClosestHit impl core::cmp::PartialEq for saft::sphere_tracing::ClosestHit pub fn saft::sphere_tracing::ClosestHit::eq(&self, other: &saft::sphere_tracing::ClosestHit) -> bool impl core::fmt::Debug for saft::sphere_tracing::ClosestHit pub fn saft::sphere_tracing::ClosestHit::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result impl core::marker::Copy for saft::sphere_tracing::ClosestHit impl core::marker::StructuralPartialEq for saft::sphere_tracing::ClosestHit pub struct saft::sphere_tracing::Options impl core::default::Default for saft::sphere_tracing::Options pub fn saft::sphere_tracing::Options::default() -> Self pub fn saft::sphere_tracing::trace(sd: impl core::ops::function::FnMut(glam::f32::vec3::Vec3) -> f32, ray: macaw::ray3::Ray3, t_range: core::ops::range::RangeInclusive, opt: &saft::sphere_tracing::Options) -> saft::sphere_tracing::ClosestHit pub enum saft::Backend pub saft::Backend::GLSL impl core::cmp::Eq for saft::Backend impl core::cmp::PartialEq for saft::Backend pub fn saft::Backend::eq(&self, other: &saft::Backend) -> bool impl core::marker::StructuralPartialEq for saft::Backend pub enum saft::CsgOp pub saft::CsgOp::Intersect pub saft::CsgOp::Subtract pub saft::CsgOp::Union impl core::clone::Clone for saft::CsgOp pub fn saft::CsgOp::clone(&self) -> saft::CsgOp impl core::cmp::Eq for saft::CsgOp impl core::cmp::PartialEq for saft::CsgOp pub fn saft::CsgOp::eq(&self, other: &saft::CsgOp) -> bool impl core::fmt::Debug for saft::CsgOp pub fn saft::CsgOp::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result impl core::marker::Copy for saft::CsgOp impl core::marker::StructuralPartialEq for saft::CsgOp pub enum saft::Error pub saft::Error::BadConstants pub saft::Error::BadProgram(&'static str) pub saft::Error::BadStack pub saft::Error::EvaluatedToNaN impl core::error::Error for saft::Error impl core::fmt::Display for saft::Error pub fn saft::Error::fmt(&self, __formatter: &mut core::fmt::Formatter<'_>) -> core::fmt::Result impl core::clone::Clone for saft::Error pub fn saft::Error::clone(&self) -> saft::Error impl core::cmp::Eq for saft::Error impl core::cmp::PartialEq for saft::Error pub fn saft::Error::eq(&self, other: &saft::Error) -> bool impl core::fmt::Debug for saft::Error pub fn saft::Error::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result impl core::marker::Copy for saft::Error impl core::marker::StructuralPartialEq for saft::Error pub enum saft::Node pub saft::Node::BiconvexLens pub saft::Node::BiconvexLens::chord: f32 pub saft::Node::BiconvexLens::lower_sagitta: f32 pub saft::Node::BiconvexLens::upper_sagitta: f32 pub saft::Node::Capsule pub saft::Node::Capsule::points: [glam::f32::vec3::Vec3; 2] pub saft::Node::Capsule::radius: f32 pub saft::Node::Cone pub saft::Node::Cone::height: f32 pub saft::Node::Cone::radius: f32 pub saft::Node::Graph pub saft::Node::Graph::graph: saft::Graph pub saft::Node::Graph::root: saft::NodeId pub saft::Node::Intersect pub saft::Node::Intersect::lhs: saft::NodeId pub saft::Node::Intersect::rhs: saft::NodeId pub saft::Node::IntersectSmooth pub saft::Node::IntersectSmooth::lhs: saft::NodeId pub saft::Node::IntersectSmooth::rhs: saft::NodeId pub saft::Node::IntersectSmooth::size: f32 pub saft::Node::Material pub saft::Node::Material::child: saft::NodeId pub saft::Node::Material::material: saft_sdf::structs::Material pub saft::Node::Plane(glam::f32::sse2::vec4::Vec4) pub saft::Node::Rotate pub saft::Node::Rotate::child: saft::NodeId pub saft::Node::Rotate::rotation: glam::f32::sse2::quat::Quat pub saft::Node::RoundedBox pub saft::Node::RoundedBox::half_size: glam::f32::vec3::Vec3 pub saft::Node::RoundedBox::rounding_radius: f32 pub saft::Node::RoundedCylinder pub saft::Node::RoundedCylinder::cylinder_radius: f32 pub saft::Node::RoundedCylinder::half_height: f32 pub saft::Node::RoundedCylinder::rounding_radius: f32 pub saft::Node::Scale pub saft::Node::Scale::child: saft::NodeId pub saft::Node::Scale::scale: f32 pub saft::Node::Sphere pub saft::Node::Sphere::center: glam::f32::vec3::Vec3 pub saft::Node::Sphere::radius: f32 pub saft::Node::Subtract pub saft::Node::Subtract::lhs: saft::NodeId pub saft::Node::Subtract::rhs: saft::NodeId pub saft::Node::SubtractSmooth pub saft::Node::SubtractSmooth::lhs: saft::NodeId pub saft::Node::SubtractSmooth::rhs: saft::NodeId pub saft::Node::SubtractSmooth::size: f32 pub saft::Node::TaperedCapsule pub saft::Node::TaperedCapsule::points: [glam::f32::vec3::Vec3; 2] pub saft::Node::TaperedCapsule::radii: [f32; 2] pub saft::Node::Torus pub saft::Node::Torus::big_r: f32 pub saft::Node::Torus::small_r: f32 pub saft::Node::TorusSector pub saft::Node::TorusSector::big_r: f32 pub saft::Node::TorusSector::sin_cos_half_angle: (f32, f32) pub saft::Node::TorusSector::small_r: f32 pub saft::Node::Translate pub saft::Node::Translate::child: saft::NodeId pub saft::Node::Translate::translation: glam::f32::vec3::Vec3 pub saft::Node::Union pub saft::Node::Union::lhs: saft::NodeId pub saft::Node::Union::rhs: saft::NodeId pub saft::Node::UnionMulti pub saft::Node::UnionMulti::children: alloc::vec::Vec pub saft::Node::UnionMultiSmooth pub saft::Node::UnionMultiSmooth::children: alloc::vec::Vec pub saft::Node::UnionMultiSmooth::size: f32 pub saft::Node::UnionSmooth pub saft::Node::UnionSmooth::lhs: saft::NodeId pub saft::Node::UnionSmooth::rhs: saft::NodeId pub saft::Node::UnionSmooth::size: f32 impl<'a_, C_: speedy::context::Context> speedy::readable::Readable<'a_, C_> for saft::Node pub fn saft::Node::minimum_bytes_needed() -> usize pub fn saft::Node::read_from>(_reader_: &mut R_) -> core::result::Result::Error> impl speedy::writable::Writable for saft::Node pub fn saft::Node::write_to>(&self, _writer_: &mut T_) -> core::result::Result<(), ::Error> impl core::clone::Clone for saft::Node pub fn saft::Node::clone(&self) -> saft::Node impl core::fmt::Debug for saft::Node pub fn saft::Node::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result impl serde::ser::Serialize for saft::Node pub fn saft::Node::serialize<__S>(&self, __serializer: __S) -> core::result::Result<<__S as serde::ser::Serializer>::Ok, <__S as serde::ser::Serializer>::Error> where __S: serde::ser::Serializer impl<'de> serde::de::Deserialize<'de> for saft::Node pub fn saft::Node::deserialize<__D>(__deserializer: __D) -> core::result::Result::Error> where __D: serde::de::Deserializer<'de> pub enum saft::OutputType pub saft::OutputType::DistanceOnly pub saft::OutputType::DistanceWithRgb impl core::clone::Clone for saft::OutputType pub fn saft::OutputType::clone(&self) -> saft::OutputType impl core::marker::Copy for saft::OutputType pub struct saft::CodeGen impl saft::CodeGen pub fn saft::CodeGen::get_library_code(&self) -> &'static str pub fn saft::CodeGen::glsl() -> Self pub fn saft::CodeGen::to_code(&self, program: &saft::Program, function_name: &str, output_type: saft::OutputType, dynamic_constants: bool) -> alloc::string::String pub struct saft::CodeGenContext<'a> impl<'a> saft::CodeGenContext<'a> pub fn saft::CodeGenContext<'a>::current_position(&self) -> alloc::rc::Rc pub fn saft::CodeGenContext<'a>::float32(&mut self) -> alloc::string::String pub fn saft::CodeGenContext<'a>::material(&mut self) -> alloc::string::String pub fn saft::CodeGenContext<'a>::new(initial_position_variable: &str, function_name: &'a str, dynamic_constants: bool) -> Self pub fn saft::CodeGenContext<'a>::pop_transform(&mut self) pub fn saft::CodeGenContext<'a>::pop_variable(&mut self) -> core::option::Option> pub fn saft::CodeGenContext<'a>::push_transform(&mut self) -> (alloc::rc::Rc, alloc::rc::Rc) pub fn saft::CodeGenContext<'a>::push_variable(&mut self) -> alloc::rc::Rc pub fn saft::CodeGenContext<'a>::quat(&mut self) -> alloc::string::String pub fn saft::CodeGenContext<'a>::uint32(&mut self) -> alloc::string::String pub fn saft::CodeGenContext<'a>::vec2(&mut self) -> alloc::string::String pub fn saft::CodeGenContext<'a>::vec3(&mut self) -> alloc::string::String pub fn saft::CodeGenContext<'a>::vec4(&mut self) -> alloc::string::String pub struct saft::ConstantEditor<'a> impl<'a> saft::ConstantEditor<'a> pub fn saft::ConstantEditor<'a>::at_end(&self) -> bool pub fn saft::ConstantEditor<'a>::edit_f32(&mut self, editor: impl core::ops::function::FnOnce(f32) -> f32) -> core::result::Result<(), saft::Error> pub fn saft::ConstantEditor<'a>::edit_vec3(&mut self, editor: impl core::ops::function::FnOnce(glam::f32::vec3::Vec3) -> glam::f32::vec3::Vec3) -> core::result::Result<(), saft::Error> pub fn saft::ConstantEditor<'a>::new(constants: &'a mut [f32]) -> Self pub fn saft::ConstantEditor<'a>::skip(&mut self, count: usize) pub fn saft::ConstantEditor<'a>::skip_f32(&mut self) pub fn saft::ConstantEditor<'a>::skip_vec3(&mut self) pub struct saft::ConstantReader<'a> impl<'a> saft::ConstantReader<'a> pub fn saft::ConstantReader<'a>::at_end(&self) -> bool pub fn saft::ConstantReader<'a>::new(constants: &'a [f32]) -> Self pub fn saft::ConstantReader<'a>::read_f32(&mut self) -> core::result::Result pub fn saft::ConstantReader<'a>::read_quat(&mut self) -> core::result::Result pub fn saft::ConstantReader<'a>::read_vec2(&mut self) -> core::result::Result pub fn saft::ConstantReader<'a>::read_vec3(&mut self) -> core::result::Result pub fn saft::ConstantReader<'a>::read_vec4(&mut self) -> core::result::Result pub fn saft::ConstantReader<'a>::skip(&mut self, count: usize) pub struct saft::ExampleParams pub saft::ExampleParams::angle: f32 pub saft::ExampleParams::biconvex_lens_chord: f32 pub saft::ExampleParams::biconvex_lens_lower_sagitta: f32 pub saft::ExampleParams::biconvex_lens_upper_sagitta: f32 pub saft::ExampleParams::big_r: f32 pub saft::ExampleParams::box_scale: f32 pub saft::ExampleParams::box_translation_y: f32 pub saft::ExampleParams::capsule_y: f32 pub saft::ExampleParams::head: f32 pub saft::ExampleParams::height: f32 pub saft::ExampleParams::rounding_radius: f32 pub saft::ExampleParams::small_r: f32 pub saft::ExampleParams::smoothness: f32 impl core::default::Default for saft::ExampleParams pub fn saft::ExampleParams::default() -> Self impl<'a_, C_: speedy::context::Context> speedy::readable::Readable<'a_, C_> for saft::ExampleParams pub fn saft::ExampleParams::minimum_bytes_needed() -> usize pub fn saft::ExampleParams::read_from>(_reader_: &mut R_) -> core::result::Result::Error> impl speedy::writable::Writable for saft::ExampleParams pub fn saft::ExampleParams::write_to>(&self, _writer_: &mut T_) -> core::result::Result<(), ::Error> impl core::clone::Clone for saft::ExampleParams pub fn saft::ExampleParams::clone(&self) -> saft::ExampleParams impl core::cmp::PartialEq for saft::ExampleParams pub fn saft::ExampleParams::eq(&self, other: &saft::ExampleParams) -> bool impl core::fmt::Debug for saft::ExampleParams pub fn saft::ExampleParams::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result impl core::marker::Copy for saft::ExampleParams impl core::marker::StructuralPartialEq for saft::ExampleParams impl serde::ser::Serialize for saft::ExampleParams pub fn saft::ExampleParams::serialize<__S>(&self, __serializer: __S) -> core::result::Result<<__S as serde::ser::Serializer>::Ok, <__S as serde::ser::Serializer>::Error> where __S: serde::ser::Serializer impl<'de> serde::de::Deserialize<'de> for saft::ExampleParams pub fn saft::ExampleParams::deserialize<__D>(__deserializer: __D) -> core::result::Result::Error> where __D: serde::de::Deserializer<'de> pub struct saft::Graph impl saft::Graph pub fn saft::Graph::biconvex_lens(&mut self, lower_sagitta: f32, upper_sagitta: f32, chord: f32) -> saft::NodeId pub fn saft::Graph::capsule(&mut self, points: [glam::f32::vec3::Vec3; 2], radius: f32) -> saft::NodeId pub fn saft::Graph::capsule_y(&mut self, length: f32, radius: f32) -> saft::NodeId pub fn saft::Graph::cone(&mut self, radius: f32, height: f32) -> saft::NodeId pub fn saft::Graph::create_node(&mut self, node: saft::Node) -> saft::NodeId pub fn saft::Graph::graph(&mut self, graph: Self, root: saft::NodeId) -> saft::NodeId pub fn saft::Graph::op_conformal3(&mut self, node: saft::NodeId, transform: &macaw::conformal::Conformal3) -> saft::NodeId pub fn saft::Graph::op_csg(&mut self, lhs: saft::NodeId, op: saft::CsgOp, rhs: saft::NodeId) -> saft::NodeId pub fn saft::Graph::op_csg_smooth(&mut self, lhs: saft::NodeId, op: saft::CsgOp, rhs: saft::NodeId, size: f32) -> saft::NodeId pub fn saft::Graph::op_intersect(&mut self, lhs: saft::NodeId, rhs: saft::NodeId) -> saft::NodeId pub fn saft::Graph::op_intersect_smooth(&mut self, lhs: saft::NodeId, rhs: saft::NodeId, size: f32) -> saft::NodeId pub fn saft::Graph::op_iso_transform(&mut self, node: saft::NodeId, transform: &macaw::iso_transform::IsoTransform) -> saft::NodeId pub fn saft::Graph::op_material(&mut self, child: saft::NodeId, material: saft_sdf::structs::Material) -> saft::NodeId pub fn saft::Graph::op_rgb(&mut self, child: saft::NodeId, rgb: impl core::convert::Into) -> saft::NodeId pub fn saft::Graph::op_rotate(&mut self, child: saft::NodeId, rotation: impl core::convert::Into) -> saft::NodeId pub fn saft::Graph::op_scale(&mut self, child: saft::NodeId, scale: impl core::convert::Into) -> saft::NodeId pub fn saft::Graph::op_subtract(&mut self, lhs: saft::NodeId, rhs: saft::NodeId) -> saft::NodeId pub fn saft::Graph::op_subtract_smooth(&mut self, lhs: saft::NodeId, rhs: saft::NodeId, size: f32) -> saft::NodeId pub fn saft::Graph::op_translate(&mut self, child: saft::NodeId, translation: impl core::convert::Into) -> saft::NodeId pub fn saft::Graph::op_union(&mut self, lhs: saft::NodeId, rhs: saft::NodeId) -> saft::NodeId pub fn saft::Graph::op_union_multi(&mut self, children: alloc::vec::Vec) -> saft::NodeId pub fn saft::Graph::op_union_multi_smooth(&mut self, children: alloc::vec::Vec, size: f32) -> saft::NodeId pub fn saft::Graph::op_union_smooth(&mut self, lhs: saft::NodeId, rhs: saft::NodeId, size: f32) -> saft::NodeId pub fn saft::Graph::plane(&mut self, plane: glam::f32::sse2::vec4::Vec4) -> saft::NodeId pub fn saft::Graph::rounded_box(&mut self, half_size: glam::f32::vec3::Vec3, rounding_radius: f32) -> saft::NodeId pub fn saft::Graph::rounded_cylinder(&mut self, cylinder_radius: f32, half_height: f32, rounding_radius: f32) -> saft::NodeId pub fn saft::Graph::sphere(&mut self, center: glam::f32::vec3::Vec3, radius: f32) -> saft::NodeId pub fn saft::Graph::tapered_capsule(&mut self, points: [glam::f32::vec3::Vec3; 2], radii: [f32; 2]) -> saft::NodeId pub fn saft::Graph::torus(&mut self, big_r: f32, small_r: f32) -> saft::NodeId pub fn saft::Graph::torus_sector(&mut self, big_r: f32, small_r: f32, half_angle: f32) -> saft::NodeId impl saft::Graph pub fn saft::Graph::bounding_box(&self, node: saft::NodeId) -> macaw::bounding_box::BoundingBox pub fn saft::Graph::get(&self, node_id: saft::NodeId) -> core::option::Option<&saft::Node> pub fn saft::Graph::get_mut(&mut self, node_id: saft::NodeId) -> core::option::Option<&mut saft::Node> pub fn saft::Graph::nodes(&self) -> impl core::iter::traits::iterator::Iterator impl saft::Graph pub fn saft::Graph::example(&mut self, params: &saft::ExampleParams) -> saft::NodeId pub fn saft::Graph::example_operations(&mut self, params: &saft::ExampleParams) -> saft::NodeId impl<'a_, C_: speedy::context::Context> speedy::readable::Readable<'a_, C_> for saft::Graph pub fn saft::Graph::minimum_bytes_needed() -> usize pub fn saft::Graph::read_from>(_reader_: &mut R_) -> core::result::Result::Error> impl speedy::writable::Writable for saft::Graph pub fn saft::Graph::write_to>(&self, _writer_: &mut T_) -> core::result::Result<(), ::Error> impl core::clone::Clone for saft::Graph pub fn saft::Graph::clone(&self) -> saft::Graph impl core::default::Default for saft::Graph pub fn saft::Graph::default() -> saft::Graph impl core::fmt::Debug for saft::Graph pub fn saft::Graph::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result impl serde::ser::Serialize for saft::Graph pub fn saft::Graph::serialize<__S>(&self, __serializer: __S) -> core::result::Result<<__S as serde::ser::Serializer>::Ok, <__S as serde::ser::Serializer>::Error> where __S: serde::ser::Serializer impl<'de> serde::de::Deserialize<'de> for saft::Graph pub fn saft::Graph::deserialize<__D>(__deserializer: __D) -> core::result::Result::Error> where __D: serde::de::Deserializer<'de> pub struct saft::Grid3 impl saft::Grid3 pub fn saft::Grid3::new(size: saft::Index3) -> Self pub fn saft::Grid3::set(&mut self, f: impl core::ops::function::FnMut(saft::Index3) -> T) impl saft::Grid3 where T: saft_sdf::structs::SignedDistance pub fn saft::Grid3::fast_gradient(&self, x: usize, y: usize, z: usize, i: usize, ys: usize, zs: usize) -> glam::f32::vec3::Vec3 pub fn saft::Grid3::gradient_clamped(&self, p: saft::Index3) -> glam::f32::vec3::Vec3 pub fn saft::Grid3::set_truncated(&mut self, sdf: impl core::ops::function::Fn(saft::Index3) -> T + core::marker::Send + core::marker::Sync, truncate_dist: f32) where T: core::marker::Send pub fn saft::Grid3::set_truncated_sync(&mut self, sdf: impl core::ops::function::Fn(saft::Index3) -> T + core::marker::Send + core::marker::Sync, truncate_dist: f32) impl saft::Grid3 where T: saft_sdf::structs::SignedDistance pub fn saft::Grid3::marching_cubes(&self) -> saft::TriangleMesh pub fn saft::Grid3::marching_cubes_with_color(&self, color: impl core::ops::function::Fn(glam::f32::vec3::Vec3) -> glam::f32::vec3::Vec3 + core::marker::Send + core::marker::Sync) -> saft::TriangleMesh impl saft::Grid3 pub fn saft::Grid3::data(&self) -> &[T] pub fn saft::Grid3::size(&self) -> saft::Index3 impl core::cmp::PartialEq for saft::Grid3 pub fn saft::Grid3::eq(&self, other: &Self) -> bool impl core::ops::index::Index<[usize; 3]> for saft::Grid3 pub type saft::Grid3::Output = T pub fn saft::Grid3::index(&self, p: saft::Index3) -> &Self::Output impl core::ops::index::IndexMut<[usize; 3]> for saft::Grid3 pub fn saft::Grid3::index_mut(&mut self, p: saft::Index3) -> &mut Self::Output pub struct saft::MarchingCubes pub struct saft::MeshOptions pub saft::MeshOptions::max_resolution: f32 pub saft::MeshOptions::mean_resolution: f32 pub saft::MeshOptions::min_resolution: f32 impl saft::MeshOptions pub fn saft::MeshOptions::low() -> Self impl core::default::Default for saft::MeshOptions pub fn saft::MeshOptions::default() -> Self impl<'a_, C_: speedy::context::Context> speedy::readable::Readable<'a_, C_> for saft::MeshOptions pub fn saft::MeshOptions::minimum_bytes_needed() -> usize pub fn saft::MeshOptions::read_from>(_reader_: &mut R_) -> core::result::Result::Error> impl speedy::writable::Writable for saft::MeshOptions pub fn saft::MeshOptions::write_to>(&self, _writer_: &mut T_) -> core::result::Result<(), ::Error> impl core::clone::Clone for saft::MeshOptions pub fn saft::MeshOptions::clone(&self) -> saft::MeshOptions impl core::cmp::PartialEq for saft::MeshOptions pub fn saft::MeshOptions::eq(&self, other: &saft::MeshOptions) -> bool impl core::fmt::Debug for saft::MeshOptions pub fn saft::MeshOptions::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result impl core::marker::Copy for saft::MeshOptions impl core::marker::StructuralPartialEq for saft::MeshOptions impl serde::ser::Serialize for saft::MeshOptions pub fn saft::MeshOptions::serialize<__S>(&self, __serializer: __S) -> core::result::Result<<__S as serde::ser::Serializer>::Ok, <__S as serde::ser::Serializer>::Error> where __S: serde::ser::Serializer impl<'de> serde::de::Deserialize<'de> for saft::MeshOptions pub fn saft::MeshOptions::deserialize<__D>(__deserializer: __D) -> core::result::Result::Error> where __D: serde::de::Deserializer<'de> pub struct saft::NodeId(_) impl<'a_, C_: speedy::context::Context> speedy::readable::Readable<'a_, C_> for saft::NodeId pub fn saft::NodeId::minimum_bytes_needed() -> usize pub fn saft::NodeId::read_from>(_reader_: &mut R_) -> core::result::Result::Error> impl speedy::writable::Writable for saft::NodeId pub fn saft::NodeId::write_to>(&self, _writer_: &mut T_) -> core::result::Result<(), ::Error> impl core::clone::Clone for saft::NodeId pub fn saft::NodeId::clone(&self) -> saft::NodeId impl core::cmp::Eq for saft::NodeId impl core::cmp::Ord for saft::NodeId pub fn saft::NodeId::cmp(&self, other: &saft::NodeId) -> core::cmp::Ordering impl core::cmp::PartialEq for saft::NodeId pub fn saft::NodeId::eq(&self, other: &saft::NodeId) -> bool impl core::cmp::PartialOrd for saft::NodeId pub fn saft::NodeId::partial_cmp(&self, other: &saft::NodeId) -> core::option::Option impl core::fmt::Debug for saft::NodeId pub fn saft::NodeId::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result impl core::hash::Hash for saft::NodeId pub fn saft::NodeId::hash<__H: core::hash::Hasher>(&self, state: &mut __H) impl core::marker::Copy for saft::NodeId impl core::marker::StructuralPartialEq for saft::NodeId impl serde::ser::Serialize for saft::NodeId pub fn saft::NodeId::serialize<__S>(&self, __serializer: __S) -> core::result::Result<<__S as serde::ser::Serializer>::Ok, <__S as serde::ser::Serializer>::Error> where __S: serde::ser::Serializer impl<'de> serde::de::Deserialize<'de> for saft::NodeId pub fn saft::NodeId::deserialize<__D>(__deserializer: __D) -> core::result::Result::Error> where __D: serde::de::Deserializer<'de> pub struct saft::Program pub saft::Program::constants: alloc::vec::Vec pub saft::Program::opcodes: alloc::vec::Vec impl saft::Program pub fn saft::Program::as_bytes(&self) -> core::result::Result, alloc::boxed::Box> pub fn saft::Program::as_raw(&self) -> (alloc::vec::Vec, alloc::vec::Vec) pub fn saft::Program::constant_hash(&self) -> u64 pub fn saft::Program::disassemble(&self) -> alloc::string::String pub fn saft::Program::from_bytes(bytes: &[u8]) -> core::result::Result> pub fn saft::Program::from_raw(opcodes: &[u32], constants: &[f32]) -> core::result::Result> pub fn saft::Program::full_hash(&self) -> u64 pub fn saft::Program::program_hash(&self) -> u64 pub fn saft::Program::with_constants(&self, constants: alloc::vec::Vec) -> Self impl<'a_, C_: speedy::context::Context> speedy::readable::Readable<'a_, C_> for saft::Program pub fn saft::Program::minimum_bytes_needed() -> usize pub fn saft::Program::read_from>(_reader_: &mut R_) -> core::result::Result::Error> impl speedy::writable::Writable for saft::Program pub fn saft::Program::write_to>(&self, _writer_: &mut T_) -> core::result::Result<(), ::Error> impl core::clone::Clone for saft::Program pub fn saft::Program::clone(&self) -> saft::Program impl core::cmp::PartialEq for saft::Program pub fn saft::Program::eq(&self, other: &saft::Program) -> bool impl core::default::Default for saft::Program pub fn saft::Program::default() -> saft::Program impl core::fmt::Debug for saft::Program pub fn saft::Program::fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result impl core::marker::StructuralPartialEq for saft::Program impl serde::ser::Serialize for saft::Program pub fn saft::Program::serialize<__S>(&self, __serializer: __S) -> core::result::Result<<__S as serde::ser::Serializer>::Ok, <__S as serde::ser::Serializer>::Error> where __S: serde::ser::Serializer impl<'arbitrary> arbitrary::Arbitrary<'arbitrary> for saft::Program pub fn saft::Program::arbitrary(u: &mut arbitrary::unstructured::Unstructured<'arbitrary>) -> arbitrary::error::Result pub fn saft::Program::arbitrary_take_rest(u: arbitrary::unstructured::Unstructured<'arbitrary>) -> arbitrary::error::Result pub fn saft::Program::size_hint(depth: usize) -> (usize, core::option::Option) impl<'de> serde::de::Deserialize<'de> for saft::Program pub fn saft::Program::deserialize<__D>(__deserializer: __D) -> core::result::Result::Error> where __D: serde::de::Deserializer<'de> pub struct saft::TriangleMesh pub saft::TriangleMesh::colors: alloc::vec::Vec<[f32; 3]> pub saft::TriangleMesh::indices: alloc::vec::Vec pub saft::TriangleMesh::normals: alloc::vec::Vec<[f32; 3]> pub saft::TriangleMesh::positions: alloc::vec::Vec<[f32; 3]> impl saft::TriangleMesh pub fn saft::TriangleMesh::to_obj(&self) -> alloc::string::String impl core::clone::Clone for saft::TriangleMesh pub fn saft::TriangleMesh::clone(&self) -> saft::TriangleMesh impl core::default::Default for saft::TriangleMesh pub fn saft::TriangleMesh::default() -> saft::TriangleMesh pub struct saft::Vertex pub saft::Vertex::distance: f32 pub saft::Vertex::index: usize pub saft::Vertex::normal: glam::f32::vec3::Vec3 pub saft::Vertex::position: glam::f32::vec3::Vec3 impl saft::Vertex pub fn saft::Vertex::new(position: glam::f32::vec3::Vec3, distance: f32, normal: glam::f32::vec3::Vec3, index: usize) -> Self impl core::clone::Clone for saft::Vertex pub fn saft::Vertex::clone(&self) -> saft::Vertex impl core::default::Default for saft::Vertex pub fn saft::Vertex::default() -> saft::Vertex impl core::marker::Copy for saft::Vertex pub fn saft::compile(graph: &saft::Graph, root: saft::NodeId) -> saft::Program pub fn saft::constants_hash(constants: &[f32]) -> u64 pub fn saft::decompile(program: &saft::Program, constants: &[f32]) -> core::result::Result<(saft::Graph, saft::NodeId), saft::Error> pub fn saft::disassemble(opcodes: &[saft_sdf::opcodes::Opcode], constants: &[f32]) -> core::result::Result pub fn saft::gather_colors_in_place(mesh: &mut saft::TriangleMesh, color_world: impl core::ops::function::Fn(glam::f32::vec3::Vec3) -> glam::f32::vec3::Vec3 + core::marker::Send + core::marker::Sync) pub fn saft::march(graph: &saft::Graph, root: saft::NodeId, ray: macaw::ray3::Ray3, t_range: core::ops::range::RangeInclusive, opt: &saft::sphere_tracing::Options) -> saft::sphere_tracing::ClosestHit pub fn saft::mesh_from_sdf(graph: &saft::Graph, node: saft::NodeId, options: saft::MeshOptions) -> core::result::Result pub fn saft::mesh_from_sdf_func(bb: &macaw::bounding_box::BoundingBox, resolution: [usize; 3], sd_world: impl core::ops::function::Fn(glam::f32::vec3::Vec3) -> f32 + core::marker::Send + core::marker::Sync, color_world: impl core::ops::function::Fn(glam::f32::vec3::Vec3) -> glam::f32::vec3::Vec3 + core::marker::Send + core::marker::Sync) -> core::result::Result pub fn saft::mesh_from_sdf_program(program: &saft::Program, bb: &macaw::bounding_box::BoundingBox, resolution: [usize; 3]) -> core::result::Result pub fn saft::opcodes_hash(opcodes: &[saft_sdf::opcodes::Opcode]) -> u64 pub fn saft::sdf_bb_and_resolution(bb: macaw::bounding_box::BoundingBox, options: saft::MeshOptions) -> (macaw::bounding_box::BoundingBox, [usize; 3]) pub fn saft::surface_distance_to(graph: &saft::Graph, node: saft::NodeId, pos: glam::f32::vec3::Vec3) -> f32 pub fn saft::to_sd_func(program: &saft::Program) -> impl core::ops::function::FnMut(glam::f32::vec3::Vec3) -> f32 + '_ pub fn saft::transform_positions_in_place(mesh: &mut saft::TriangleMesh, world_from_grid_f: impl core::ops::function::Fn(glam::f32::vec3::Vec3) -> glam::f32::vec3::Vec3 + core::marker::Send + core::marker::Sync) pub type saft::Index3 = [usize; 3]