00001
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00033
00034 #ifndef GROOVX_GFX_GXPOINTSET_CC_UTC20050626084024_DEFINED
00035 #define GROOVX_GFX_GXPOINTSET_CC_UTC20050626084024_DEFINED
00036
00037 #include "gfx/gxpointset.h"
00038
00039 #include "geom/box.h"
00040
00041 #include "gfx/bbox.h"
00042 #include "gfx/canvas.h"
00043
00044 #include "io/reader.h"
00045 #include "io/writer.h"
00046
00047 #include "rutz/trace.h"
00048
00049 namespace
00050 {
00051 const int GXPOINTSET_SVID = 0;
00052 }
00053
00054 const FieldMap& GxPointSet::classFields()
00055 {
00056 GVX_TRACE("GxPointSet::classFields");
00057 static const Field FIELD_ARRAY[] =
00058 {
00059 Field("points", Field::ValueType(), &GxPointSet::itsPoints,
00060 "", "", "", "", Field::NEW_GROUP | Field::STRING),
00061 Field("style", &GxPointSet::itsStyle, 0, 0, 10, 1),
00062 };
00063
00064 static FieldMap FIELD_MAP(FIELD_ARRAY);
00065
00066 return FIELD_MAP;
00067 }
00068
00069 GxPointSet* GxPointSet::make()
00070 {
00071 GVX_TRACE("GxPointSet::make");
00072 return new GxPointSet;
00073 }
00074
00075 GxPointSet::GxPointSet() :
00076 FieldContainer(&sigNodeChanged),
00077 itsPoints(),
00078 itsStyle(Gfx::Canvas::LINE_STRIP)
00079 {
00080 GVX_TRACE("GxPointSet::GxPointSet");
00081 setFieldMap(GxPointSet::classFields());
00082 }
00083
00084 GxPointSet::~GxPointSet() throw()
00085 {
00086 GVX_TRACE("GxPointSet::~GxPointSet");
00087 }
00088
00089 io::version_id GxPointSet::class_version_id() const
00090 {
00091 GVX_TRACE("GxPointSet::class_version_id");
00092 return GXPOINTSET_SVID;
00093 }
00094
00095 void GxPointSet::read_from(io::reader& reader)
00096 {
00097 GVX_TRACE("GxPointSet::read_from");
00098 readFieldsFrom(reader, classFields());
00099 }
00100
00101 void GxPointSet::write_to(io::writer& writer) const
00102 {
00103 GVX_TRACE("GxPointSet::write_to");
00104 writeFieldsTo(writer, classFields(), GXPOINTSET_SVID);
00105 }
00106
00108
00110
00111 void GxPointSet::getBoundingCube(Gfx::Bbox& bbox) const
00112 {
00113 GVX_TRACE("GxPointSet::getBoundingCube");
00114
00115 for (unsigned int i = 0; i < itsPoints.array_size(); ++i)
00116 bbox.vertex3(itsPoints.array_at(i));
00117 }
00118
00119 void GxPointSet::draw(Gfx::Canvas& canvas) const
00120 {
00121 GVX_TRACE("GxPointSet::draw");
00122
00123 canvas.begin(Gfx::Canvas::VertexStyle(itsStyle));
00124
00125 for (unsigned int i = 0; i < itsPoints.array_size(); ++i)
00126 canvas.vertex3(itsPoints.array_at(i));
00127
00128 canvas.end();
00129 }
00130
00131 static const char __attribute__((used)) vcid_groovx_gfx_gxpointset_cc_utc20050626084024[] = "$Id: gxpointset.cc 10065 2007-04-12 05:54:56Z rjpeters $ $HeadURL: file:
00132 #endif // !GROOVX_GFX_GXPOINTSET_CC_UTC20050626084024_DEFINED