use pyo3::prelude::*;
use super::node::PySdfNode;
#[pymethods]
impl PySdfNode {
fn union(&self, other: &PySdfNode) -> Self {
PySdfNode {
inner: self.inner.clone().union(other.inner.clone()),
}
}
fn intersection(&self, other: &PySdfNode) -> Self {
PySdfNode {
inner: self.inner.clone().intersection(other.inner.clone()),
}
}
fn subtract(&self, other: &PySdfNode) -> Self {
PySdfNode {
inner: self.inner.clone().subtract(other.inner.clone()),
}
}
fn smooth_union(&self, other: &PySdfNode, k: f32) -> Self {
PySdfNode {
inner: self.inner.clone().smooth_union(other.inner.clone(), k),
}
}
fn smooth_intersection(&self, other: &PySdfNode, k: f32) -> Self {
PySdfNode {
inner: self
.inner
.clone()
.smooth_intersection(other.inner.clone(), k),
}
}
fn smooth_subtract(&self, other: &PySdfNode, k: f32) -> Self {
PySdfNode {
inner: self.inner.clone().smooth_subtract(other.inner.clone(), k),
}
}
fn exp_smooth_union(&self, other: &PySdfNode, k: f32) -> Self {
PySdfNode {
inner: self.inner.clone().exp_smooth_union(other.inner.clone(), k),
}
}
fn exp_smooth_intersection(&self, other: &PySdfNode, k: f32) -> Self {
PySdfNode {
inner: self
.inner
.clone()
.exp_smooth_intersection(other.inner.clone(), k),
}
}
fn exp_smooth_subtract(&self, other: &PySdfNode, k: f32) -> Self {
PySdfNode {
inner: self
.inner
.clone()
.exp_smooth_subtract(other.inner.clone(), k),
}
}
fn xor(&self, other: &PySdfNode) -> Self {
PySdfNode {
inner: self.inner.clone().xor(other.inner.clone()),
}
}
fn morph(&self, other: &PySdfNode, t: f32) -> Self {
PySdfNode {
inner: self.inner.clone().morph(other.inner.clone(), t),
}
}
fn columns_union(&self, other: &PySdfNode, r: f32, n: f32) -> Self {
PySdfNode {
inner: self.inner.clone().columns_union(other.inner.clone(), r, n),
}
}
fn columns_intersection(&self, other: &PySdfNode, r: f32, n: f32) -> Self {
PySdfNode {
inner: self
.inner
.clone()
.columns_intersection(other.inner.clone(), r, n),
}
}
fn columns_subtract(&self, other: &PySdfNode, r: f32, n: f32) -> Self {
PySdfNode {
inner: self
.inner
.clone()
.columns_subtract(other.inner.clone(), r, n),
}
}
fn pipe(&self, other: &PySdfNode, r: f32) -> Self {
PySdfNode {
inner: self.inner.clone().pipe(other.inner.clone(), r),
}
}
fn engrave(&self, other: &PySdfNode, r: f32) -> Self {
PySdfNode {
inner: self.inner.clone().engrave(other.inner.clone(), r),
}
}
fn groove(&self, other: &PySdfNode, ra: f32, rb: f32) -> Self {
PySdfNode {
inner: self.inner.clone().groove(other.inner.clone(), ra, rb),
}
}
fn tongue(&self, other: &PySdfNode, ra: f32, rb: f32) -> Self {
PySdfNode {
inner: self.inner.clone().tongue(other.inner.clone(), ra, rb),
}
}
fn chamfer_union(&self, other: &PySdfNode, r: f32) -> Self {
PySdfNode {
inner: self.inner.clone().chamfer_union(other.inner.clone(), r),
}
}
fn chamfer_intersection(&self, other: &PySdfNode, r: f32) -> Self {
PySdfNode {
inner: self
.inner
.clone()
.chamfer_intersection(other.inner.clone(), r),
}
}
fn chamfer_subtract(&self, other: &PySdfNode, r: f32) -> Self {
PySdfNode {
inner: self.inner.clone().chamfer_subtract(other.inner.clone(), r),
}
}
fn stairs_union(&self, other: &PySdfNode, r: f32, n: f32) -> Self {
PySdfNode {
inner: self.inner.clone().stairs_union(other.inner.clone(), r, n),
}
}
fn stairs_intersection(&self, other: &PySdfNode, r: f32, n: f32) -> Self {
PySdfNode {
inner: self
.inner
.clone()
.stairs_intersection(other.inner.clone(), r, n),
}
}
fn stairs_subtract(&self, other: &PySdfNode, r: f32, n: f32) -> Self {
PySdfNode {
inner: self
.inner
.clone()
.stairs_subtract(other.inner.clone(), r, n),
}
}
}