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_VISX_FISH_H_UTC20050626084015_DEFINED
00035 #define GROOVX_VISX_FISH_H_UTC20050626084015_DEFINED
00036
00037 #include "gfx/gxshapekit.h"
00038
00039 #include "rutz/tracer.h"
00040
00042
00049
00050
00051 class Fish : public GxShapeKit
00052 {
00053 private:
00054 Fish(const Fish&);
00055 Fish& operator=(const Fish&);
00056
00057 struct Part;
00058 Part* itsParts;
00059
00060 void restoreToDefault();
00061
00062 void readSplineFile(const char* splinefile);
00063 void readCoordFile(const char* coordfile, int index);
00064
00065
00066
00067 void updatePtrs();
00068
00069 protected:
00074 Fish(const char* splinefile=0, const char* coordfile=0, int index=0);
00075
00076 public:
00077
00079 static Fish* make();
00080
00082 static Fish* makeFromFiles(const char* splinefile,
00083 const char* coordfile, int index);
00084
00086 virtual ~Fish() throw();
00087
00088 virtual io::version_id class_version_id() const;
00089 virtual void read_from(io::reader& reader);
00090 virtual void write_to(io::writer& writer) const;
00091
00093 static const FieldMap& classFields();
00094
00096 static rutz::tracer tracer;
00097
00099
00101
00102 virtual int category() const
00103 { return itsFishCategory; }
00104 virtual void setCategory(int val)
00105 { itsFishCategory = val; this->sigNodeChanged.emit(); }
00106
00107 private:
00110 int itsFishCategory;
00111
00113 double* itsDorsalFinCoord;
00114
00116 double* itsTailFinCoord;
00117
00119 double* itsLowerFinCoord;
00120
00122 double* itsMouthCoord;
00123
00125 int itsCurrentPart;
00126
00128 int* itsCurrentPartBkpt;
00129
00132 bool inColor;
00133
00135 bool showControlPoints;
00136
00138 int partsMask;
00139
00141 double swimStroke;
00142
00144
00146
00147 protected:
00148 virtual void grGetBoundingBox(Gfx::Bbox& bbox) const;
00149
00150 virtual void grRender(Gfx::Canvas& canvas) const;
00151 };
00152
00153 static const char __attribute__((used)) vcid_groovx_visx_fish_h_utc20050626084015[] = "$Id: fish.h 10065 2007-04-12 05:54:56Z rjpeters $ $HeadURL: file:
00154 #endif // !GROOVX_VISX_FISH_H_UTC20050626084015_DEFINED