home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / flash078.zip / flashsource-r0_7_8.zip / FMorph.cpp < prev    next >
C/C++ Source or Header  |  2001-02-23  |  3KB  |  130 lines

  1. #include "FBase.h"
  2. #include "FMorph.h"
  3. #include <strstream>
  4. #include <iostream>
  5.  
  6. void FlashMorphGradientRecord::Write(std::ostream &out)
  7. {
  8.     c1.SetAlphaWriteMode(true);
  9.     c2.SetAlphaWriteMode(true);
  10.     out.put(r1);
  11.     out << c1;
  12.     out.put(r2);
  13.     out << c2;
  14. }
  15.  
  16. void FlashMorphGradient::Write(std::ostream &out)
  17. {
  18.     out.put(records.size());
  19.     for(std::vector<FlashMorphGradientRecord>::iterator i=records.begin();
  20.         i != records.end(); i++)
  21.         {
  22.             (*i).Write(out);
  23.         }
  24. }
  25.  
  26. void FlashMorphFillStyleSolid::Write(std::ostream &out)
  27. {
  28.     out.put(0x00);
  29.     c1.SetAlphaWriteMode(true);
  30.     c2.SetAlphaWriteMode(true);
  31.     out << c1;
  32.     out << c2;
  33. }
  34.  
  35. void FlashMorphFillStyleLinear::Write(std::ostream &out)
  36. {
  37.     out.put(0x10);
  38.     out << fm1;
  39.     out << fm2;
  40.     fmg.Write(out);
  41. }
  42.  
  43. void FlashMorphFillStyleRadial::Write(std::ostream &out)
  44. {
  45.     out.put(0x12);
  46.     out << fm1;
  47.     out << fm2;
  48.     fmg.Write(out);
  49. }
  50.  
  51. void FlashMorphFillStyles::Write(std::ostream &out)
  52. {
  53.     if(fillStyles.size() >= 0xff)
  54.     {
  55.         out.put((char)0xff);
  56.         WRITE_UWORD(fillStyles.size());
  57.     }
  58.     else 
  59.     {
  60.         out.put(fillStyles.size());
  61.     }
  62.     for(std::vector<FlashMorphFillStyle *>::iterator i=fillStyles.begin();
  63.         i != fillStyles.end(); i++)
  64.         {
  65.             (*i)->Write(out);
  66.         }
  67. }
  68.  
  69. void FlashMorphLineStyle::Write(std::ostream &out)
  70. {
  71.     WRITE_UWORD(w1);
  72.     WRITE_UWORD(w2);
  73.     c1.SetAlphaWriteMode(true);
  74.     c2.SetAlphaWriteMode(true);
  75.     out << c1;
  76.     out << c2;
  77. }
  78.  
  79. void FlashMorphLineStyles::Write(std::ostream &out)
  80. {
  81.     if(lineStyles.size() >= 0xff)
  82.     {
  83.         out.put((char)0xff);
  84.         WRITE_UWORD(lineStyles.size());
  85.     }
  86.     else 
  87.     {
  88.         out.put(lineStyles.size());
  89.     }
  90.     for(std::vector<FlashMorphLineStyle>::iterator i=lineStyles.begin();
  91.         i != lineStyles.end(); i++)
  92.         {
  93.             (*i).Write(out);
  94.         }
  95. }
  96. void FlashMorphFillStyleBitmap::Write(std::ostream &out)
  97. {
  98.     out.put((char)(tiled ? 0x40  : 0x41));
  99.     WRITE_UWORD(bitmapID);
  100.     out << mstart;
  101.     out << mend;
  102. }
  103.  
  104. std::ostream &operator<< (std::ostream &out, FlashTagDefineMorphShape &data)
  105. {
  106.     std::ostrstream tmp;
  107.     std::ostrstream tmp2;
  108.     WRITE_UWORD2(data.GetID(),tmp);
  109.     tmp << data.s1.GetBounds();
  110.     tmp << data.s2.GetBounds();
  111.  
  112.     data.fs1.Write(tmp2);
  113.     data.fs2.Write(tmp2);
  114.     tmp2 << data.s1;
  115.     WRITE_UDWORD2(tmp2.pcount(),tmp);
  116.     
  117.     tmp.write(tmp2.rdbuf()->str(), tmp2.pcount());    
  118.     tmp << data.s2;
  119.     
  120.     out << FlashTagHeader(46, tmp.pcount());
  121.     out.write(tmp.rdbuf()->str(), tmp.pcount());
  122.     return out;
  123. }
  124.  
  125. std::istream &operator>> (std::istream &in,  FlashTagDefineMorphShape &data)
  126. {
  127.     return in;
  128. }
  129.     
  130.