Skip to main content

DeformBody

Struct DeformBody 

Source
pub struct DeformBody;
Expand description

Tapers, pinches, shears, twists or bends the bodies bodies — solids, and sheets by one of their faces — about the axis through origin along axis, over the zone from start to end along it (measured from origin): in place, every entity keeping its name. Before the zone a body stays where it is; past it, it is carried on as the zone’s end leaves it — turned rigidly by a twist or a bend, scaled across the axis by a taper or a pinch. A shear is affine: one map along the whole axis, so nothing is divided at the zone’s ends.

Where a body crosses an end of the zone, its faces are first divided there (as a curve projected onto them divides them), so that each piece lies on one side. Every curve and surface is then composed with the deformation on its control points (see geop_core_geometry::deform): exactly for a taper, to within a proven bound that widens the result for a twist or a bend. Each surface keeps its parametrization, so every pcurve stays as it is.

Refused: a zone that does not run forward, a taper to a factor that is not positive, a bend of a whole turn or more or one that would wind material past its centre, and a zone end through a corner of a body that crosses it (move the zone).

Trait Implementations§

Source§

impl Clone for DeformBody

Source§

fn clone(&self) -> DeformBody

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for DeformBody

Source§

impl Debug for DeformBody

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for DeformBody

Source§

fn default() -> DeformBody

Returns the “default value” for a type. Read more
Source§

impl<'de> Deserialize<'de> for DeformBody

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Editable for DeformBody

Source§

const INFO: OperationInfo = <DeformBody as ::geop_core_editor::part_operation::PartOperation>::INFO

Source§

type EditingState = FormState<<DeformBody as PartOperation>::Session>

What the editor keeps about a step while it is edited, beyond its arguments, starting from the default whenever a step is opened.
Source§

fn new_args(context: &Context<'_>) -> Self::Args

The arguments of a new step: sensible defaults, taking the part it is inserted into into account.
Source§

fn presentation( context: &Context<'_>, args: &Self::Args, editing: &Self::EditingState, ) -> Form

What the editor shows while the step is edited. Never fails: an editor needs the form most exactly when the arguments do not build, so whatever is wrong is said in it.
Source§

fn process_user_event( context: &Context<'_>, args: &Self::Args, editing: &Self::EditingState, event: Event, ) -> (Self::Args, Self::EditingState)

The step’s arguments and editing state after event.
Source§

impl ModelOperation for DeformBody

Source§

fn build( model: &mut NamedModel, reader: &Reader<'_>, step: &str, args: &DeformBodyArgs, ) -> GeopResult<()>

Builds the step step — what everything it makes is named after — into model, reading whatever else it builds on through reader, so the step is rebuilt when that changes.
Source§

impl Operation for DeformBody

Source§

const KIND: &'static str = <DeformBody as ::geop_core_editor::part_operation::PartOperation>::KIND

The name programs store its steps under.
Source§

type Args = <DeformBody as PartOperation>::Args

What a step of the operation is given. It is saved with the program, so it names targets and elements, never holds their internal ids.
Source§

fn run(ctx: &mut StepContext<'_>, args: &Self::Args) -> __GeopResult<()>

Declares what the step produces, through ctx (see StepContext::produce): cheap, since it runs in every run. What takes work is done in the makes, which run only when what they read changed.
Source§

impl PartOperation for DeformBody

Source§

fn new_args(context: &Context<'_>) -> DeformBodyArgs

The newest solid, tapered along z over its whole height to half its width.

Source§

fn form<'a>( context: &'a Context<'a>, args: &DeformBodyArgs, _: &FormState<()>, ) -> EditForm<'a, DeformBodyArgs>

The bodies, picked; the deformation, the axis, the zone and the amount — the toward direction for a pinch, a shear or a bend.

Source§

const KIND: &'static str = "deform_body"

The name programs store its steps under.
Source§

const INFO: OperationInfo

Source§

type Args = DeformBodyArgs

What a step is given. It is saved with the program, so it names targets and elements, never holds their internal ids.
Source§

type Session = ()

What the editor keeps while a step is edited besides its arguments and the visuals selected: () for most.
Source§

fn run(ctx: &mut StepContext<'_>, args: &DeformBodyArgs) -> GeopResult<()>

Declares what the step produces, through ctx (see StepContext::produce).
Source§

fn begin_event(session: &mut Self::Session)

What the session forgets at the start of every event, before the event is handled: nothing, by default.
Source§

fn canvas( context: &Context<'_>, edit: Edit<'_, Self::Args, Self::Session>, event: &CanvasEvent, )

What the pointer or a key did on the canvas: nothing, by default.
Source§

impl PartialEq for DeformBody

Source§

fn eq(&self, other: &DeformBody) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl Serialize for DeformBody

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for DeformBody

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<O> ErasedEditable for O
where O: Editable,

Source§

fn info(&self) -> &'static OperationInfo

Source§

fn new_args(&self, context: &Context<'_>) -> Result<Value, GeopError>

Source§

fn initial_editing(&self) -> Box<dyn Any>

Source§

fn presentation( &self, context: &Context<'_>, args: &Value, editing: &(dyn Any + 'static), ) -> Result<Form, GeopError>

Source§

fn process_user_event( &self, context: &Context<'_>, args: &Value, editing: &(dyn Any + 'static), event: Event, ) -> Result<Edited, GeopError>

Source§

impl<O> ErasedOperation for O
where O: Operation,

Source§

fn kind(&self) -> &'static str

Source§

fn check_args(&self, args: &Value) -> Result<(), GeopError>

Whether args are arguments of the operation, as saved.
Source§

fn run(&self, ctx: &mut StepContext<'_>, args: &Value) -> Result<(), GeopError>

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.