gxpointset.cc

Go to the documentation of this file.
00001 
00003 
00004 //
00005 // Copyright (c) 2002-2004 California Institute of Technology
00006 // Copyright (c) 2004-2007 University of Southern California
00007 // Rob Peters <rjpeters at usc dot edu>
00008 //
00009 // created: Fri Jul  5 12:46:27 2002
00010 // commit: $Id: gxpointset.cc 10065 2007-04-12 05:54:56Z rjpeters $
00011 // $HeadURL: file:///lab/rjpeters/svnrepo/code/trunk/groovx/src/gfx/gxpointset.cc $
00012 //
00013 // --------------------------------------------------------------------
00014 //
00015 // This file is part of GroovX.
00016 //   [http://ilab.usc.edu/rjpeters/groovx/]
00017 //
00018 // GroovX is free software; you can redistribute it and/or modify it
00019 // under the terms of the GNU General Public License as published by
00020 // the Free Software Foundation; either version 2 of the License, or
00021 // (at your option) any later version.
00022 //
00023 // GroovX is distributed in the hope that it will be useful, but
00024 // WITHOUT ANY WARRANTY; without even the implied warranty of
00025 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00026 // General Public License for more details.
00027 //
00028 // You should have received a copy of the GNU General Public License
00029 // along with GroovX; if not, write to the Free Software Foundation,
00030 // Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
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 // actions //
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

The software described here is Copyright (c) 1998-2005, Rob Peters.
This page was generated Wed Dec 3 06:49:38 2008 by Doxygen version 1.5.5.