Update to 2.0.0 tree from current Fremantle build
[opencv] / otherlibs / _graphics / include / OpenEXR / ImfAttribute.h
diff --git a/otherlibs/_graphics/include/OpenEXR/ImfAttribute.h b/otherlibs/_graphics/include/OpenEXR/ImfAttribute.h
deleted file mode 100644 (file)
index 45d62ff..0000000
+++ /dev/null
@@ -1,422 +0,0 @@
-///////////////////////////////////////////////////////////////////////////
-//
-// Copyright (c) 2004, Industrial Light & Magic, a division of Lucas
-// Digital Ltd. LLC
-// 
-// All rights reserved.
-// 
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-// *       Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-// *       Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-// *       Neither the name of Industrial Light & Magic nor the names of
-// its contributors may be used to endorse or promote products derived
-// from this software without specific prior written permission. 
-// 
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-//
-///////////////////////////////////////////////////////////////////////////
-
-
-
-#ifndef INCLUDED_IMF_ATTRIBUTE_H
-#define INCLUDED_IMF_ATTRIBUTE_H
-
-//-----------------------------------------------------------------------------
-//
-//     class Attribute
-//
-//-----------------------------------------------------------------------------
-
-#include "IexBaseExc.h"
-#include <ImfIO.h>
-#include <ImfXdr.h>
-
-
-namespace Imf {
-
-
-class Attribute
-{
-  public:
-
-    //---------------------------
-    // Constructor and destructor
-    //---------------------------
-
-    Attribute ();
-    virtual ~Attribute ();
-
-
-    //-------------------------------
-    // Get this attribute's type name
-    //-------------------------------
-
-    virtual const char *       typeName () const = 0;
-
-
-    //------------------------------
-    // Make a copy of this attribute
-    //------------------------------
-
-    virtual Attribute *                copy () const = 0;
-
-
-    //----------------------------------------
-    // Type-specific attribute I/O and copying
-    //----------------------------------------
-
-    virtual void               writeValueTo (OStream &os,
-                                             int version) const = 0;
-
-    virtual void               readValueFrom (IStream &is,
-                                              int size,
-                                              int version) = 0;
-
-    virtual void               copyValueFrom (const Attribute &other) = 0;
-
-
-    //------------------
-    // Attribute factory
-    //------------------
-
-    static Attribute *         newAttribute (const char typeName[]);
-
-
-    //-----------------------------------------------------------
-    // Test if a given attribute type has already been registered
-    //-----------------------------------------------------------
-
-    static bool                        knownType (const char typeName[]);
-
-
-  protected:
-
-    //--------------------------------------------------
-    // Register an attribute type so that newAttribute()
-    // knows how to make objects of this type.
-    //--------------------------------------------------
-
-    static void                registerAttributeType (const char typeName[],
-                                              Attribute *(*newAttribute)());
-
-    //------------------------------------------------------
-    // Un-register an attribute type so that newAttribute()
-    // no longer knows how to make objects of this type (for
-    // debugging only).
-    //------------------------------------------------------
-
-    static void                unRegisterAttributeType (const char typeName[]);
-};
-
-
-//-------------------------------------------------
-// Class template for attributes of a specific type
-//-------------------------------------------------
-
-template <class T>
-class TypedAttribute: public Attribute
-{
-  public:
-
-    //----------------------------
-    // Constructors and destructor
-    //------------_---------------
-
-    TypedAttribute ();
-    TypedAttribute (const T &value);
-    TypedAttribute (const TypedAttribute<T> &other);
-    virtual ~TypedAttribute ();
-
-
-    //--------------------------------
-    // Access to the attribute's value
-    //--------------------------------
-
-    T &                                        value ();
-    const T &                          value () const;
-
-
-    //--------------------------------
-    // Get this attribute's type name.
-    //--------------------------------
-
-    virtual const char *               typeName () const;
-    
-
-    //---------------------------------------------------------
-    // Static version of typeName()
-    // This function must be specialized for each value type T.
-    //---------------------------------------------------------
-
-    static const char *                        staticTypeName ();
-    
-
-    //---------------------
-    // Make a new attribute
-    //---------------------
-
-    static Attribute *                 makeNewAttribute ();
-
-
-    //------------------------------
-    // Make a copy of this attribute
-    //------------------------------
-
-    virtual Attribute *                        copy () const;
-
-
-    //-----------------------------------------------------------------
-    // Type-specific attribute I/O and copying.
-    // Depending on type T, these functions may have to be specialized.
-    //-----------------------------------------------------------------
-
-    virtual void               writeValueTo (OStream &os,
-                                             int version) const;
-
-    virtual void               readValueFrom (IStream &is,
-                                              int size,
-                                              int version);
-
-    virtual void               copyValueFrom (const Attribute &other);
-
-
-    //------------------------------------------------------------
-    // Dynamic casts that throw exceptions instead of returning 0.
-    //------------------------------------------------------------
-
-    static TypedAttribute *            cast (Attribute *attribute);
-    static const TypedAttribute *      cast (const Attribute *attribute);
-    static TypedAttribute &            cast (Attribute &attribute);
-    static const TypedAttribute &      cast (const Attribute &attribute);
-
-
-    //---------------------------------------------------------------
-    // Register this attribute type so that Attribute::newAttribute()
-    // knows how to make objects of this type.
-    //
-    // Note that this function is not thread-safe because it modifies
-    // a global variable in the IlmIlm library.  A thread in a multi-
-    // threaded program may call registerAttributeType() only when no
-    // other thread is accessing any functions or classes in the
-    // IlmImf library.
-    //
-    //---------------------------------------------------------------
-
-    static void                                registerAttributeType ();
-
-
-    //-----------------------------------------------------
-    // Un-register this attribute type (for debugging only)
-    //-----------------------------------------------------
-
-    static void                                 unRegisterAttributeType ();
-
-
-  private:
-
-    T                                  _value;
-};
-
-
-//------------------------------------
-// Implementation of TypedAttribute<T>
-//------------------------------------
-
-template <class T>
-TypedAttribute<T>::TypedAttribute (): _value (T())
-{
-    // empty
-}
-
-
-template <class T>
-TypedAttribute<T>::TypedAttribute (const T &value): _value (value)
-{
-    // empty
-}
-
-
-template <class T>
-TypedAttribute<T>::TypedAttribute (const TypedAttribute<T> &other):
-    _value ()
-{
-    copyValueFrom (other);
-}
-
-
-template <class T>
-TypedAttribute<T>::~TypedAttribute ()
-{
-    // empty
-}
-
-
-template <class T>
-inline T &
-TypedAttribute<T>::value ()
-{
-    return _value;
-}
-
-
-template <class T>
-inline const T &
-TypedAttribute<T>::value () const
-{
-    return _value;
-}
-
-
-template <class T>
-const char *   
-TypedAttribute<T>::typeName () const
-{
-    return staticTypeName();
-}
-
-
-template <class T>
-Attribute *
-TypedAttribute<T>::makeNewAttribute ()
-{
-    return new TypedAttribute<T>();
-}
-
-
-template <class T>
-Attribute *
-TypedAttribute<T>::copy () const
-{
-    Attribute * attribute = new TypedAttribute<T>();
-    attribute->copyValueFrom (*this);
-    return attribute;
-}
-
-
-template <class T>
-void           
-TypedAttribute<T>::writeValueTo (OStream &os, int version) const
-{
-    Xdr::write <StreamIO> (os, _value);
-}
-
-
-template <class T>
-void           
-TypedAttribute<T>::readValueFrom (IStream &is, int size, int version)
-{
-    Xdr::read <StreamIO> (is, _value);
-}
-
-
-template <class T>
-void           
-TypedAttribute<T>::copyValueFrom (const Attribute &other)
-{
-    _value = cast(other)._value;
-}
-
-
-template <class T>
-TypedAttribute<T> *
-TypedAttribute<T>::cast (Attribute *attribute)
-{
-    TypedAttribute<T> *t =
-       dynamic_cast <TypedAttribute<T> *> (attribute);
-
-    if (t == 0)
-       throw Iex::TypeExc ("Unexpected attribute type.");
-
-    return t;
-}
-
-
-template <class T>
-const TypedAttribute<T> *
-TypedAttribute<T>::cast (const Attribute *attribute)
-{
-    const TypedAttribute<T> *t =
-       dynamic_cast <const TypedAttribute<T> *> (attribute);
-
-    if (t == 0)
-       throw Iex::TypeExc ("Unexpected attribute type.");
-
-    return t;
-}
-
-
-template <class T>
-inline TypedAttribute<T> &     
-TypedAttribute<T>::cast (Attribute &attribute)
-{
-    return *cast (&attribute);
-}
-
-
-template <class T>
-inline const TypedAttribute<T> &
-TypedAttribute<T>::cast (const Attribute &attribute)
-{
-    return *cast (&attribute);
-}
-
-
-template <class T>
-inline void
-TypedAttribute<T>::registerAttributeType ()
-{
-    Attribute::registerAttributeType (staticTypeName(), makeNewAttribute);
-}
-
-
-template <class T>
-inline void
-TypedAttribute<T>::unRegisterAttributeType ()
-{
-    Attribute::unRegisterAttributeType (staticTypeName());
-}
-
-
-} // namespace Imf
-
-#if defined(OPENEXR_DLL) && defined(_MSC_VER)
-    // Tell MS VC++ to disable "non dll-interface class used as base
-    // for dll-interface class" and "no suitable definition provided
-    // for explicit template"
-    #pragma warning (disable : 4275 4661)
-
-    #if defined (ILMIMF_EXPORTS)
-       #define IMF_EXPIMP_TEMPLATE
-    #else
-       #define IMF_EXPIMP_TEMPLATE extern
-    #endif
-
-    IMF_EXPIMP_TEMPLATE template class Imf::TypedAttribute<float>;
-    IMF_EXPIMP_TEMPLATE template class Imf::TypedAttribute<double>;
-
-    #pragma warning(default : 4251)
-    #undef EXTERN_TEMPLATE
-#endif
-
-// Metrowerks compiler wants the .cpp file inlined, too
-#ifdef __MWERKS__
-#include <ImfAttribute.cpp>
-#endif
-
-#endif