43 #ifndef SOLIDGRAPH_HPP
44 #define SOLIDGRAPH_HPP 1
65 Point(
double _x,
double _y ) { x[0] = _x; x[1] = _y; }
67 double &operator[]( int32_t i ) {
return( x[i] ); }
68 const double &operator[]( int32_t i )
const {
return( x[i] ); }
73 std::vector<Point> _p;
75 SolidPoints( uint32_t N ) : _N(N) {}
77 void add_point( Point x );
78 uint32_t N(
void ) {
return( _N ); }
79 size_t size(
void ) {
return( _p.size() ); }
80 Point &operator[]( int32_t i ) {
return( _p[i] ); }
81 const Point &operator[]( int32_t i )
const {
return( _p[i] ); }
87 std::vector<SolidPoints *> _solid;
94 static void step( int32_t &nextx, int32_t &nexty, int32_t dir );
95 static bool is_edge( uint32_t N, uint32_t node1, uint32_t node2 );
96 void loop( SolidPoints *solid, int32_t x, int32_t y,
97 char *done, uint32_t sizex, uint32_t sizey );
98 void build_solid( uint32_t N,
char *done, uint32_t sizex, uint32_t sizey );
99 void build_data(
void );
101 void clear_data(
void );
128 virtual void plot( cairo_t *cairo,
const Coordmapper *cm,
const double range[4] );
134 virtual void plot_sample( cairo_t *cairo,
double x,
double y,
double width,
double height );
141 virtual void get_bbox(
double bbox[4] );
Linear-linear 2D coordinate mapper.
Definition: coordmapper.hpp:119
Geometry defining class.
Definition: geometry.hpp:180
Abstract base class for geometry slice plots.
Definition: graph3d.hpp:79
Line clipper.
Definition: lineclip.hpp:57
A 2D cut view of the geometry solids.
Definition: solidgraph.hpp:60
virtual ~SolidGraph()
Destructor.
Definition: solidgraph.cpp:409
SolidGraph(const Geometry &geom)
Constructor for SolidGraph drawable from geometry g.
Definition: solidgraph.cpp:403
void disable_cache(void)
Disable internal cache.
Definition: solidgraph.cpp:416
virtual void plot_sample(cairo_t *cairo, double x, double y, double width, double height)
Plot sample for legend.
Definition: solidgraph.cpp:520
virtual void get_bbox(double bbox[4])
Get bounding box of drawable.
Definition: solidgraph.cpp:526
virtual void plot(cairo_t *cairo, const Coordmapper *cm, const double range[4])
Plot graph with cairo.
Definition: solidgraph.cpp:492
Three dimensional vector.
Definition: vec3d.hpp:58
Base for three dimensional plottable graphs.
view_e
View types.
Definition: graph3d.hpp:54
Floating point line clipping for cairo.
Three dimensional vectors.