00001 /* 00002 * PROPRIETARY INFORMATION. This software is proprietary to 00003 * Side Effects Software Inc., and is not to be reproduced, 00004 * transmitted, or disclosed in any way without written permission. 00005 * 00006 * Produced by: 00007 * Mark Elendt 00008 * Side Effects 00009 * 477 Richmond Street West 00010 * Toronto, Ontario 00011 * Canada M5V 3E7 00012 * 416-504-9876 00013 * 00014 * NAME: GEO library (C++) 00015 * 00016 * COMMENTS: Point List 00017 * 00018 */ 00019 00020 #ifndef __GEO_PointList_h__ 00021 #define __GEO_PointList_h__ 00022 00023 #include "GEO_API.h" 00024 #include <GB/GB_ElementList.h> 00025 #include <GB/GB_Group.h> 00026 #include "GEO_Point.h" 00027 00028 class GEO_API GEO_PointList : public GB_ElementList { 00029 public: 00030 GEO_PointList(unsigned size = 0) : GB_ElementList(size) {} 00031 virtual ~GEO_PointList(); 00032 00033 const GEO_Point *entry(unsigned n) const 00034 { return (const GEO_Point *)rawEntry(n); } 00035 GEO_Point *entry(unsigned n) 00036 { return (GEO_Point *)rawEntry(n); } 00037 00038 const GEO_Point *head() const 00039 { return (const GEO_Point *)rawHead();} 00040 GEO_Point *head() 00041 { return (GEO_Point *)rawHead();} 00042 const GEO_Point *head(const GB_PointGroup &group) const 00043 { return (const GEO_Point *)rawHead(group); } 00044 GEO_Point *head(const GB_PointGroup &group) 00045 { return (GEO_Point *)rawHead(group); } 00046 00047 const GEO_Point *tail() const 00048 { return (const GEO_Point *)rawTail(); } 00049 GEO_Point *tail() 00050 { return (GEO_Point *)rawTail(); } 00051 const GEO_Point *tail(const GB_PointGroup &group) const 00052 { return (const GEO_Point *)rawTail(group); } 00053 GEO_Point *tail(const GB_PointGroup &group) 00054 { return (GEO_Point *)rawTail(group); } 00055 00056 const GEO_Point *next(const GEO_Point *item) const 00057 { return (const GEO_Point *)rawNext(item); } 00058 GEO_Point *next(GEO_Point *item) 00059 { return (GEO_Point *)rawNext(item); } 00060 const GEO_Point *next(const GEO_Point *p, const GB_PointGroup &g) const 00061 { return (const GEO_Point *)rawNext(p, g); } 00062 GEO_Point *next(GEO_Point *pt, const GB_PointGroup &grp) 00063 { return (GEO_Point *)rawNext(pt, grp); } 00064 00065 const GEO_Point *prev(const GEO_Point *item) const 00066 { return (const GEO_Point *)rawPrev(item); } 00067 GEO_Point *prev(GEO_Point *item) 00068 { return (GEO_Point *)rawPrev(item); } 00069 const GEO_Point *prev(const GEO_Point *p, const GB_PointGroup &g) const 00070 { return (const GEO_Point *)rawPrev(p, g); } 00071 GEO_Point *prev(GEO_Point *pt, const GB_PointGroup &grp) 00072 { return (GEO_Point *)rawPrev(pt, grp); } 00073 00074 GEO_Point *operator()(unsigned i) 00075 { 00076 return (GEO_Point *) 00077 UT_PtrArray<GB_Element *>::operator()(i); 00078 } 00079 const GEO_Point *operator()(unsigned i) const 00080 { 00081 return (const GEO_Point *) 00082 UT_PtrArray<GB_Element *>::operator()(i); 00083 } 00084 00085 GEO_Point *operator[](unsigned i) 00086 { 00087 return (GEO_Point *) 00088 UT_PtrArray<GB_Element *>::operator[](i); 00089 } 00090 const GEO_Point *operator[](unsigned i) const 00091 { 00092 return (const GEO_Point *) 00093 UT_PtrArray<GB_Element *>::operator[](i); 00094 } 00095 protected: 00096 }; 00097 00098 #endif
1.5.9