pub enum TreeOp {
Input(Var),
Const(f64),
Binary(BinaryOpcode, Arc<TreeOp>, Arc<TreeOp>),
Unary(UnaryOpcode, Arc<TreeOp>),
RemapAxes {
target: Arc<TreeOp>,
x: Arc<TreeOp>,
y: Arc<TreeOp>,
z: Arc<TreeOp>,
},
RemapAffine {
target: Arc<TreeOp>,
mat: Affine3<f64>,
},
}Expand description
Opcode type for trees
This is equivalent to Op, but also includes the
RemapAxes and TreeOp::RemapAffine operations for
lazy remapping.
Variants§
Input(Var)
Input (an arbitrary Var)
Const(f64)
Binary(BinaryOpcode, Arc<TreeOp>, Arc<TreeOp>)
Unary(UnaryOpcode, Arc<TreeOp>)
RemapAxes
Lazy remapping of trees
When imported into a Context, all x/y/z clauses within target will
be replaced with the provided x/y/z trees.
If the transform is affine, then RemapAffine should be preferred,
because it flattens sequences of affine transformations.
RemapAffine
Lazy affine transforms
When imported into a Context, the x/y/z clauses within target will
be transformed with the provided affine matrix.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for TreeOp
impl RefUnwindSafe for TreeOp
impl Send for TreeOp
impl Sync for TreeOp
impl Unpin for TreeOp
impl UnsafeUnpin for TreeOp
impl UnwindSafe for TreeOp
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.