pub struct CMapBuilder<T>where
T: CoordsFloat,{ /* private fields */ }
Expand description
Combinatorial map builder structure.
§Example
use honeycomb_core::prelude::{CMap2, CMapBuilder};
let builder = CMapBuilder::default().n_darts(10);
let map: CMap2<f64> = builder.build()?;
assert_eq!(map.n_darts(), 11); // 10 + null dart = 11
Implementations§
Source§impl<T: CoordsFloat> CMapBuilder<T>
impl<T: CoordsFloat> CMapBuilder<T>
Sourcepub fn grid_descriptor(self, grid_descriptor: GridDescriptor<T>) -> Self
Available on crate feature utils
only.
pub fn grid_descriptor(self, grid_descriptor: GridDescriptor<T>) -> Self
utils
only.Set the GridDescriptor
that will be used when building the map.
Source§impl<T: CoordsFloat> CMapBuilder<T>
impl<T: CoordsFloat> CMapBuilder<T>
Sourcepub fn unit_grid(n_square: usize) -> Self
Available on crate feature utils
only.
pub fn unit_grid(n_square: usize) -> Self
utils
only.Create a CMapBuilder
with a predefinite GridDescriptor
value.
§Arguments
n_square: usize
– Number of cells along each axis.
§Return
This function return a builder structure with predefinite parameters to generate a specific map.
The map generated by this predefinite value corresponds to an orthogonal mesh, with an equal number of cells along each axis.
Sourcepub fn unit_triangles(n_square: usize) -> Self
Available on crate feature utils
only.
pub fn unit_triangles(n_square: usize) -> Self
utils
only.Create a CMapBuilder
with a predefinite GridDescriptor
value.
§Arguments
n_square: usize
– Number of cells along each axis.
§Return
This function return a builder structure with predefinite parameters to generate a specific map.
The map generated by this predefinite value corresponds to an orthogonal mesh, with an equal number of cells along each axis. Each cell will be split across their diagonal (top left to bottom right) to form triangles.
Source§impl<T: CoordsFloat> CMapBuilder<T>
impl<T: CoordsFloat> CMapBuilder<T>
Source§impl<T: CoordsFloat> CMapBuilder<T>
impl<T: CoordsFloat> CMapBuilder<T>
Sourcepub fn n_darts(self, n_darts: usize) -> Self
pub fn n_darts(self, n_darts: usize) -> Self
Set the number of dart that the created map will contain.
Sourcepub fn add_attribute<A: AttributeBind + 'static>(self) -> Self
pub fn add_attribute<A: AttributeBind + 'static>(self) -> Self
Add the specified attribute that the created map will contain.
Each attribute must be uniquely typed, i.e. a single type or struct cannot be added twice to the builder / map. This includes type aliases as these are not distinct from the compiler’s perspective.
If you have multiple attributes that are represented using the same data type, you may want to look into the Newtype pattern here and here
Source§impl<T: CoordsFloat> CMapBuilder<T>
impl<T: CoordsFloat> CMapBuilder<T>
Sourcepub fn build(self) -> Result<CMap2<T>, BuilderError>
pub fn build(self) -> Result<CMap2<T>, BuilderError>
Consumes the builder and produce a CMap2
object.
§Return / Errors
This method return a Result
taking the following values:
Ok(map: CMap2)
– Map generation was successful.Err(BuilderError)
– There was an error during construction. SeeBuilderError
for details.
§Panics
This method may panic if type casting goes wrong during parameters parsing.
§Example
See CMapBuilder
example.
Trait Implementations§
Source§impl<T> Default for CMapBuilder<T>where
T: CoordsFloat + Default,
impl<T> Default for CMapBuilder<T>where
T: CoordsFloat + Default,
Source§fn default() -> CMapBuilder<T>
fn default() -> CMapBuilder<T>
Source§impl<T: CoordsFloat> From<GridDescriptor<T>> for CMapBuilder<T>
Available on crate feature utils
only.
impl<T: CoordsFloat> From<GridDescriptor<T>> for CMapBuilder<T>
utils
only.Create a CMapBuilder
from a GridDescriptor
.
This implementation is roughly equivalent to the following:
// setup grid descriptor
let gridd = GridDescriptor::default();
// ...
// `CMapBuilder::from(gridd)`, or:
let builder = CMapBuilder::<f64>::default().grid_descriptor(gridd);
Source§fn from(value: GridDescriptor<T>) -> Self
fn from(value: GridDescriptor<T>) -> Self
Source§impl<T: CoordsFloat, P: AsRef<Path> + Debug> From<P> for CMapBuilder<T>
Available on crate feature io
only.
impl<T: CoordsFloat, P: AsRef<Path> + Debug> From<P> for CMapBuilder<T>
io
only.Create a CMapBuilder
from an imported VTK file.
This implementation is roughly equivalent to the following:
// `CMapBuilder::from_vtk_file("some/path/to/file.vtk")`, or:
let builder = CMapBuilder::<f64>::default().vtk_file("some/path/to/file.vtk");
§Panics
This function may panic if the file cannot be loaded.
Auto Trait Implementations§
impl<T> Freeze for CMapBuilder<T>where
T: Freeze,
impl<T> !RefUnwindSafe for CMapBuilder<T>
impl<T> Send for CMapBuilder<T>
impl<T> Sync for CMapBuilder<T>
impl<T> Unpin for CMapBuilder<T>where
T: Unpin,
impl<T> !UnwindSafe for CMapBuilder<T>
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
§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait>
(where Trait: Downcast
) to Box<dyn Any>
. Box<dyn Any>
can
then be further downcast
into Box<ConcreteType>
where ConcreteType
implements Trait
.§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait>
(where Trait: Downcast
) to Rc<Any>
. Rc<Any>
can then be
further downcast
into Rc<ConcreteType>
where ConcreteType
implements Trait
.§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &Any
’s vtable from &Trait
’s.§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait
(where Trait: Downcast
) to &Any
. This is needed since Rust cannot
generate &mut Any
’s vtable from &mut Trait
’s.