Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members  

FMorph.h

Go to the documentation of this file.
00001 #ifndef FLASH_MORPH_H_FILE
00002 #define FLASH_MORPH_H_FILE
00003 #include "FShape.h"
00004 #include <vector>
00005 
00006 class FlashMorphGradientRecord 
00007 {
00008 public:
00009         FlashMorphGradientRecord(unsigned char _r1, FlashRGB _c1, unsigned char _r2, FlashRGB _c2) : r1(_r1), c1(_c1), r2(_r2), c2(_c2) {}
00010         void Write(std::ostream &out);
00011 private:
00012         unsigned char r1;
00013         FlashRGB c1;
00014         unsigned char r2;
00015         FlashRGB c2;
00016 };
00017 
00018 class FlashMorphGradient
00019 {
00020 public:
00021         FlashMorphGradient() {}
00022         
00023         void AddRecord(const FlashMorphGradientRecord &r) { records.push_back(r); }
00024         void Write(std::ostream &out);
00025 private:
00026         std::vector<FlashMorphGradientRecord> records;
00027 };
00028 
00029 class FlashMorphFillStyle
00030 {
00031 public:
00032         FlashMorphFillStyle() {}
00033         virtual void Write(std::ostream &out) = 0;
00034 };
00035 
00036 class FlashMorphFillStyleSolid : public FlashMorphFillStyle
00037 {
00038 public:
00039         FlashMorphFillStyleSolid(FlashRGB &_c1, FlashRGB &_c2) : c1(_c1), c2(_c2) {}
00040         virtual void Write(std::ostream &out);
00041 private:
00042         FlashRGB c1;
00043         FlashRGB c2;
00044 };
00045 
00046 class FlashMorphFillStyleLinear : public FlashMorphFillStyle
00047 {
00048 public:
00049         FlashMorphFillStyleLinear(FlashMatrix &_fm1, FlashMatrix &_fm2, FlashMorphGradient& _fmg) : fm1(_fm1), fm2(_fm2), fmg(_fmg) {}
00050         virtual void Write(std::ostream &out);
00051 private:        
00052         FlashMatrix fm1;
00053         FlashMatrix fm2;
00054         FlashMorphGradient fmg;
00055 
00056 };
00057 class FlashMorphFillStyleRadial : public FlashMorphFillStyle
00058 {
00059 public:
00060         FlashMorphFillStyleRadial(FlashMatrix &_fm1, FlashMatrix &_fm2, FlashMorphGradient& _fmg) : fm1(_fm1), fm2(_fm2), fmg(_fmg) {}
00061         virtual void Write(std::ostream &out);
00062 private:        
00063         FlashMatrix fm1;
00064         FlashMatrix fm2;
00065         FlashMorphGradient fmg;
00066 };
00067 class FlashMorphFillStyleBitmap : public FlashMorphFillStyle
00068 {
00069 public:
00070         FlashMorphFillStyleBitmap(UWORD _bitmapID, FlashMatrix &_mstart, FlashMatrix &_mend, bool _tiled=false) :
00071           bitmapID(_bitmapID), mstart(_mstart), mend(_mend), tiled(_tiled) {}
00072         virtual void Write(std::ostream &out);
00073 private:
00074         UWORD bitmapID;
00075         FlashMatrix mstart;
00076         FlashMatrix mend;
00077         bool tiled;
00078 
00079 };
00080 
00081 class FlashMorphFillStyles
00082 {
00083 public:
00084         FlashMorphFillStyles() {}
00085         size_t AddFillStyle(FlashMorphFillStyle* s) { fillStyles.push_back(s); return fillStyles.size();}
00086         void Write(std::ostream &out);
00087 private:
00088         std::vector<FlashMorphFillStyle*> fillStyles;
00089 };
00090 
00091 class FlashMorphLineStyle
00092 {
00093 public:
00094         FlashMorphLineStyle(UWORD _w1, FlashRGB _c1, UWORD _w2, FlashRGB _c2) : w1(_w1), c1(_c1), w2(_w2), c2(_c2) {}
00095         void Write(std::ostream &out);
00096 private:
00097         UWORD w1;
00098         FlashRGB c1;
00099         UWORD w2;
00100         FlashRGB c2;
00101 
00102 };
00103 
00104 class FlashMorphLineStyles
00105 {
00106 public:
00107         FlashMorphLineStyles() {}
00108         size_t AddFillStyle(FlashMorphLineStyle &s) { lineStyles.push_back(s); return lineStyles.size();}
00109         void Write(std::ostream &out);
00110 private:
00111         std::vector<FlashMorphLineStyle> lineStyles;
00112 };
00113 
00114 class FlashTagDefineMorphShape : public FlashTag, public FlashIDEnabled
00115 {
00116 DEFINE_RW_INTERFACE
00117 public: 
00118         FlashTagDefineMorphShape(FlashShape &_s1, FlashShape &_s2) : s1(_s1), s2(_s2) {}
00119         
00120         void SetMorphFillStyles(FlashMorphFillStyles &s) { fs1=s; }
00121         void SetMorphLineStyles(FlashMorphLineStyles &s) { fs2=s; }
00122 
00123     friend std::ostream &operator<< (std::ostream &out, FlashTagDefineMorphShape &data);
00124         friend std::istream &operator>> (std::istream &in,  FlashTagDefineMorphShape &data);
00125 
00126 private:
00127         FlashShape s1;
00128         FlashShape s2;
00129 
00130         FlashMorphFillStyles fs1;
00131         FlashMorphLineStyles fs2;
00132 
00133 
00134 };
00135 
00136 #endif

Generated at Wed Aug 1 13:33:51 2001 for SWFSource by doxygen1.2.9 written by Dimitri van Heesch, © 1997-2001