-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMPI_PolyLine.h
54 lines (34 loc) · 1014 Bytes
/
MPI_PolyLine.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//
// MPI_PolyLine.h
//
// Description:
// A polyline (a piecewise linear curve)
//
#ifndef __MPI_POLYLINE_H__
#define __MPI_POLYLINE_H__
#include <ostream>
class MPI_Point2D;
class MPI_PolyLinePoint;
class MPI_PointListIterator;
class MPI_PolyLineVisitor;
class MPI_BoundingBox;
class MPI_PolyLine
{
public:
MPI_PolyLine();
virtual ~MPI_PolyLine();
virtual void appendPoint( MPI_Point2D const &point );
virtual void end( void );
virtual MPI_PointListIterator* allocatePointListIterator( void ) const = 0;
MPI_BoundingBox const& getBoundingBox( void ) const;
virtual void updateState( void );
virtual void acceptVisitor( MPI_PolyLineVisitor const& visitor ) = 0;
virtual void print( std::ostream &os ) const;
protected:
virtual void allocatePointAndAddToList( MPI_Point2D const &point ) = 0;
private:
MPI_BoundingBox *boundingbox_;
};
std::ostream &operator<<( std::ostream &os, MPI_PolyLine const &polyline );
#endif
// vim:sw=4:et:cindent: