XdkWrl: sfimage.h Source File

Home | Hierarchy | Members | Alphabetical | Related Pages

# sfimage.h

Go to the documentation of this file.

    00001 #ifndef XDKWRL_SFIMAGE_H
    00002 #define XDKWRL_SFIMAGE_H
    00003
    00004 #include <xdkwrl/config.h>
    00005 #include <xdkwrl/fieldtypes.h>
    00006 #include <iostream>
    00007 #include <iomanip>
    00008
    00009 namespace wrl
    00010 {
    00011   //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    00012   // Interface of  SFImage
    00013   //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    00014   /*! \ingroup fieldtypes
    00015    *
    00016    * Represents an image. Below is included the documentation for this field
    00017    * type from the ISO standard.
    00018    * \htmlinclude sfimage.html
    00019    */
    00020   class XDKWRL_EXPORT SFImage
    00021   {
    00022   public:
    00023     inline SFImage();
    00024     inline SFImage(unsigned int w,
    00025                    unsigned int h,
    00026                    unsigned int n);
    00027     SFImage(const SFImage& i);
    00028     SFImage& operator=(const SFImage&);
    00029     inline ~SFImage();
    00030     inline void setDimensions(unsigned int w,
    00031                               unsigned int h,
    00032                               unsigned int n);
    00033     inline unsigned int width() const;
    00034     inline unsigned int height() const;
    00035     inline unsigned int numComponents() const;
    00036     inline unsigned char* pixels() const;
    00037     inline unsigned char* pixels();
    00038     static inline const char* typeName();
    00039     static inline FieldTypeId typeId();
    00040     inline bool operator==(const SFImage& i) const;
    00041     friend std::ostream& operator<<(std::ostream& s,const SFImage& f);
    00042   protected:
    00043   public:
    00044     unsigned int   width_;
    00045     unsigned int   height_;
    00046     unsigned int   numComponents_;
    00047     unsigned char* pixels_;
    00048   };
    00049   //************************************************************
    00050   // Implementation of
    00051   //************************************************************
    00052   // TODO: implement reference counting
    00053   inline
    00054   SFImage::SFImage()
    00055     : width_(0),height_(0),numComponents_(0),pixels_(NULL)
    00056   {
    00057   }
    00058   inline void
    00059   SFImage::setDimensions(unsigned int w,
    00060                          unsigned int h,
    00061                          unsigned int n)
    00062   {
    00063     if (pixels_ != NULL)
    00064     {
    00065       delete [] pixels_;
    00066     }
    00067     width_ = w;
    00068     height_ = h;
    00069     numComponents_ = n;
    00070     pixels_ = new unsigned char[w*h*n];
    00071   }
    00072   inline
    00073   SFImage::SFImage(unsigned int w,
    00074                    unsigned int h,
    00075                    unsigned int n)
    00076     : width_(w),height_(h),numComponents_(n)
    00077   {
    00078     pixels_ = new unsigned char[w*h*n];
    00079   }
    00080   inline
    00081   SFImage::~SFImage()
    00082   {
    00083     if (pixels_ != NULL)
    00084     {
    00085       delete [] pixels_;
    00086     }
    00087   }
    00088   inline unsigned int
    00089   SFImage::width() const
    00090   {
    00091     return width_;
    00092   }
    00093   inline unsigned int
    00094   SFImage::height() const
    00095   {
    00096     return height_;
    00097   }
    00098   inline unsigned int
    00099   SFImage::numComponents() const
    00100   {
    00101     return numComponents_;
    00102   }
    00103   inline unsigned char*
    00104   SFImage::pixels() const
    00105   {
    00106     return pixels_;
    00107   }
    00108   inline unsigned char*
    00109   SFImage::pixels()
    00110   {
    00111     return pixels_;
    00112   }
    00113   inline const char*
    00114   SFImage::typeName()
    00115   {
    00116     return "SFImage";
    00117   }
    00118   inline FieldTypeId
    00119   SFImage::typeId()
    00120   {
    00121     return sfImage;
    00122   }
    00123   inline bool
    00124   SFImage::operator==(const SFImage&) const
    00125   {
    00126     return false; // TODO:
    00127   }
    00128 }
    00129
    00130 #endif // XDKWRL_SFIMAGE_H

Generated on 5 Jan 2007 with version 1.5.1. |