pub enum ThreeDAlgorithm {
Show 29 variants
Auto,
ExtremePoints,
ExtremePointsResidualSpace,
ExtremePointsFreeVolume,
ExtremePointsBottomLeftBack,
ExtremePointsContactPoint,
ExtremePointsEuclidean,
Guillotine3D,
Guillotine3DBestShortSideFit,
Guillotine3DBestLongSideFit,
Guillotine3DShorterLeftoverAxis,
Guillotine3DLongerLeftoverAxis,
Guillotine3DMinVolumeSplit,
Guillotine3DMaxVolumeSplit,
LayerBuilding,
LayerBuildingMaxRects,
LayerBuildingSkyline,
LayerBuildingGuillotine,
LayerBuildingShelf,
WallBuilding,
ColumnBuilding,
DeepestBottomLeft,
DeepestBottomLeftFill,
FirstFitDecreasingVolume,
BestFitDecreasingVolume,
MultiStart,
Grasp,
LocalSearch,
BranchAndBound,
}Expand description
Algorithm selector for solve_3d.
Variants§
Auto
Try multiple strategies and return the best.
ExtremePoints
Extreme Points construction with volume-fit residual scoring (default EP).
ExtremePointsResidualSpace
Extreme Points construction with residual-space scoring (Crainic-Perboli-Tadei “RS”).
ExtremePointsFreeVolume
Extreme Points construction with free-volume scoring (Crainic-Perboli-Tadei “FV”).
ExtremePointsBottomLeftBack
Extreme Points construction with bottom-left-back tiebreaking.
ExtremePointsContactPoint
Extreme Points construction with contact-point scoring.
ExtremePointsEuclidean
Extreme Points construction with Euclidean-distance scoring (Crainic-Perboli-Tadei “EU”).
Guillotine3D
Guillotine 3D beam search with best-volume-fit ranking.
Guillotine3DBestShortSideFit
Guillotine 3D beam search ranked by shortest leftover edge.
Guillotine3DBestLongSideFit
Guillotine 3D beam search ranked by longest leftover edge.
Guillotine3DShorterLeftoverAxis
Guillotine 3D beam search splitting along the shortest leftover axis.
Guillotine3DLongerLeftoverAxis
Guillotine 3D beam search splitting along the longest leftover axis.
Guillotine3DMinVolumeSplit
Guillotine 3D beam search minimising the new sub-cuboid volume on split.
Guillotine3DMaxVolumeSplit
Guillotine 3D beam search maximising the new sub-cuboid volume on split.
LayerBuilding
Layer-building (horizontal layers) with auto 2D inner backend.
LayerBuildingMaxRects
Layer-building with the max_rects 2D inner backend.
LayerBuildingSkyline
Layer-building with the skyline 2D inner backend.
LayerBuildingGuillotine
Layer-building with the guillotine 2D inner backend.
LayerBuildingShelf
Layer-building with the best_fit_decreasing_height shelf inner backend.
WallBuilding
Bischoff & Marriott vertical wall-building.
ColumnBuilding
Column / vertical-stack building with 2D footprint packing.
DeepestBottomLeft
Deepest-Bottom-Left placement (Karabulut & İnceoğlu).
DeepestBottomLeftFill
Deepest-Bottom-Left-Fill placement.
FirstFitDecreasingVolume
First-fit decreasing by volume.
BestFitDecreasingVolume
Best-fit decreasing by volume.
MultiStart
Multi-start randomized EP meta-strategy.
Grasp
GRASP construction + local search.
LocalSearch
Standalone local search seeded from FFD.
BranchAndBound
Restricted Martello-Pisinger-Vigo branch-and-bound exact backend.
Trait Implementations§
Source§impl Clone for ThreeDAlgorithm
impl Clone for ThreeDAlgorithm
Source§fn clone(&self) -> ThreeDAlgorithm
fn clone(&self) -> ThreeDAlgorithm
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ThreeDAlgorithm
impl Debug for ThreeDAlgorithm
Source§impl Default for ThreeDAlgorithm
impl Default for ThreeDAlgorithm
Source§fn default() -> ThreeDAlgorithm
fn default() -> ThreeDAlgorithm
Source§impl<'de> Deserialize<'de> for ThreeDAlgorithm
impl<'de> Deserialize<'de> for ThreeDAlgorithm
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl PartialEq for ThreeDAlgorithm
impl PartialEq for ThreeDAlgorithm
Source§impl Serialize for ThreeDAlgorithm
impl Serialize for ThreeDAlgorithm
impl Copy for ThreeDAlgorithm
impl Eq for ThreeDAlgorithm
impl StructuralPartialEq for ThreeDAlgorithm
Auto Trait Implementations§
impl Freeze for ThreeDAlgorithm
impl RefUnwindSafe for ThreeDAlgorithm
impl Send for ThreeDAlgorithm
impl Sync for ThreeDAlgorithm
impl Unpin for ThreeDAlgorithm
impl UnsafeUnpin for ThreeDAlgorithm
impl UnwindSafe for ThreeDAlgorithm
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
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>
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>
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 more