OrcaSlicer latest
OrcaSlicer
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
638 :
639 L(aL), signs(asigns), stride(astride), resolution(aresolution) {}
size_t stride
Definition EdgeGrid.cpp:679
unsigned char * signs
Definition EdgeGrid.cpp:678
coord_t resolution
Definition EdgeGrid.cpp:680
float * L
Definition EdgeGrid.cpp:677

References L, resolution, signs, and stride.

Member Function Documentation

◆ operator()()

void Slic3r::PropagateDanielssonSingleVStep3::operator() ( int r,
int c,
int addr_delta,
bool has_l,
bool has_r )
inline
640 {
641 size_t addr = r * stride + c;
642 if ((signs[addr] & 2) == 0) {
643 float *v = &L[addr<<1];
644 float l = v[0]*v[0]+v[1]*v[1];
645 float *v2s = v+(addr_delta<<1);
646 float v2[2] = {
647 v2s[0],
648 v2s[1] + resolution
649 };
650 float l2 = v2[0]*v2[0]+v2[1]*v2[1];
651 if (l2 < l) {
652 v[0] = v2[0];
653 v[1] = v2[1];
654 }
655 if (has_l) {
656 float *v2sl = v2s - 1;
657 v2[0] = v2sl[0] + resolution;
658 v2[1] = v2sl[1] + resolution;
659 l2 = v2[0]*v2[0]+v2[1]*v2[1];
660 if (l2 < l) {
661 v[0] = v2[0];
662 v[1] = v2[1];
663 }
664 }
665 if (has_r) {
666 float *v2sr = v2s + 1;
667 v2[0] = v2sr[0] + resolution;
668 v2[1] = v2sr[1] + resolution;
669 l2 = v2[0]*v2[0]+v2[1]*v2[1];
670 if (l2 < l) {
671 v[0] = v2[0];
672 v[1] = v2[1];
673 }
674 }
675 }
676 }
T l2(const boost::geometry::model::d2::point_xy< T > &v)
Definition ExtrusionSimulator.cpp:177

References L, Slic3r::l2(), resolution, signs, and stride.

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:
  • /home/runner/work/OrcaSlicer/OrcaSlicer/src/libslic3r/EdgeGrid.cpp