Skip to main content

Revolve

Struct Revolve 

Source
pub struct Revolve;
Expand description

Revolves the areas of a sketch around a line in its plane, into a solid named revolve(R) for the operation R — or combines that with another solid (see Combine), the result named revolve(R) all the same. Or, as faces (Output::Faces), sweeps the sketch’s curves into faces standing on their own — the area’s outline, or a chain of curves enclosing nothing.

How far it turns is an Extents in degrees: an angle, up to a full turn, or up to the next face of the solid it is joined to or cut from — on one side of the sketch’s plane, both alike, or each its own way.

The axis is any line (see RevolveAxis) in the sketch’s plane: a line of the sketch, of another one, a datum axis, a frame’s axis, a straight edge. The area, holes and all, lies on one side of it, and touches it only where the constraints put it on the axis — which must then be a line of the sketch itself (see Sketch::on_line), typically the axis line itself. A point there is a pole, swept into nothing but itself, and an edge there sweeps nothing: a full turn closes the solid over it, a partial one leaves it the edge between its two caps.

The profile names what it sweeps (see revolve): with X a piece of a sketch curve and P a joint of the sketch K, as for crate::Extrude,

  • revolve(R,K,X,q0), q1, …: the face X sweeps through each span of at most a quarter turn — four for a full turn — starting from the sketch plane;
  • revolve(R,K,X,a0), a1, …: X itself at each angle between the spans (a0 is the profile where it was drawn, for a turn starting at the sketch plane);
  • revolve(R,K,P,q0) .. / revolve(R,K,P,a0) ..: the circular edges and vertices P sweeps, and revolve(R,K,P) for a P on the axis;
  • revolve(R,start) / revolve(R,end): the caps of a partial turn.

A side going up to the next face is built on its own, as for crate::Extrude.

Trait Implementations§

Source§

impl Clone for Revolve

Source§

fn clone(&self) -> Revolve

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 Revolve

Source§

impl Debug for Revolve

Source§

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

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

impl Default for Revolve

Source§

fn default() -> Revolve

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

impl<'de> Deserialize<'de> for Revolve

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 Revolve

Source§

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

Source§

type EditingState = FormState<<Revolve 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 Revolve

Source§

fn build( model: &mut NamedModel, reader: &Reader<'_>, step: &str, args: &RevolveArgs, ) -> 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 Revolve

Source§

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

The name programs store its steps under.
Source§

type Args = <Revolve 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 Revolve

Source§

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

The newest sketch a full turn, joined to the newest solid if there is one. Which line it turns around is the user’s to pick: a guess at one shows a part they did not ask for, and leaves the question unasked.

Source§

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

The sketch and the axis, picked; how far; whether a face; and how to combine. Another sketch picked leaves no axis that was a line of the old one: the new one’s is to be picked.

Source§

const KIND: &'static str = "revolve"

The name programs store its steps under.
Source§

const INFO: OperationInfo

Source§

type Args = RevolveArgs

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: &RevolveArgs) -> 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 Revolve

Source§

fn eq(&self, other: &Revolve) -> 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 Revolve

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 Revolve

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.