// Generated by scripts/generate.mjs from bindings/api.mjs. Do not edit.
///|
#external
pub type Octree
///|
#module("@mizchi/three-mbt/modeling-workflow")
pub extern "js" fn Octree::Octree() -> Octree = "octree"
///|
pub extern "js" fn Octree::layers(self : Octree) -> Layers =
#| (self) => self.layers
///|
pub extern "js" fn Octree::triangles_per_leaf(self : Octree) -> Int =
#| (self) => self.trianglesPerLeaf
///|
pub extern "js" fn Octree::set_triangles_per_leaf(
self : Octree,
value : Int,
) -> Unit =
#| (self, value) => { self.trianglesPerLeaf = value; }
///|
pub extern "js" fn Octree::max_level(self : Octree) -> Int =
#| (self) => self.maxLevel
///|
pub extern "js" fn Octree::set_max_level(self : Octree, value : Int) -> Unit =
#| (self, value) => { self.maxLevel = value; }
///|
pub extern "js" fn Octree::add_triangle(
self : Octree,
triangle : Triangle,
) -> Octree =
#| (self, triangle) => self.addTriangle(triangle)
///|
pub extern "js" fn Octree::build(self : Octree) -> Octree =
#| (self) => self.build()
///|
pub extern "js" fn Octree::from_graph_node(
self : Octree,
root : Object3D,
) -> Octree =
#| (self, root) => self.fromGraphNode(root)
///|
pub extern "js" fn Octree::clear(self : Octree) -> Octree =
#| (self) => self.clear()
///|
extern "js" fn Octree::ffi_box(self : Octree) -> Nullable[Box3] =
#| (self) => self.box
///|
pub fn Octree::box(self : Octree) -> Box3? {
self.ffi_box().to_option()
}
///|
extern "js" fn Octree::ffi_sphere_intersect(
self : Octree,
shape : Sphere,
) -> Nullable[OctreeIntersection] =
#| (self, shape) => self.sphereIntersect(shape) || null
///|
pub fn Octree::sphere_intersect(
self : Octree,
shape : Sphere,
) -> OctreeIntersection? {
self.ffi_sphere_intersect(shape).to_option()
}
///|
extern "js" fn Octree::ffi_capsule_intersect(
self : Octree,
shape : Capsule,
) -> Nullable[OctreeIntersection] =
#| (self, shape) => self.capsuleIntersect(shape) || null
///|
pub fn Octree::capsule_intersect(
self : Octree,
shape : Capsule,
) -> OctreeIntersection? {
self.ffi_capsule_intersect(shape).to_option()
}
///|
extern "js" fn Octree::ffi_box_intersect(
self : Octree,
shape : Box3,
) -> Nullable[OctreeIntersection] =
#| (self, shape) => self.boxIntersect(shape) || null
///|
pub fn Octree::box_intersect(
self : Octree,
shape : Box3,
) -> OctreeIntersection? {
self.ffi_box_intersect(shape).to_option()
}
///|
extern "js" fn Octree::ffi_ray_intersect(
self : Octree,
ray : Ray,
) -> Nullable[OctreeRayIntersection] =
#| (self, ray) => self.rayIntersect(ray) || null
///|
pub fn Octree::ray_intersect(
self : Octree,
ray : Ray,
) -> OctreeRayIntersection? {
self.ffi_ray_intersect(ray).to_option()
}
///|
pub extern "js" fn Octree::bounds(self : Octree) -> Box3 =
#| (self) => self.bounds
///|
pub extern "js" fn Octree::triangles(self : Octree) -> FixedArray[Triangle] =
#| (self) => self.triangles.slice()
///|
pub extern "js" fn Octree::sub_trees(self : Octree) -> FixedArray[Octree] =
#| (self) => self.subTrees.slice()
///|
pub extern "js" fn Octree::ray_triangles(
self : Octree,
ray : Ray,
) -> FixedArray[Triangle] =
#| (self, ray) => { const result=[]; self.getRayTriangles(ray,result); return result; }
///|
pub extern "js" fn Octree::sphere_triangles(
self : Octree,
shape : Sphere,
) -> FixedArray[Triangle] =
#| (self, shape) => { const result=[]; self.getSphereTriangles(shape,result); return result; }
///|
extern "js" fn Octree::ffi_triangle_sphere_intersect(
self : Octree,
shape : Sphere,
triangle : Triangle,
) -> Nullable[OctreeTriangleIntersection] =
#| (self, shape, triangle) => self.triangleSphereIntersect(shape,triangle) || null
///|
pub fn Octree::triangle_sphere_intersect(
self : Octree,
shape : Sphere,
triangle : Triangle,
) -> OctreeTriangleIntersection? {
self.ffi_triangle_sphere_intersect(shape, triangle).to_option()
}
///|
pub extern "js" fn Octree::box_triangles(
self : Octree,
shape : Box3,
) -> FixedArray[Triangle] =
#| (self, shape) => { const result=[]; self.getBoxTriangles(shape,result); return result; }
///|
extern "js" fn Octree::ffi_triangle_box_intersect(
self : Octree,
shape : Box3,
triangle : Triangle,
) -> Nullable[OctreeTriangleIntersection] =
#| (self, shape, triangle) => self.triangleBoxIntersect(shape,triangle) || null
///|
pub fn Octree::triangle_box_intersect(
self : Octree,
shape : Box3,
triangle : Triangle,
) -> OctreeTriangleIntersection? {
self.ffi_triangle_box_intersect(shape, triangle).to_option()
}
///|
pub extern "js" fn Octree::capsule_triangles(
self : Octree,
shape : Capsule,
) -> FixedArray[Triangle] =
#| (self, shape) => { const result=[]; self.getCapsuleTriangles(shape,result); return result; }
///|
extern "js" fn Octree::ffi_triangle_capsule_intersect(
self : Octree,
shape : Capsule,
triangle : Triangle,
) -> Nullable[OctreeTriangleIntersection] =
#| (self, shape, triangle) => self.triangleCapsuleIntersect(shape,triangle) || null
///|
pub fn Octree::triangle_capsule_intersect(
self : Octree,
shape : Capsule,
triangle : Triangle,
) -> OctreeTriangleIntersection? {
self.ffi_triangle_capsule_intersect(shape, triangle).to_option()
}