pub mod runtime_parser;
pub mod print_export;
#[cfg(feature = "roblox")]
pub mod roblox_export;
#[cfg(feature = "llm-bridge")]
pub mod bridge;
pub mod laser_pattern;
pub mod pruned_compile;
pub mod law;
pub mod intent;
pub mod stdlib;
pub use alice_lol_macro::lol;
pub use alice_sdf::SdfNode;
pub use glam::{EulerRot, Quat, Vec3};
#[must_use]
#[cfg(feature = "glsl")]
pub fn to_glsl(node: &SdfNode) -> String {
use alice_sdf::compiled::glsl::{GlslShader, GlslTranspileMode};
GlslShader::transpile(node, GlslTranspileMode::Hardcoded).source
}
#[must_use]
#[cfg(feature = "glsl")]
pub fn to_glsl_dynamic(node: &SdfNode) -> String {
use alice_sdf::compiled::glsl::{GlslShader, GlslTranspileMode};
GlslShader::transpile(node, GlslTranspileMode::Dynamic).source
}
#[must_use]
#[cfg(feature = "wgsl")]
pub fn to_wgsl(node: &SdfNode) -> String {
use alice_sdf::compiled::wgsl::{TranspileMode, WgslShader};
WgslShader::transpile(node, TranspileMode::Hardcoded).source
}
#[must_use]
#[cfg(feature = "wgsl")]
pub fn to_wgsl_dynamic(node: &SdfNode) -> String {
use alice_sdf::compiled::wgsl::{TranspileMode, WgslShader};
WgslShader::transpile(node, TranspileMode::Dynamic).source
}
#[must_use]
#[cfg(feature = "hlsl")]
pub fn to_hlsl(node: &SdfNode) -> String {
use alice_sdf::compiled::hlsl::{HlslShader, HlslTranspileMode};
HlslShader::transpile(node, HlslTranspileMode::Hardcoded).source
}
#[must_use]
#[cfg(feature = "hlsl")]
pub fn to_hlsl_dynamic(node: &SdfNode) -> String {
use alice_sdf::compiled::hlsl::{HlslShader, HlslTranspileMode};
HlslShader::transpile(node, HlslTranspileMode::Dynamic).source
}
#[must_use]
#[cfg(feature = "glsl")]
pub fn to_glsl_full(node: &SdfNode, config: &RenderConfig) -> String {
use alice_sdf::compiled::glsl::{GlslShader, GlslTranspileMode};
GlslShader::transpile(node, GlslTranspileMode::Hardcoded).to_fragment_shader_full(config)
}
#[cfg(feature = "glsl")]
pub use alice_sdf::compiled::glsl::RenderConfig;
#[must_use]
pub fn eval(node: &SdfNode, point: Vec3) -> f32 {
alice_sdf::eval(node, point)
}
pub use alice_sdf::interval::{eval_interval, Interval, Vec3Interval};
pub use alice_sdf::autodiff::{
eval_hessian, eval_with_gradient, gaussian_curvature, mean_curvature, principal_curvatures,
Dual, Dual3,
};
pub use alice_sdf::compiled::{
eval_compiled, eval_compiled_batch_simd, eval_compiled_batch_simd_parallel,
eval_compiled_batch_soa, eval_compiled_batch_soa_parallel, eval_compiled_bvh,
eval_compiled_distance_and_normal, eval_compiled_normal, eval_compiled_simd, get_scene_aabb,
AabbPacked, CompileError, CompiledSdf, CompiledSdfBvh, Vec3x8,
};