OrcaSlicer latest
OrcaSlicer
Loading...
Searching...
No Matches
Slic3r::sla::RasterGrayscaleAA Class Reference

#include </home/runner/work/OrcaSlicer/OrcaSlicer/src/libslic3r/SLA/AGGRaster.hpp>

Inheritance diagram for Slic3r::sla::RasterGrayscaleAA:
Collaboration diagram for Slic3r::sla::RasterGrayscaleAA:

Public Types

using TColor
using TValue
using TPixel
enum  Orientation
using TMirroring

Public Member Functions

template<class GammaFn>
 RasterGrayscaleAA (const Resolution &res, const PixelDim &pd, const RasterBase::Trafo &trafo, GammaFn &&fn)
uint8_t read_pixel (size_t col, size_t row) const
void clear ()
Trafo trafo () const override
 Get the resolution of the raster.
Resolution resolution () const
PixelDim pixel_dimensions () const
void draw (const ExPolygon &poly) override
 Draw a polygon with holes.
EncodedRaster encode (RasterEncoder encoder) const override
void clear (const TColor color)

Static Public Attributes

static const constexpr TMirroring NoMirror
static const constexpr TMirroring MirrorX
static const constexpr TMirroring MirrorY
static const constexpr TMirroring MirrorXY

Protected Member Functions

void flipy (agg::path_storage &path) const
void flipx (agg::path_storage &path) const
double getPx (const Point &p)
double getPy (const Point &p)
agg::path_storage to_path (const Polygon &poly)
agg::path_storage to_path (const PointVec &v)
agg::path_storage _to_path (const PointVec &v)
agg::path_storage _to_path_flpxy (const PointVec &v)
void _draw (const P &poly)

Protected Attributes

Resolution m_resolution
PixelDim m_pxdim_scaled
std::vector< TPixel > m_buf
agg::rendering_buffer m_rbuf
agg::pixfmt_gray8 m_pixrenderer
agg::renderer_base< agg::pixfmt_gray8 > m_raw_renderer
agg::renderer_scanline_aa_solid< agg::renderer_base< agg::pixfmt_gray8 > > m_renderer
Trafo m_trafo
agg::scanline_p8 m_scanlines
agg::rasterizer_scanline_aa<> m_rasterizer

Private Types

using Base = _RasterGrayscaleAA

Detailed Description

Member Typedef Documentation

◆ Base

◆ TColor

using Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid, agg::rasterizer_scanline_aa<>, agg::scanline_p8 >::TColor
inherited

◆ TMirroring

◆ TPixel

using Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid, agg::rasterizer_scanline_aa<>, agg::scanline_p8 >::TPixel
inherited

◆ TValue

using Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid, agg::rasterizer_scanline_aa<>, agg::scanline_p8 >::TValue
inherited

Member Enumeration Documentation

◆ Orientation

Definition AGGRaster.hpp:47

Constructor & Destructor Documentation

◆ RasterGrayscaleAA()

template<class GammaFn>
Slic3r::sla::RasterGrayscaleAA::RasterGrayscaleAA ( const Resolution & res,
const PixelDim & pd,
const RasterBase::Trafo & trafo,
GammaFn && fn )
inline
201 : Base(res,
202 pd,
203 trafo,
206 std::forward<GammaFn>(fn))
207 {}
Trafo trafo() const override
Definition AGGRaster.hpp:163
_RasterGrayscaleAA Base
Definition AGGRaster.hpp:192
static const Color Black
Definition AGGRaster.hpp:37
static const Color White
Definition AGGRaster.hpp:36

References Slic3r::sla::Colors< Color >::Black, Slic3r::sla::Colors< Color >::White, and Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid >::trafo().

Referenced by Slic3r::sla::RasterGrayscaleAAGammaPower::RasterGrayscaleAAGammaPower().

Here is the call graph for this function:
Here is the caller graph for this function:

Member Function Documentation

◆ _draw()

void Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid, agg::rasterizer_scanline_aa<>, agg::scanline_p8 >::_draw ( const P & poly)
inlineprotectedinherited
122 {
123 m_rasterizer.reset();
124
125 m_rasterizer.add_path(to_path(contour(poly)));
126 for(auto& h : holes(poly)) m_rasterizer.add_path(to_path(h));
127
129 }
agg::path_storage to_path(const Polygon &poly)
Definition AGGRaster.hpp:82
const Polygon & contour(const ExPolygon &p)
Definition AGGRaster.hpp:30
const Polygons & holes(const ExPolygon &p)
Definition AGGRaster.hpp:31

References Slic3r::contour(), Slic3r::holes(), m_rasterizer, m_renderer, m_scanlines, Slic3r::P, and Slic3r::sla::AGGRaster< PixelRenderer, Renderer, Rasterizer, Scanline >::to_path().

Here is the call graph for this function:

◆ _to_path()

agg::path_storage Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid, agg::rasterizer_scanline_aa<>, agg::scanline_p8 >::_to_path ( const PointVec & v)
inlineprotectedinherited
85 {
87
88 auto it = v.begin();
89 path.move_to(getPx(*it), getPy(*it));
90 while(++it != v.end()) path.line_to(getPx(*it), getPy(*it));
91 path.line_to(getPx(v.front()), getPy(v.front()));
92
93 return path;
94 }

References Slic3r::sla::AGGRaster< PixelRenderer, Renderer, Rasterizer, Scanline >::getPx(), Slic3r::sla::AGGRaster< PixelRenderer, Renderer, Rasterizer, Scanline >::getPy(), and getPy().

Here is the call graph for this function:

◆ _to_path_flpxy()

agg::path_storage Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid, agg::rasterizer_scanline_aa<>, agg::scanline_p8 >::_to_path_flpxy ( const PointVec & v)
inlineprotectedinherited
97 {
99
100 auto it = v.begin();
101 path.move_to(getPy(*it), getPx(*it));
102 while(++it != v.end()) path.line_to(getPy(*it), getPx(*it));
103 path.line_to(getPy(v.front()), getPx(v.front()));
104
105 return path;
106 }

References Slic3r::sla::AGGRaster< PixelRenderer, Renderer, Rasterizer, Scanline >::getPx(), getPx(), and Slic3r::sla::AGGRaster< PixelRenderer, Renderer, Rasterizer, Scanline >::getPy().

Here is the call graph for this function:

◆ clear() [1/2]

void Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid, agg::rasterizer_scanline_aa<>, agg::scanline_p8 >::clear ( const TColor color)
inlineinherited
void clear(const TColor color)
Definition AGGRaster.hpp:178

References m_raw_renderer.

Referenced by Slic3r::sla::RasterGrayscaleAA::clear().

Here is the caller graph for this function:

◆ clear() [2/2]

void Slic3r::sla::RasterGrayscaleAA::clear ( )
inline

References Slic3r::sla::Colors< Color >::Black, and Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid >::clear().

Here is the call graph for this function:

◆ draw()

void Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid, agg::rasterizer_scanline_aa<>, agg::scanline_p8 >::draw ( const ExPolygon & poly)
inlineoverridevirtualinherited

Draw a polygon with holes.

Implements Slic3r::sla::RasterBase.

171{ _draw(poly); }

References Slic3r::sla::AGGRaster< PixelRenderer, Renderer, Rasterizer, Scanline >::_draw().

Here is the call graph for this function:

◆ encode()

EncodedRaster Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid, agg::rasterizer_scanline_aa<>, agg::scanline_p8 >::encode ( RasterEncoder encoder) const
inlineoverridevirtualinherited

Implements Slic3r::sla::RasterBase.

174 {
175 return encoder(m_buf.data(), m_resolution.width_px, m_resolution.height_px, 1);
176 }

References m_buf, and m_resolution.

◆ flipx()

void Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid, agg::rasterizer_scanline_aa<>, agg::scanline_p8 >::flipx ( agg::path_storage & path) const
inlineprotectedinherited
76 {
77 path.flip_x(0, double(m_resolution.width_px));
78 }

References m_resolution.

◆ flipy()

void Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid, agg::rasterizer_scanline_aa<>, agg::scanline_p8 >::flipy ( agg::path_storage & path) const
inlineprotectedinherited
71 {
72 path.flip_y(0, double(m_resolution.height_px));
73 }

References m_resolution.

◆ getPx()

double Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid, agg::rasterizer_scanline_aa<>, agg::scanline_p8 >::getPx ( const Point & p)
inlineprotectedinherited
80{ return p(0) * m_pxdim_scaled.w_mm; }

References m_pxdim_scaled.

Referenced by _to_path_flpxy().

Here is the caller graph for this function:

◆ getPy()

double Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid, agg::rasterizer_scanline_aa<>, agg::scanline_p8 >::getPy ( const Point & p)
inlineprotectedinherited
81{ return p(1) * m_pxdim_scaled.h_mm; }

References m_pxdim_scaled.

Referenced by _to_path().

Here is the caller graph for this function:

◆ pixel_dimensions()

PixelDim Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid, agg::rasterizer_scanline_aa<>, agg::scanline_p8 >::pixel_dimensions ( ) const
inlineinherited
166 {
167 return {SCALING_FACTOR / m_pxdim_scaled.w_mm,
169 }

References m_pxdim_scaled, and SCALING_FACTOR.

◆ read_pixel()

uint8_t Slic3r::sla::RasterGrayscaleAA::read_pixel ( size_t col,
size_t row ) const
inline
210 {
211 static_assert(std::is_same<TValue, uint8_t>::value, "Not grayscale pix");
212
213 uint8_t px;
214 Base::m_buf[row * Base::resolution().width_px + col].get(px);
215 return px;
216 }
int64_t px(const Point &pt)
Definition ClipperUtils.cpp:207
size_t width_px
Definition RasterBase.hpp:40

References Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid >::m_buf, Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid >::resolution(), and Slic3r::sla::Resolution::width_px.

Referenced by marchsq::_RasterTraits< Slic3r::sla::RasterGrayscaleAA >::get().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ resolution()

Resolution Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid, agg::rasterizer_scanline_aa<>, agg::scanline_p8 >::resolution ( ) const
inlineinherited
164{ return m_resolution; }

References m_resolution.

Referenced by Slic3r::sla::RasterGrayscaleAA::read_pixel().

Here is the caller graph for this function:

◆ to_path() [1/2]

agg::path_storage Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid, agg::rasterizer_scanline_aa<>, agg::scanline_p8 >::to_path ( const PointVec & v)
inlineprotectedinherited
109 {
110 auto path = m_trafo.flipXY ? _to_path_flpxy(v) : _to_path(v);
111
112 path.translate_all_paths(m_trafo.center_x * m_pxdim_scaled.w_mm,
113 m_trafo.center_y * m_pxdim_scaled.h_mm);
114
115 if(m_trafo.mirror_x) flipx(path);
116 if(m_trafo.mirror_y) flipy(path);
117
118 return path;
119 }
agg::path_storage _to_path_flpxy(const PointVec &v)
Definition AGGRaster.hpp:96

References Slic3r::sla::AGGRaster< PixelRenderer, Renderer, Rasterizer, Scanline >::_to_path(), Slic3r::sla::AGGRaster< PixelRenderer, Renderer, Rasterizer, Scanline >::_to_path_flpxy(), Slic3r::sla::AGGRaster< PixelRenderer, Renderer, Rasterizer, Scanline >::flipx(), Slic3r::sla::AGGRaster< PixelRenderer, Renderer, Rasterizer, Scanline >::flipy(), m_pxdim_scaled, and m_trafo.

Here is the call graph for this function:

◆ to_path() [2/2]

agg::path_storage Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid, agg::rasterizer_scanline_aa<>, agg::scanline_p8 >::to_path ( const Polygon & poly)
inlineprotectedinherited
82{ return to_path(poly.points); }

References Slic3r::sla::AGGRaster< PixelRenderer, Renderer, Rasterizer, Scanline >::to_path().

Here is the call graph for this function:

◆ trafo()

Trafo Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid, agg::rasterizer_scanline_aa<>, agg::scanline_p8 >::trafo ( ) const
inlineoverridevirtualinherited

Get the resolution of the raster.

Implements Slic3r::sla::RasterBase.

163{ return m_trafo; }

References m_trafo.

Referenced by AGGRaster(), Slic3r::sla::RasterGrayscaleAA::RasterGrayscaleAA(), and Slic3r::sla::RasterGrayscaleAAGammaPower::RasterGrayscaleAAGammaPower().

Here is the caller graph for this function:

Member Data Documentation

◆ m_buf

std::vector<TPixel> Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid, agg::rasterizer_scanline_aa<>, agg::scanline_p8 >::m_buf
protectedinherited

◆ m_pixrenderer

agg::pixfmt_gray8 Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid, agg::rasterizer_scanline_aa<>, agg::scanline_p8 >::m_pixrenderer
protectedinherited

Referenced by AGGRaster().

◆ m_pxdim_scaled

PixelDim Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid, agg::rasterizer_scanline_aa<>, agg::scanline_p8 >::m_pxdim_scaled
protectedinherited

◆ m_rasterizer

agg::rasterizer_scanline_aa<> Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid, agg::rasterizer_scanline_aa<>, agg::scanline_p8 >::m_rasterizer
protectedinherited

Referenced by AGGRaster(), and _draw().

◆ m_raw_renderer

agg::renderer_base<agg::pixfmt_gray8> Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid, agg::rasterizer_scanline_aa<>, agg::scanline_p8 >::m_raw_renderer
protectedinherited

Referenced by AGGRaster(), and clear().

◆ m_rbuf

agg::rendering_buffer Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid, agg::rasterizer_scanline_aa<>, agg::scanline_p8 >::m_rbuf
protectedinherited

Referenced by AGGRaster().

◆ m_renderer

agg::renderer_scanline_aa_solid<agg::renderer_base<agg::pixfmt_gray8> > Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid, agg::rasterizer_scanline_aa<>, agg::scanline_p8 >::m_renderer
protectedinherited

Referenced by AGGRaster(), and _draw().

◆ m_resolution

Resolution Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid, agg::rasterizer_scanline_aa<>, agg::scanline_p8 >::m_resolution
protectedinherited

◆ m_scanlines

agg::scanline_p8 Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid, agg::rasterizer_scanline_aa<>, agg::scanline_p8 >::m_scanlines
protectedinherited

Referenced by _draw().

◆ m_trafo

Trafo Slic3r::sla::AGGRaster< agg::pixfmt_gray8, agg::renderer_scanline_aa_solid, agg::rasterizer_scanline_aa<>, agg::scanline_p8 >::m_trafo
protectedinherited

Referenced by AGGRaster(), to_path(), and trafo().

◆ MirrorX

const constexpr TMirroring Slic3r::sla::RasterBase::MirrorX
staticconstexprinherited
69{true, false};

◆ MirrorXY

const constexpr TMirroring Slic3r::sla::RasterBase::MirrorXY
staticconstexprinherited
71{true, true};

◆ MirrorY

const constexpr TMirroring Slic3r::sla::RasterBase::MirrorY
staticconstexprinherited
70{false, true};

◆ NoMirror

const constexpr TMirroring Slic3r::sla::RasterBase::NoMirror
staticconstexprinherited
68{false, false};

The documentation for this class was generated from the following file:
  • /home/runner/work/OrcaSlicer/OrcaSlicer/src/libslic3r/SLA/AGGRaster.hpp