gxcolor.cc

Go to the documentation of this file.
00001 
00003 
00004 //
00005 // Copyright (c) 2001-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: Wed Aug 22 17:45:52 2001
00010 // commit: $Id: gxcolor.cc 10065 2007-04-12 05:54:56Z rjpeters $
00011 // $HeadURL: file:///lab/rjpeters/svnrepo/code/trunk/groovx/src/gfx/gxcolor.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_GXCOLOR_CC_UTC20050626084025_DEFINED
00035 #define GROOVX_GFX_GXCOLOR_CC_UTC20050626084025_DEFINED
00036 
00037 #include "gfx/gxcolor.h"
00038 
00039 #include "gfx/canvas.h"
00040 
00041 #include "io/reader.h"
00042 #include "io/writer.h"
00043 
00044 namespace
00045 {
00046   const io::version_id GXCOLOR_SVID = 1;
00047 }
00048 
00049 GxColor::GxColor() :
00050   FieldContainer(&sigNodeChanged),
00051   rgbaColor(1.0)
00052 {
00053   setFieldMap(GxColor::classFields());
00054 }
00055 
00056 GxColor::~GxColor() throw() {}
00057 
00058 io::version_id GxColor::class_version_id() const
00059 {
00060   return GXCOLOR_SVID;
00061 }
00062 
00063 void GxColor::read_from(io::reader& reader)
00064 {
00065   reader.ensure_version_id("GxColor", 1,
00066                            "Try groovx0.8a7", SRC_POS);
00067 
00068   readFieldsFrom(reader, classFields());
00069 }
00070 
00071 void GxColor::write_to(io::writer& writer) const
00072 {
00073   writer.ensure_output_version_id("GxColor", GXCOLOR_SVID, 1,
00074                               "Try groovx0.8a7", SRC_POS);
00075 
00076   writeFieldsTo(writer, classFields(), GXCOLOR_SVID);
00077 }
00078 
00079 const FieldMap& GxColor::classFields()
00080 {
00081   static const Field FIELD_ARRAY[] =
00082   {
00083     Field("rgba", Field::ValueType(), &GxColor::rgbaColor,
00084           "0.0 0.0 0.0 0.0", "0.0 0.0 0.0 0.0", "1.0 1.0 1.0 1.0",
00085           "0.01 0.01 0.01 0.01", Field::NEW_GROUP | Field::MULTI)
00086   };
00087 
00088   static FieldMap GXCOLOR_FIELDS(FIELD_ARRAY);
00089 
00090   return GXCOLOR_FIELDS;
00091 }
00092 
00093 void GxColor::getBoundingCube(Gfx::Bbox&) const
00094 {
00095   ; // do nothing, since GxColor doesn't actually draw anything on-screen
00096 }
00097 
00098 void GxColor::draw(Gfx::Canvas& canvas) const
00099 {
00100   canvas.setColor(rgbaColor);
00101 }
00102 
00103 static const char __attribute__((used)) vcid_groovx_gfx_gxcolor_cc_utc20050626084025[] = "$Id: gxcolor.cc 10065 2007-04-12 05:54:56Z rjpeters $ $HeadURL: file:
00104 #endif // !GROOVX_GFX_GXCOLOR_CC_UTC20050626084025_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.