Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
agg::poly_container_adaptor< Container > Class Template Reference

#include <src/agg/agg_path_storage.h>

Public Types

typedef Container::value_type vertex_type
 

Public Member Functions

 poly_container_adaptor ()
 
 poly_container_adaptor (const Container &data, bool closed)
 
void init (const Container &data, bool closed)
 
void rewind (unsigned)
 
unsigned vertex (double *x, double *y)
 

Private Attributes

const Container * m_container
 
unsigned m_index
 
bool m_closed
 
bool m_stop
 

Detailed Description

template<class Container>
class agg::poly_container_adaptor< Container >

Member Typedef Documentation

◆ vertex_type

template<class Container >
typedef Container::value_type agg::poly_container_adaptor< Container >::vertex_type

Constructor & Destructor Documentation

◆ poly_container_adaptor() [1/2]

template<class Container >
agg::poly_container_adaptor< Container >::poly_container_adaptor ( )
inline
424 :
425 m_container(0),
426 m_index(0),
427 m_closed(false),
428 m_stop(false)
429 {}
bool m_closed
Definition agg_path_storage.h:474
const Container * m_container
Definition agg_path_storage.h:472
unsigned m_index
Definition agg_path_storage.h:473
bool m_stop
Definition agg_path_storage.h:475

◆ poly_container_adaptor() [2/2]

template<class Container >
agg::poly_container_adaptor< Container >::poly_container_adaptor ( const Container &  data,
bool  closed 
)
inline
431 :
432 m_container(&data),
433 m_index(0),
434 m_closed(closed),
435 m_stop(false)
436 {}

Member Function Documentation

◆ init()

template<class Container >
void agg::poly_container_adaptor< Container >::init ( const Container &  data,
bool  closed 
)
inline

◆ rewind()

template<class Container >
void agg::poly_container_adaptor< Container >::rewind ( unsigned  )
inline

◆ vertex()

template<class Container >
unsigned agg::poly_container_adaptor< Container >::vertex ( double *  x,
double *  y 
)
inline
453 {
454 if(m_index < m_container->size())
455 {
456 bool first = m_index == 0;
457 const vertex_type& v = (*m_container)[m_index++];
458 *x = v.x;
459 *y = v.y;
460 return first ? path_cmd_move_to : path_cmd_line_to;
461 }
462 *x = *y = 0.0;
463 if(m_closed && !m_stop)
464 {
465 m_stop = true;
467 }
468 return path_cmd_stop;
469 }
Container::value_type vertex_type
Definition agg_path_storage.h:422
const Scalar & y
Definition MathFunctions.h:552
constexpr auto size(const C &c) -> decltype(c.size())
Definition span.hpp:183
@ 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_container_adaptor< Container >::m_closed, agg::poly_container_adaptor< Container >::m_index, agg::poly_container_adaptor< Container >::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.

Member Data Documentation

◆ m_closed

template<class Container >
bool agg::poly_container_adaptor< Container >::m_closed
private

◆ m_container

template<class Container >
const Container* agg::poly_container_adaptor< Container >::m_container
private

◆ m_index

◆ m_stop


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