pub struct Tree(/* private fields */);Expand description
Implementations§
§impl Tree
Shapes
impl Tree
Shapes
pub fn circle(r: TreeFloat, center: TreeVec2) -> Self
pub fn ring(ro: TreeFloat, ri: TreeFloat, center: TreeVec2) -> Self
pub fn polygon(r: TreeFloat, n: u32, center: TreeVec2) -> Self
pub fn rectangle(a: TreeVec2, b: TreeVec2) -> Self
pub fn rounded_rectangle(a: TreeVec2, b: TreeVec2, r: TreeFloat) -> Self
pub fn rectangle_exact(a: TreeVec2, b: TreeVec2) -> Self
pub fn rectangle_centered_exact(size: TreeVec2, center: TreeVec2) -> Self
pub fn triangle(a: TreeVec2, b: TreeVec2, c: TreeVec2) -> Self
pub fn box_mitered(a: TreeVec3, b: TreeVec3) -> Self
pub fn box_mitered_centered(size: TreeVec3, center: TreeVec3) -> Self
pub fn box_exact_centered(size: TreeVec3, center: TreeVec3) -> Self
pub fn box_exact(a: TreeVec3, b: TreeVec3) -> Self
pub fn rounded_box(a: TreeVec3, b: TreeVec3, r: TreeFloat) -> Self
pub fn sphere(radius: TreeFloat, center: TreeVec3) -> Self
pub fn half_space(norm: TreeVec3, point: TreeVec3) -> Self
pub fn cylinder_z(r: TreeFloat, h: TreeFloat, base: TreeVec3) -> Self
pub fn cone_ang_z(angle: TreeFloat, height: TreeFloat, base: TreeVec3) -> Self
pub fn cone_z(radius: TreeFloat, height: TreeFloat, base: TreeVec3) -> Self
pub fn pyramid_z( a: TreeVec2, b: TreeVec2, zmin: TreeFloat, height: TreeFloat, ) -> Self
pub fn torus_z(ro: TreeFloat, ri: TreeFloat, center: TreeVec3) -> Self
pub fn gyroid(period: TreeVec3, thickness: TreeFloat) -> Self
pub fn emptiness() -> Self
§impl Tree
Generators
impl Tree
Generators
pub fn array_x(shape: Tree, nx: u32, dx: TreeFloat) -> Self
pub fn array_xy(shape: Tree, nx: u32, ny: u32, delta: TreeVec2) -> Self
pub fn array_xyz( shape: Tree, nx: u32, ny: u32, nz: u32, delta: TreeVec3, ) -> Self
pub fn array_polar_z(shape: Tree, n: u32, center: TreeVec2) -> Self
pub fn extrude_z(t: Tree, zmin: TreeFloat, zmax: TreeFloat) -> Self
§impl Tree
§Csg
impl Tree
§Csg
pub fn union(self, b: Tree) -> Self
pub fn intersection(self, b: Tree) -> Self
pub fn inverse(self) -> Self
pub fn difference(self, b: Tree) -> Self
pub fn offset(self, o: TreeFloat) -> Self
pub fn clearance(self, b: Tree, offset: TreeFloat) -> Self
pub fn shell(self, offset: TreeFloat) -> Self
pub fn blend_expt(self, b: Tree, m: TreeFloat) -> Self
pub fn blend_expt_unit(self, b: Tree, m: TreeFloat) -> Self
pub fn blend_rough(self, b: Tree, m: TreeFloat) -> Self
pub fn blend_difference(self, b: Tree, m: TreeFloat, o: TreeFloat) -> Self
pub fn morph(self, b: Tree, m: TreeFloat) -> Self
pub fn loft(self, b: Tree, zmin: TreeFloat, zmax: TreeFloat) -> Self
pub fn loft_between(self, b: Tree, lower: TreeVec3, upper: TreeVec3) -> Self
Source§impl Tree
impl Tree
pub fn union_multi(self, trees: Trees) -> Self
pub fn intersection_multi(self, trees: Trees) -> Self
pub fn difference_multi(self, trees: Trees) -> Self
§impl Tree
Transforms
impl Tree
Transforms
pub fn moveit(self, offset: TreeVec3) -> Self
pub fn reflect_x(self, x0: TreeFloat) -> Self
pub fn reflect_y(self, y0: TreeFloat) -> Self
pub fn reflect_z(self, z0: TreeFloat) -> Self
pub fn reflect_xy(self) -> Self
pub fn reflect_yz(self) -> Self
pub fn reflect_xz(self) -> Self
pub fn symmetric_x(self) -> Self
pub fn symmetric_y(self) -> Self
pub fn symmetric_z(self) -> Self
pub fn scale_x(self, sx: TreeFloat, x0: TreeFloat) -> Self
pub fn scale_y(self, sy: TreeFloat, y0: TreeFloat) -> Self
pub fn scale_z(self, sz: TreeFloat, z0: TreeFloat) -> Self
pub fn scale_xyz(self, s: TreeVec3, center: TreeVec3) -> Self
pub fn rotate_x(self, angle: TreeFloat, center: TreeVec3) -> Self
pub fn rotate_y(self, angle: TreeFloat, center: TreeVec3) -> Self
pub fn rotate_z(self, angle: TreeFloat, center: TreeVec3) -> Self
pub fn taper_x_y( self, base: TreeVec2, h: TreeFloat, scale: TreeFloat, base_scale: TreeFloat, ) -> Self
pub fn taper_xy_z( self, base: TreeVec3, height: TreeFloat, scale: TreeFloat, base_scale: TreeFloat, ) -> Self
pub fn shear_x_y( self, base: TreeVec2, height: TreeFloat, offset: TreeFloat, base_offset: TreeFloat, ) -> Self
pub fn repel( self, locus: TreeVec3, radius: TreeFloat, exaggerate: TreeFloat, ) -> Self
pub fn repel_x( self, locus: TreeVec3, radius: TreeFloat, exaggerate: TreeFloat, ) -> Self
pub fn repel_y( self, locus: TreeVec3, radius: TreeFloat, exaggerate: TreeFloat, ) -> Self
pub fn repel_z( self, locus: TreeVec3, radius: TreeFloat, exaggerate: TreeFloat, ) -> Self
pub fn repel_xy( self, locus: TreeVec3, radius: TreeFloat, exaggerate: TreeFloat, ) -> Self
pub fn repel_yz( self, locus: TreeVec3, radius: TreeFloat, exaggerate: TreeFloat, ) -> Self
pub fn repel_xz( self, locus: TreeVec3, radius: TreeFloat, exaggerate: TreeFloat, ) -> Self
pub fn attract( self, locus: TreeVec3, radius: TreeFloat, exaggerate: TreeFloat, ) -> Self
pub fn attract_x( self, locus: TreeVec3, radius: TreeFloat, exaggerate: TreeFloat, ) -> Self
pub fn attract_y( self, locus: TreeVec3, radius: TreeFloat, exaggerate: TreeFloat, ) -> Self
pub fn attract_z( self, locus: TreeVec3, radius: TreeFloat, exaggerate: TreeFloat, ) -> Self
pub fn attract_xy( self, locus: TreeVec3, radius: TreeFloat, exaggerate: TreeFloat, ) -> Self
pub fn attract_yz( self, locus: TreeVec3, radius: TreeFloat, exaggerate: TreeFloat, ) -> Self
pub fn attract_xz( self, locus: TreeVec3, radius: TreeFloat, exaggerate: TreeFloat, ) -> Self
pub fn revolve_y(self, x0: TreeFloat) -> Self
pub fn twirl_x( self, amount: TreeFloat, radius: TreeFloat, center: TreeVec3, ) -> Self
pub fn twirl_axis_x( self, amount: TreeFloat, radius: TreeFloat, center: TreeVec3, ) -> Self
pub fn twirl_y( self, amount: TreeFloat, radius: TreeFloat, center: TreeVec3, ) -> Self
pub fn twirl_axis_y( self, amount: TreeFloat, radius: TreeFloat, center: TreeVec3, ) -> Self
pub fn twirl_z( self, amount: TreeFloat, radius: TreeFloat, center: TreeVec3, ) -> Self
pub fn twirl_axis_z( self, amount: TreeFloat, radius: TreeFloat, center: TreeVec3, ) -> Self
Source§impl Tree
§Functions
impl Tree
§Functions
pub fn square(&self) -> Self
pub fn sqrt(&self) -> Self
pub fn neg(&self) -> Self
pub fn sin(&self) -> Self
pub fn cos(&self) -> Self
pub fn tan(&self) -> Self
pub fn asin(&self) -> Self
pub fn acos(&self) -> Self
pub fn atan(&self) -> Self
pub fn exp(&self) -> Self
pub fn abs(&self) -> Self
pub fn log(&self) -> Self
pub fn recip(&self) -> Self
pub fn add(self, rhs: Self) -> Self
pub fn mul(self, rhs: Self) -> Self
pub fn min(self, rhs: Self) -> Self
pub fn max(self, rhs: Self) -> Self
pub fn sub(self, rhs: Self) -> Self
pub fn div(self, rhs: Self) -> Self
pub fn atan2(self, other: Self) -> Self
pub fn pow(self, exp: Self) -> Self
pub fn nth_root(self, n: Self) -> Self
pub fn rem(self, rhs: Self) -> Self
pub fn nan_fill(self, rhs: Self) -> Self
pub fn compare(self, rhs: Self) -> Self
Sourcepub fn is_variable(&self) -> bool
pub fn is_variable(&self) -> bool
Checks if the tree is a variable.
Source§impl Tree
§Evaluation, Import & Export
§Common Arguments
-
region – A bounding box that will be subdivided into an
quadtree/octree. For clean lines/triangles, it should be near-cubical.
But this is not a hard requirement.
-
resolution – The resolution used for meshing. Make this larger to get a
higher-resolution model.
To not loose any detail this should be approximately one over half the
model’s smallest feature size.
For methods generating 3D data another way to think of resolution is as
the number of subdivision, per unit length, on each axis.
impl Tree
§Evaluation, Import & Export
§Common Arguments
-
region– A bounding box that will be subdivided into an quadtree/octree. For clean lines/triangles, it should be near-cubical. But this is not a hard requirement. -
resolution– The resolution used for meshing. Make this larger to get a higher-resolution model.To not loose any detail this should be approximately one over half the model’s smallest feature size.
For methods generating 3D data another way to think of resolution is as the number of subdivision, per unit length, on each axis.
Sourcepub fn to_bitmap(&self, region: &Region2, z: f32, resolution: f32) -> Bitmap
pub fn to_bitmap(&self, region: &Region2, z: f32, resolution: f32) -> Bitmap
Renders a 2D slice of region at the given z height into a
Bitmap.
Sourcepub fn to_triangle_mesh<T: Point3>(
&self,
region: &Region3,
resolution: f32,
) -> Option<TriangleMesh<T>>
pub fn to_triangle_mesh<T: Point3>( &self, region: &Region3, resolution: f32, ) -> Option<TriangleMesh<T>>
Renders region to a TriangleMesh.
Sourcepub fn to_contour_2d<T: Point2>(
&self,
region: Region2,
z: f32,
resolution: f32,
) -> Option<Vec<Contour<T>>>
pub fn to_contour_2d<T: Point2>( &self, region: Region2, z: f32, resolution: f32, ) -> Option<Vec<Contour<T>>>
Renders a 2D slice of region at the given z height to a set of 2D
contours.
Sourcepub fn to_contour_3d<T: Point3>(
&self,
region: Region2,
z: f32,
resolution: f32,
) -> Option<Vec<Contour<T>>>
pub fn to_contour_3d<T: Point3>( &self, region: Region2, z: f32, resolution: f32, ) -> Option<Vec<Contour<T>>>
Renders region to a set of 3D contours.
Sourcepub fn write_svg(
&self,
path: impl AsRef<Path>,
region: &Region2,
z: f32,
resolution: f32,
)
pub fn write_svg( &self, path: impl AsRef<Path>, region: &Region2, z: f32, resolution: f32, )
Computes a 2D slice of region at the given z height and saves it to
path in SVG
format.
Sourcepub fn write_stl(
&self,
path: impl AsRef<Path>,
region: &Region3,
resolution: f32,
) -> Result<()>
pub fn write_stl( &self, path: impl AsRef<Path>, region: &Region3, resolution: f32, ) -> Result<()>
Computes a mesh of region and saves it to path in
STL format.