29 #ifndef opengl_CSetOfLines_H
30 #define opengl_CSetOfLines_H
90 mSegments.push_back(sgm);
96 inline void appendLine(
float x0,
float y0,
float z0,
float x1,
float y1,
float z1) {
105 mSegments.insert(mSegments.end(),sgms.begin(),sgms.end());
113 mSegments.reserve(mSegments.size()+(end-
begin));
114 mSegments.insert(mSegments.end(),
begin,
end);
122 mSegments.resize(nLines);
130 mSegments.reserve(r);
136 template<
class T,
class U>
inline void appendLine(T p0,U p1) {
137 appendLine(p0.x,p0.y,p0.z,p1.x,p1.y,p1.z);
144 return mSegments.size();
150 void setLineByIndex(
size_t index,
const TSegment3D &segm);
155 inline void setLineByIndex(
size_t index,
double x0,
double y0,
double z0,
double x1,
double y1,
double z1) {
163 inline void getLineByIndex(
size_t index,
double &x0,
double &y0,
double &z0,
double &x1,
double &y1,
double &z1)
const {
164 ASSERT_(index<mSegments.size())
165 x0 = mSegments[index].point1.x;
166 y0 = mSegments[index].point1.y;
167 z0 = mSegments[index].point1.z;
168 x1 = mSegments[index].point2.x;
169 y1 = mSegments[index].point2.y;
170 z1 = mSegments[index].point2.z;
180 void render_dl()
const;
198 inline const_iterator
begin()
const {
199 return mSegments.begin();
206 inline const_iterator
end()
const {
207 return mSegments.end();
214 inline const_reverse_iterator
rbegin()
const {
215 return mSegments.rbegin();
221 inline const_reverse_iterator
rend()
const {
222 return mSegments.rend();
232 CSetOfLines(
const std::vector<TSegment3D> &sgms):mSegments(sgms),mLineWidth(1.0) {}