Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
agg::poly_plain_adaptor< T > Class Template Reference

#include <src/agg/agg_path_storage.h>

+ Inheritance diagram for agg::poly_plain_adaptor< T >:

Public Types

typedef T value_type
 

Public Member Functions

 poly_plain_adaptor ()
 
 poly_plain_adaptor (const T *data, unsigned num_points, bool closed)
 
void init (const T *data, unsigned num_points, bool closed)
 
void rewind (unsigned)
 
unsigned vertex (double *x, double *y)
 

Private Attributes

const T * m_data
 
const T * m_ptr
 
const T * m_end
 
bool m_closed
 
bool m_stop
 

Detailed Description

template<class T>
class agg::poly_plain_adaptor< T >

Member Typedef Documentation

◆ value_type

template<class T >
typedef T agg::poly_plain_adaptor< T >::value_type

Constructor & Destructor Documentation

◆ poly_plain_adaptor() [1/2]

template<class T >
agg::poly_plain_adaptor< T >::poly_plain_adaptor ( )
inline
357 :
358 m_data(0),
359 m_ptr(0),
360 m_end(0),
361 m_closed(false),
362 m_stop(false)
363 {}
const T * m_end
Definition agg_path_storage.h:409
bool m_stop
Definition agg_path_storage.h:411
const T * m_ptr
Definition agg_path_storage.h:408
const T * m_data
Definition agg_path_storage.h:407
bool m_closed
Definition agg_path_storage.h:410

◆ poly_plain_adaptor() [2/2]

template<class T >
agg::poly_plain_adaptor< T >::poly_plain_adaptor ( const T *  data,
unsigned  num_points,
bool  closed 
)
inline
365 :
366 m_data(data),
367 m_ptr(data),
368 m_end(data + num_points * 2),
369 m_closed(closed),
370 m_stop(false)
371 {}

Member Function Documentation

◆ init()

template<class T >
void agg::poly_plain_adaptor< T >::init ( const T *  data,
unsigned  num_points,
bool  closed 
)
inline
374 {
375 m_data = data;
376 m_ptr = data;
377 m_end = data + num_points * 2;
378 m_closed = closed;
379 m_stop = false;
380 }
constexpr auto data(C &c) -> decltype(c.data())
Definition span.hpp:195

References agg::poly_plain_adaptor< T >::m_closed, agg::poly_plain_adaptor< T >::m_data, agg::poly_plain_adaptor< T >::m_end, agg::poly_plain_adaptor< T >::m_ptr, and agg::poly_plain_adaptor< T >::m_stop.

◆ rewind()

template<class T >
void agg::poly_plain_adaptor< T >::rewind ( unsigned  )
inline
383 {
384 m_ptr = m_data;
385 m_stop = false;
386 }

References agg::poly_plain_adaptor< T >::m_data, agg::poly_plain_adaptor< T >::m_ptr, and agg::poly_plain_adaptor< T >::m_stop.

Referenced by agg::line_adaptor::init(), and agg::line_adaptor::rewind().

+ Here is the caller graph for this function:

◆ vertex()

template<class T >
unsigned agg::poly_plain_adaptor< T >::vertex ( double *  x,
double *  y 
)
inline
389 {
390 if(m_ptr < m_end)
391 {
392 bool first = m_ptr == m_data;
393 *x = *m_ptr++;
394 *y = *m_ptr++;
395 return first ? path_cmd_move_to : path_cmd_line_to;
396 }
397 *x = *y = 0.0;
398 if(m_closed && !m_stop)
399 {
400 m_stop = true;
402 }
403 return path_cmd_stop;
404 }
const Scalar & y
Definition MathFunctions.h:552
@ path_flags_close
Definition agg_basics.h:388
@ path_cmd_move_to
Definition agg_basics.h:371
@ path_cmd_line_to
Definition agg_basics.h:372
@ path_cmd_stop
Definition agg_basics.h:370
@ path_cmd_end_poly
Definition agg_basics.h:378
TCoord< P > x(const P &p)
Definition geometry_traits.hpp:297

References agg::poly_plain_adaptor< T >::m_closed, agg::poly_plain_adaptor< T >::m_data, agg::poly_plain_adaptor< T >::m_end, agg::poly_plain_adaptor< T >::m_ptr, agg::poly_plain_adaptor< T >::m_stop, agg::path_cmd_end_poly, agg::path_cmd_line_to, agg::path_cmd_move_to, agg::path_cmd_stop, and agg::path_flags_close.

Referenced by agg::line_adaptor::vertex().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_closed

template<class T >
bool agg::poly_plain_adaptor< T >::m_closed
private

◆ m_data

◆ m_end

◆ m_ptr

◆ m_stop


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