00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __GD_PrimList_h__
00021 #define __GD_PrimList_h__
00022
00023 #include "GD_API.h"
00024 #include <GB/GB_Group.h>
00025 #include <GB/GB_ElementList.h>
00026 #include "GD_Primitive.h"
00027
00028 class GD_API GD_PrimList : public GB_ElementList {
00029 public:
00030 GD_PrimList(unsigned size = 0) : GB_ElementList(size) {}
00031 virtual ~GD_PrimList();
00032
00033 const GD_Primitive *entry(unsigned n) const
00034 { return (const GD_Primitive *)rawEntry(n); }
00035 GD_Primitive *entry(unsigned n)
00036 { return (GD_Primitive *)rawEntry(n); }
00037
00038 const GD_Primitive *head() const
00039 { return (const GD_Primitive *)rawHead();}
00040 GD_Primitive *head()
00041 { return (GD_Primitive *)rawHead();}
00042 const GD_Primitive *head(const GB_PrimitiveGroup &group) const
00043 { return (const GD_Primitive *)rawHead(group); }
00044 GD_Primitive *head(const GB_PrimitiveGroup &group)
00045 { return (GD_Primitive *)rawHead(group); }
00046
00047 const GD_Primitive *tail() const
00048 { return (const GD_Primitive *)rawTail(); }
00049 GD_Primitive *tail()
00050 { return (GD_Primitive *)rawTail(); }
00051 const GD_Primitive *tail(const GB_PrimitiveGroup &group) const
00052 { return (const GD_Primitive *)rawTail(group); }
00053 GD_Primitive *tail(const GB_PrimitiveGroup &group)
00054 { return (GD_Primitive *)rawTail(group); }
00055
00056 const GD_Primitive *next(const GD_Primitive *item) const
00057 { return (const GD_Primitive *)rawNext(item); }
00058 GD_Primitive *next(GD_Primitive *item)
00059 { return (GD_Primitive *)rawNext(item); }
00060 const GD_Primitive *next(const GD_Primitive *pt,
00061 const GB_PrimitiveGroup &grp) const
00062 { return (const GD_Primitive *)rawNext(pt, grp); }
00063 GD_Primitive *next(GD_Primitive *pt, const GB_PrimitiveGroup &grp)
00064 { return (GD_Primitive *)rawNext(pt, grp); }
00065
00066 const GD_Primitive *prev(const GD_Primitive *item) const
00067 { return (const GD_Primitive *)rawPrev(item); }
00068 GD_Primitive *prev(GD_Primitive *item)
00069 { return (GD_Primitive *)rawPrev(item); }
00070 const GD_Primitive *prev(const GD_Primitive *pt,
00071 const GB_PrimitiveGroup &grp)const
00072 { return (const GD_Primitive *)rawPrev(pt, grp); }
00073 GD_Primitive *prev(GD_Primitive *pt, const GB_PrimitiveGroup &grp)
00074 { return (GD_Primitive *)rawPrev(pt, grp); }
00075
00076 const GD_Primitive *head(unsigned mask) const;
00077 const GD_Primitive *tail(unsigned mask) const;
00078 const GD_Primitive *next(const GD_Primitive *, unsigned mask) const;
00079 const GD_Primitive *prev(const GD_Primitive *, unsigned mask) const;
00080
00081 GD_Primitive *head(unsigned mask);
00082 GD_Primitive *tail(unsigned mask);
00083 GD_Primitive *next(GD_Primitive *, unsigned mask);
00084 GD_Primitive *prev(GD_Primitive *, unsigned mask);
00085
00086 GD_Primitive *operator()(unsigned i)
00087 {
00088 return (GD_Primitive *)
00089 UT_PtrArray<GB_Element *>::operator()(i);
00090 }
00091 const GD_Primitive *operator()(unsigned i) const
00092 {
00093 return (const GD_Primitive *)
00094 UT_PtrArray<GB_Element *>::operator()(i);
00095 }
00096
00097 GD_Primitive *operator[](unsigned i)
00098 {
00099 return (GD_Primitive *)
00100 UT_PtrArray<GB_Element *>::operator[](i);
00101 }
00102 const GD_Primitive *operator[](unsigned i) const
00103 {
00104 return (const GD_Primitive *)
00105 UT_PtrArray<GB_Element *>::operator[](i);
00106 }
00107 protected:
00108 };
00109
00110 #endif