#ifndef _zone_
#define _zone_
#include "CList.h"
#include "point.h"
class bloc;
class glsolid;
class glsurface;
class zone
{
public:
zone (){};
void Add(bloc* pBloc ) { mlstBloc.push_back (pBloc ); };
void Add(zone* pZone ) { mlstZone.push_back (pZone ); };
void Add(glsolid* pSolid ) { mlstSolid.push_back (pSolid ); };
typedef CList::iterator bloc_iterator;
typedef CList::const_iterator const_bloc_iterator;
typedef CList::iterator solid_iterator;
typedef CList::const_iterator const_solid_iterator;
typedef CList::iterator display_iterator;
typedef CList::const_iterator const_display_iterator;
typedef CList::iterator zone_iterator;
typedef CList::const_iterator const_zone_iterator;
bloc_iterator bloc_begin () { return mlstBloc.begin (); };
bloc_iterator bloc_end () { return mlstBloc.end (); };
solid_iterator solid_begin () { return mlstSolid.begin (); };
solid_iterator solid_end () { return mlstSolid.end (); };
display_iterator display_begin () { return mlstDisplay.begin();};
display_iterator display_end () { return mlstDisplay.end(); };
const_solid_iterator solid_end () const { return mlstSolid.end (); };
const_solid_iterator solid_begin () const { return mlstSolid.begin (); };
zone_iterator zone_begin () { return mlstZone.begin (); };
zone_iterator zone_end () { return mlstZone.end (); };
bool IsInside(const point &) const;
planesurf* Collision (
point &ptStart,
vect &vPath,
point* pptInter,
glsolid* &pSolid);
void Render() const;
private:
point mp1;
point mp2;
CList mlstBloc;
CList mlstSolid; // List of glsolid contained inside the zone
CList mlstDisplay; // List of glsolid to display
CList mlstZone;
};
#endif
Generated by: saturn on FrancoisLinux on Sun Feb 3 20:01:44 2002, using kdoc 2.0a53. |