|
| template<class T> |
| ArithmeticOnly< T, double > | norm (T val) |
| double | dist_for_BOTTOM_LEFT (Box ibb, const Slic3r::Point &origin_pack) |
| bool | corner_packing () const |
| double | belt_pos (const Box::PointType &pt) const |
| double | belt_start (const Box &bb) const |
| double | belt_end (const Box &bb) const |
| Box::PointType | belt_origin () const |
| double | dist_along_belt (const Box &ibb) |
| double | corner_bindist (const Box &ibb, const Slic3r::Point &origin_pack) |
| double | dist_to_bin (const Box &ibb, const Slic3r::Point &origin_pack, typename Packer::PlacementConfig::Alignment starting_point_alignment) |
| std::tuple< double, Box > | objfunc (const Item &item, const Slic3r::Point &origin_pack) |
| std::function< double(const Item &, const ItemGroup &)> | get_objfn () |
| std::function< double(const Item &, const ItemGroup &)> | get_objfn () |
| std::function< double(const Item &, const ItemGroup &)> | get_objfn () |
| std::function< double(const Item &, const ItemGroup &)> | get_objfn () |
template<class TBin>
class Slic3r::arrangement::AutoArranger< TBin >
860 {
865
866
871 }
872
876 }
880 }
881
882
883
888 {
892
895 {
898 }
899
902
903
904 auto isBig = [
this](
double a) {
906 };
907
910 if (
itm.is_virt_object)
continue;
913 }
914 };
915
917
918
920 if (
items.empty())
return;
921
923
926
928 if (
itm.is_wipe_tower) {
931 break;
932 }
933 }
934
937 };
938 };
939
941
943 m_pck.progressIndicator(
955 <<
", plate id=" <<
ap.bed_idx <<
", pos=" <<
last_packed.translation()
956 <<
", temp_type=" <<
last_packed.filament_temp_type;
957 }
958 });
959
962 });
963
965
967 int p1 =
i1.priority(),
p2 =
i2.priority();
970 if (
params.is_seq_print) {
971 return i1.bed_temp !=
i2.bed_temp ? (
i1.bed_temp >
i2.bed_temp) :
975 }
976 else {
977 return i1.bed_temp !=
i2.bed_temp ? (
i1.bed_temp >
i2.bed_temp) :
979 }
980 };
981
983 }
Definition Arrange.cpp:455
PConfig m_pconf
Definition Arrange.cpp:467
TBin m_bin
Definition Arrange.cpp:468
ArrangeParams params
Definition Arrange.cpp:489
double m_norm
Definition Arrange.cpp:482
double m_bin_area
Definition Arrange.cpp:469
ItemGroup m_items
Definition Arrange.cpp:486
Packer m_pck
Definition Arrange.cpp:466
std::tuple< double, Box > objfunc(const Item &item, const Slic3r::Point &origin_pack)
Definition Arrange.cpp:579
ItemGroup m_remaining
Definition Arrange.cpp:485
Box m_pilebb
Definition Arrange.cpp:484
Box::PointType belt_origin() const
Definition Arrange.cpp:529
SpatIndex m_rtree
Definition Arrange.cpp:476
typename Packer::PlacementConfig PConfig
Definition Arrange.cpp:461
SpatIndex m_smallsrtree
Definition Arrange.cpp:477
std::vector< Box > m_excluded_and_extruCali_regions
Definition Arrange.cpp:487
std::function< double(const Item &, const ItemGroup &)> get_objfn()
MultiPolygon m_merged_pile
Definition Arrange.cpp:483
void fill_config(PConf &pcfg, const ArrangeParams ¶ms)
Definition Arrange.cpp:356
static double fixed_overfit(const std::tuple< double, Box > &result, const Box &binbb)
Definition Arrange.cpp:416
Vec2d align_center
Definition Arrange.hpp:159
References Slic3r::arrangement::ArrangeParams::align_center, Slic3r::arrangement::ArrangePolygon::bed_idx, belt_origin(), Slic3r::arrangement::BIG_ITEM_TRESHOLD, Slic3r::arrangement::fill_config(), Slic3r::arrangement::fixed_overfit(), get_objfn(), Slic3r::arrangement::ArrangeParams::is_belt, m_bin, m_bin_area, m_excluded_and_extruCali_regions, m_items, m_merged_pile, m_norm, m_pck, m_pconf, m_pilebb, m_remaining, m_rtree, m_smallsrtree, objfunc(), params, and Slic3r::arrangement::ArrangePolygon::priority.
580 {
584
585
588 };
589
590
592
593
595
596
597
600 else {
603 }
604
605
607
608
610
611
613
614
616
617
619
620
623
628
633
634
637
638
639
647
648
653 }
654 else {
657
658
659
660
661
662
663
664
666
669
670
673
675
676
685
687 }
688 }
689
692
694
695
696
697
700 else
701
704 }
705 break;
706 }
710 }
711 else {
714 else
716 }
717 break;
718 }
720
721
722
723
726 else {
727
729
730
731
732 }
733
734 break;
735 }
736 }
737
738
739 if (
params.is_seq_print) {
744 auto iy1 =
item.boundingBox().minCorner().y();
745 auto iy2 =
item.boundingBox().maxCorner().y();
746 auto ix1 =
item.boundingBox().minCorner().x();
747
750 if (
p.is_virt_object)
continue;
751 auto px1 =
p.boundingBox().minCorner().x();
752 auto py1 =
p.boundingBox().minCorner().y();
753 auto py2 =
p.boundingBox().maxCorner().y();
756
759
762 }
763
765 }
766
771 if (
p.is_virt_object)
continue;
772
775 }
776
778 }
779 else {
784 if (!
p.is_virt_object) {
786
789
792 break;
793 }
794 }
795 }
798 }
799
803 if (
p.is_virt_object)
continue;
805 }
806
807
808 if (!
params.allow_multi_materials_on_same_plate) {
809
811
816 }
817
818
822 if (!
params.is_seq_print) {
824 }
825
826
827
828
829
830
831
836 if (
p.is_virt_object)
837 continue;
842 continue;
845 }
846 }
847
849 }
double corner_bindist(const Box &ibb, const Slic3r::Point &origin_pack)
Definition Arrange.cpp:556
size_t m_item_count
Definition Arrange.cpp:488
double dist_to_bin(const Box &ibb, const Slic3r::Point &origin_pack, typename Packer::PlacementConfig::Alignment starting_point_alignment)
Definition Arrange.cpp:561
References belt_end(), belt_start(), Slic3r::arrangement::BIG_ITEM_TRESHOLD, corner_bindist(), corner_packing(), Slic3r::Geometry::dist(), dist_to_bin(), Slic3r::Print::is_filaments_compatible(), m_bin_area, m_item_count, m_items, m_pconf, m_pilebb, m_remaining, m_rtree, m_smallsrtree, norm(), params, and Slic3r::scaled().
Referenced by AutoArranger(), and get_objfn().