Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
Slic3r::PropagateDanielssonSingleVStep3 Struct Reference

Public Member Functions

 PropagateDanielssonSingleVStep3 (float *aL, unsigned char *asigns, size_t astride, coord_t aresolution)
 
void operator() (int r, int c, int addr_delta, bool has_l, bool has_r)
 

Public Attributes

float * L
 
unsigned char * signs
 
size_t stride
 
coord_t resolution
 

Detailed Description

Constructor & Destructor Documentation

◆ PropagateDanielssonSingleVStep3()

Slic3r::PropagateDanielssonSingleVStep3::PropagateDanielssonSingleVStep3 ( float *  aL,
unsigned char *  asigns,
size_t  astride,
coord_t  aresolution 
)
inline
625 :
626 L(aL), signs(asigns), stride(astride), resolution(aresolution) {}
size_t stride
Definition EdgeGrid.cpp:666
unsigned char * signs
Definition EdgeGrid.cpp:665
coord_t resolution
Definition EdgeGrid.cpp:667
float * L
Definition EdgeGrid.cpp:664

Member Function Documentation

◆ operator()()

void Slic3r::PropagateDanielssonSingleVStep3::operator() ( int  r,
int  c,
int  addr_delta,
bool  has_l,
bool  has_r 
)
inline
627 {
628 size_t addr = r * stride + c;
629 if ((signs[addr] & 2) == 0) {
630 float *v = &L[addr<<1];
631 float l = v[0]*v[0]+v[1]*v[1];
632 float *v2s = v+(addr_delta<<1);
633 float v2[2] = {
634 v2s[0],
635 v2s[1] + resolution
636 };
637 float l2 = v2[0]*v2[0]+v2[1]*v2[1];
638 if (l2 < l) {
639 v[0] = v2[0];
640 v[1] = v2[1];
641 }
642 if (has_l) {
643 float *v2sl = v2s - 1;
644 v2[0] = v2sl[0] + resolution;
645 v2[1] = v2sl[1] + resolution;
646 l2 = v2[0]*v2[0]+v2[1]*v2[1];
647 if (l2 < l) {
648 v[0] = v2[0];
649 v[1] = v2[1];
650 }
651 }
652 if (has_r) {
653 float *v2sr = v2s + 1;
654 v2[0] = v2sr[0] + resolution;
655 v2[1] = v2sr[1] + resolution;
656 l2 = v2[0]*v2[0]+v2[1]*v2[1];
657 if (l2 < l) {
658 v[0] = v2[0];
659 v[1] = v2[1];
660 }
661 }
662 }
663 }
T l2(const boost::geometry::model::d2::point_xy< T > &v)
Definition ExtrusionSimulator.cpp:166

References L, and Slic3r::l2().

+ Here is the call graph for this function:

Member Data Documentation

◆ L

float* Slic3r::PropagateDanielssonSingleVStep3::L

◆ resolution

coord_t Slic3r::PropagateDanielssonSingleVStep3::resolution

◆ signs

unsigned char* Slic3r::PropagateDanielssonSingleVStep3::signs

◆ stride

size_t Slic3r::PropagateDanielssonSingleVStep3::stride

The documentation for this struct was generated from the following file: