Linux ip-172-26-7-228 5.4.0-1103-aws #111~18.04.1-Ubuntu SMP Tue May 23 20:04:10 UTC 2023 x86_64
Apache
: 172.26.7.228 | : 3.15.233.150
Cant Read [ /etc/named.conf ]
5.6.40-24+ubuntu18.04.1+deb.sury.org+1
www-data
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
HASH IDENTIFIER
README
+ Create Folder
+ Create File
/
usr /
include /
OpenEXR /
[ HOME SHELL ]
Name
Size
Permission
Action
Iex.h
2.34
KB
-rw-r--r--
IexBaseExc.h
9.06
KB
-rw-r--r--
IexErrnoExc.h
7.37
KB
-rw-r--r--
IexExport.h
2.08
KB
-rw-r--r--
IexForward.h
5.1
KB
-rw-r--r--
IexMacros.h
5.63
KB
-rw-r--r--
IexMathExc.h
2.41
KB
-rw-r--r--
IexMathFloatExc.h
4.58
KB
-rw-r--r--
IexMathFpu.h
3.3
KB
-rw-r--r--
IexMathIeeeExc.h
2.3
KB
-rw-r--r--
IexNamespace.h
4.3
KB
-rw-r--r--
IexThrowErrnoExc.h
3.4
KB
-rw-r--r--
IlmBaseConfig.h
1.64
KB
-rw-r--r--
IlmThread.h
4.78
KB
-rw-r--r--
IlmThreadExport.h
2.15
KB
-rw-r--r--
IlmThreadForward.h
2.08
KB
-rw-r--r--
IlmThreadMutex.h
4.32
KB
-rw-r--r--
IlmThreadNamespace.h
4.54
KB
-rw-r--r--
IlmThreadPool.h
5.21
KB
-rw-r--r--
IlmThreadSemaphore.h
3.38
KB
-rw-r--r--
ImathBox.h
16.62
KB
-rw-r--r--
ImathBoxAlgo.h
22.35
KB
-rw-r--r--
ImathColor.h
14.87
KB
-rw-r--r--
ImathColorAlgo.h
7.08
KB
-rw-r--r--
ImathEuler.h
22.88
KB
-rw-r--r--
ImathExc.h
2.82
KB
-rw-r--r--
ImathExport.h
2.13
KB
-rw-r--r--
ImathForward.h
2.68
KB
-rw-r--r--
ImathFrame.h
6.6
KB
-rw-r--r--
ImathFrustum.h
22.26
KB
-rw-r--r--
ImathFrustumTest.h
14.77
KB
-rw-r--r--
ImathFun.h
5.99
KB
-rw-r--r--
ImathGL.h
4.52
KB
-rw-r--r--
ImathGLU.h
2.17
KB
-rw-r--r--
ImathHalfLimits.h
2.47
KB
-rw-r--r--
ImathInt64.h
2.4
KB
-rw-r--r--
ImathInterval.h
5.34
KB
-rw-r--r--
ImathLimits.h
7.76
KB
-rw-r--r--
ImathLine.h
4.74
KB
-rw-r--r--
ImathLineAlgo.h
7.68
KB
-rw-r--r--
ImathMath.h
7.17
KB
-rw-r--r--
ImathMatrix.h
82.42
KB
-rw-r--r--
ImathMatrixAlgo.h
37.97
KB
-rw-r--r--
ImathNamespace.h
4.38
KB
-rw-r--r--
ImathPlane.h
6.75
KB
-rw-r--r--
ImathPlatform.h
3.23
KB
-rw-r--r--
ImathQuat.h
20.94
KB
-rw-r--r--
ImathRandom.h
9.84
KB
-rw-r--r--
ImathRoots.h
5.62
KB
-rw-r--r--
ImathShear.h
13.85
KB
-rw-r--r--
ImathSphere.h
4.68
KB
-rw-r--r--
ImathVec.h
44.17
KB
-rw-r--r--
ImathVecAlgo.h
4.64
KB
-rw-r--r--
ImfAcesFile.h
10.27
KB
-rw-r--r--
ImfArray.h
6.79
KB
-rw-r--r--
ImfAttribute.h
10.36
KB
-rw-r--r--
ImfB44Compressor.h
3.67
KB
-rw-r--r--
ImfBoxAttribute.h
3.1
KB
-rw-r--r--
ImfCRgbaFile.h
12.5
KB
-rw-r--r--
ImfChannelList.h
11.2
KB
-rw-r--r--
ImfChannelListAttribute.h
2.69
KB
-rw-r--r--
ImfChromaticities.h
4.45
KB
-rw-r--r--
ImfChromaticitiesAttribute.h
2.74
KB
-rw-r--r--
ImfCompositeDeepScanLine.h
5.38
KB
-rw-r--r--
ImfCompression.h
3.25
KB
-rw-r--r--
ImfCompressionAttribute.h
2.71
KB
-rw-r--r--
ImfConvert.h
3.39
KB
-rw-r--r--
ImfDeepCompositing.h
5.97
KB
-rw-r--r--
ImfDeepFrameBuffer.h
8.79
KB
-rw-r--r--
ImfDeepImageState.h
3.67
KB
-rw-r--r--
ImfDeepImageStateAttribute.h
2.64
KB
-rw-r--r--
ImfDeepScanLineInputFile.h
11.01
KB
-rw-r--r--
ImfDeepScanLineInputPart.h
6.9
KB
-rw-r--r--
ImfDeepScanLineOutputFile.h
9.37
KB
-rw-r--r--
ImfDeepScanLineOutputPart.h
6.41
KB
-rw-r--r--
ImfDeepTiledInputFile.h
16.08
KB
-rw-r--r--
ImfDeepTiledInputPart.h
13.27
KB
-rw-r--r--
ImfDeepTiledOutputFile.h
18.1
KB
-rw-r--r--
ImfDeepTiledOutputPart.h
14.83
KB
-rw-r--r--
ImfDoubleAttribute.h
2.29
KB
-rw-r--r--
ImfEnvmap.h
11.29
KB
-rw-r--r--
ImfEnvmapAttribute.h
2.67
KB
-rw-r--r--
ImfExport.h
2.11
KB
-rw-r--r--
ImfFloatAttribute.h
2.26
KB
-rw-r--r--
ImfForward.h
3.48
KB
-rw-r--r--
ImfFrameBuffer.h
11.18
KB
-rw-r--r--
ImfFramesPerSecond.h
3.79
KB
-rw-r--r--
ImfGenericInputFile.h
2.26
KB
-rw-r--r--
ImfGenericOutputFile.h
2.44
KB
-rw-r--r--
ImfHeader.h
19.27
KB
-rw-r--r--
ImfHuf.h
2.86
KB
-rw-r--r--
ImfIO.h
7.45
KB
-rw-r--r--
ImfInputFile.h
8.28
KB
-rw-r--r--
ImfInputPart.h
3.52
KB
-rw-r--r--
ImfInt64.h
2.24
KB
-rw-r--r--
ImfIntAttribute.h
2.27
KB
-rw-r--r--
ImfKeyCode.h
4.9
KB
-rw-r--r--
ImfKeyCodeAttribute.h
2.65
KB
-rw-r--r--
ImfLineOrder.h
2.42
KB
-rw-r--r--
ImfLineOrderAttribute.h
2.67
KB
-rw-r--r--
ImfLut.h
5.12
KB
-rw-r--r--
ImfMatrixAttribute.h
3.65
KB
-rw-r--r--
ImfMisc.h
16.33
KB
-rw-r--r--
ImfMultiPartInputFile.h
3.94
KB
-rw-r--r--
ImfMultiPartOutputFile.h
4.29
KB
-rw-r--r--
ImfMultiView.h
6.29
KB
-rw-r--r--
ImfName.h
3.52
KB
-rw-r--r--
ImfNamespace.h
4.46
KB
-rw-r--r--
ImfOpaqueAttribute.h
3.55
KB
-rw-r--r--
ImfOutputFile.h
9.66
KB
-rw-r--r--
ImfOutputPart.h
3.04
KB
-rw-r--r--
ImfPartHelper.h
7.66
KB
-rw-r--r--
ImfPartType.h
2.38
KB
-rw-r--r--
ImfPixelType.h
2.34
KB
-rw-r--r--
ImfPreviewImage.h
4.65
KB
-rw-r--r--
ImfPreviewImageAttribute.h
2.68
KB
-rw-r--r--
ImfRational.h
3.17
KB
-rw-r--r--
ImfRationalAttribute.h
2.63
KB
-rw-r--r--
ImfRgba.h
3.08
KB
-rw-r--r--
ImfRgbaFile.h
13.09
KB
-rw-r--r--
ImfRgbaYca.h
8.21
KB
-rw-r--r--
ImfStandardAttributes.h
13.26
KB
-rw-r--r--
ImfStringAttribute.h
2.58
KB
-rw-r--r--
ImfStringVectorAttribute.h
2.7
KB
-rw-r--r--
ImfTestFile.h
3.55
KB
-rw-r--r--
ImfThreading.h
4.24
KB
-rw-r--r--
ImfTileDescription.h
3.13
KB
-rw-r--r--
ImfTileDescriptionAttribute.h
2.7
KB
-rw-r--r--
ImfTiledInputFile.h
13.82
KB
-rw-r--r--
ImfTiledInputPart.h
4.55
KB
-rw-r--r--
ImfTiledOutputFile.h
17.83
KB
-rw-r--r--
ImfTiledOutputPart.h
4.75
KB
-rw-r--r--
ImfTiledRgbaFile.h
15.89
KB
-rw-r--r--
ImfTimeCode.h
7
KB
-rw-r--r--
ImfTimeCodeAttribute.h
2.64
KB
-rw-r--r--
ImfVecAttribute.h
4.45
KB
-rw-r--r--
ImfVersion.h
4.64
KB
-rw-r--r--
ImfWav.h
2.73
KB
-rw-r--r--
ImfXdr.h
18.74
KB
-rw-r--r--
OpenEXRConfig.h
1.8
KB
-rw-r--r--
half.h
17.22
KB
-rw-r--r--
halfExport.h
757
B
-rw-r--r--
halfFunction.h
4.83
KB
-rw-r--r--
halfLimits.h
3.73
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : ImfHeader.h
/////////////////////////////////////////////////////////////////////////// // // 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_HEADER_H #define INCLUDED_IMF_HEADER_H //----------------------------------------------------------------------------- // // class Header // //----------------------------------------------------------------------------- #include "ImfLineOrder.h" #include "ImfCompression.h" #include "ImfName.h" #include "ImfTileDescription.h" #include "ImfInt64.h" #include "ImathVec.h" #include "ImathBox.h" #include "IexBaseExc.h" #include "ImfForward.h" #include "ImfNamespace.h" #include "ImfExport.h" #include <map> #include <iosfwd> #include <string> OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER using std::string; class IMF_EXPORT Header { public: //---------------------------------------------------------------- // Default constructor -- the display window and the data window // are both set to Box2i (V2i (0, 0), V2i (width-1, height-1). //---------------------------------------------------------------- Header (int width = 64, int height = 64, float pixelAspectRatio = 1, const IMATH_NAMESPACE::V2f &screenWindowCenter = IMATH_NAMESPACE::V2f (0, 0), float screenWindowWidth = 1, LineOrder lineOrder = INCREASING_Y, Compression = ZIP_COMPRESSION); //-------------------------------------------------------------------- // Constructor -- the data window is specified explicitly; the display // window is set to Box2i (V2i (0, 0), V2i (width-1, height-1). //-------------------------------------------------------------------- Header (int width, int height, const IMATH_NAMESPACE::Box2i &dataWindow, float pixelAspectRatio = 1, const IMATH_NAMESPACE::V2f &screenWindowCenter = IMATH_NAMESPACE::V2f (0, 0), float screenWindowWidth = 1, LineOrder lineOrder = INCREASING_Y, Compression = ZIP_COMPRESSION); //---------------------------------------------------------- // Constructor -- the display window and the data window are // both specified explicitly. //---------------------------------------------------------- Header (const IMATH_NAMESPACE::Box2i &displayWindow, const IMATH_NAMESPACE::Box2i &dataWindow, float pixelAspectRatio = 1, const IMATH_NAMESPACE::V2f &screenWindowCenter = IMATH_NAMESPACE::V2f (0, 0), float screenWindowWidth = 1, LineOrder lineOrder = INCREASING_Y, Compression = ZIP_COMPRESSION); //----------------- // Copy constructor //----------------- Header (const Header &other); //----------- // Destructor //----------- ~Header (); //----------- // Assignment //----------- Header & operator = (const Header &other); //--------------------------------------------------------------- // Add an attribute: // // insert(n,attr) If no attribute with name n exists, a new // attribute with name n, and the same type as // attr, is added, and the value of attr is // copied into the new attribute. // // If an attribute with name n exists, and its // type is the same as attr, the value of attr // is copied into this attribute. // // If an attribute with name n exists, and its // type is different from attr, an IEX_NAMESPACE::TypeExc // is thrown. // //--------------------------------------------------------------- void insert (const char name[], const Attribute &attribute); void insert (const std::string &name, const Attribute &attribute); //--------------------------------------------------------------- // Remove an attribute: // // remove(n) If an attribute with name n exists, then it // is removed from the map of present attributes. // // If no attribute with name n exists, then this // functions becomes a 'no-op' // //--------------------------------------------------------------- void erase (const char name[]); void erase (const std::string &name); //------------------------------------------------------------------ // Access to existing attributes: // // [n] Returns a reference to the attribute // with name n. If no attribute with // name n exists, an IEX_NAMESPACE::ArgExc is thrown. // // typedAttribute<T>(n) Returns a reference to the attribute // with name n and type T. If no attribute // with name n exists, an IEX_NAMESPACE::ArgExc is // thrown. If an attribute with name n // exists, but its type is not T, an // IEX_NAMESPACE::TypeExc is thrown. // // findTypedAttribute<T>(n) Returns a pointer to the attribute with // name n and type T, or 0 if no attribute // with name n and type T exists. // //------------------------------------------------------------------ Attribute & operator [] (const char name[]); const Attribute & operator [] (const char name[]) const; Attribute & operator [] (const std::string &name); const Attribute & operator [] (const std::string &name) const; template <class T> T& typedAttribute (const char name[]); template <class T> const T& typedAttribute (const char name[]) const; template <class T> T& typedAttribute (const std::string &name); template <class T> const T& typedAttribute (const std::string &name) const; template <class T> T* findTypedAttribute (const char name[]); template <class T> const T* findTypedAttribute (const char name[]) const; template <class T> T* findTypedAttribute (const std::string &name); template <class T> const T* findTypedAttribute (const std::string &name) const; //--------------------------------------------- // Iterator-style access to existing attributes //--------------------------------------------- typedef std::map <Name, Attribute *> AttributeMap; class Iterator; class ConstIterator; Iterator begin (); ConstIterator begin () const; Iterator end (); ConstIterator end () const; Iterator find (const char name[]); ConstIterator find (const char name[]) const; Iterator find (const std::string &name); ConstIterator find (const std::string &name) const; //-------------------------------- // Access to predefined attributes //-------------------------------- IMATH_NAMESPACE::Box2i & displayWindow (); const IMATH_NAMESPACE::Box2i & displayWindow () const; IMATH_NAMESPACE::Box2i & dataWindow (); const IMATH_NAMESPACE::Box2i & dataWindow () const; float & pixelAspectRatio (); const float & pixelAspectRatio () const; IMATH_NAMESPACE::V2f & screenWindowCenter (); const IMATH_NAMESPACE::V2f & screenWindowCenter () const; float & screenWindowWidth (); const float & screenWindowWidth () const; ChannelList & channels (); const ChannelList & channels () const; LineOrder & lineOrder (); const LineOrder & lineOrder () const; Compression & compression (); const Compression & compression () const; //----------------------------------------------------- // Access to required attributes for multipart files // They are optional to non-multipart files and mandatory // for multipart files. //----------------------------------------------------- void setName (const string& name); string& name(); const string& name() const; bool hasName() const; void setType (const string& Type); string& type(); const string& type() const; bool hasType() const; void setVersion (const int version); int& version(); const int& version() const; bool hasVersion() const; // // the chunkCount attribute is set automatically when a file is written. // There is no need to set it manually // void setChunkCount(int chunks); bool hasChunkCount() const; const int & chunkCount() const; int & chunkCount(); // // for multipart files, return whether the file has a view string attribute // (for the deprecated single part multiview format EXR, see ImfMultiView.h) // void setView(const string & view); bool hasView() const; string & view(); const string & view() const; //---------------------------------------------------------------------- // Tile Description: // // The tile description is a TileDescriptionAttribute whose name // is "tiles". The "tiles" attribute must be present in any tiled // image file. When present, it describes various properties of the // tiles that make up the file. // // Convenience functions: // // setTileDescription(td) // calls insert ("tiles", TileDescriptionAttribute (td)) // // tileDescription() // returns typedAttribute<TileDescriptionAttribute>("tiles").value() // // hasTileDescription() // return findTypedAttribute<TileDescriptionAttribute>("tiles") != 0 // //---------------------------------------------------------------------- void setTileDescription (const TileDescription & td); TileDescription & tileDescription (); const TileDescription & tileDescription () const; bool hasTileDescription() const; //---------------------------------------------------------------------- // Preview image: // // The preview image is a PreviewImageAttribute whose name is "preview". // This attribute is special -- while an image file is being written, // the pixels of the preview image can be changed repeatedly by calling // OutputFile::updatePreviewImage(). // // Convenience functions: // // setPreviewImage(p) // calls insert ("preview", PreviewImageAttribute (p)) // // previewImage() // returns typedAttribute<PreviewImageAttribute>("preview").value() // // hasPreviewImage() // return findTypedAttribute<PreviewImageAttribute>("preview") != 0 // //---------------------------------------------------------------------- void setPreviewImage (const PreviewImage &p); PreviewImage & previewImage (); const PreviewImage & previewImage () const; bool hasPreviewImage () const; //------------------------------------------------------------- // Sanity check -- examines the header, and throws an exception // if it finds something wrong (empty display window, negative // pixel aspect ratio, unknown compression sceme etc.) // // set isTiled to true if you are checking a tiled/multi-res // header //------------------------------------------------------------- void sanityCheck (bool isTiled = false, bool isMultipartFile = false) const; //---------------------------------------------------------------- // Maximum image size and maximim tile size: // // sanityCheck() will throw an exception if the width or height of // the data window exceeds the maximum image width or height, or // if the size of a tile exceeds the maximum tile width or height. // // At program startup the maximum image and tile width and height // are set to zero, meaning that width and height are unlimited. // // Limiting image and tile width and height limits how much memory // will be allocated when a file is opened. This can help protect // applications from running out of memory while trying to read // a damaged image file. //---------------------------------------------------------------- static void setMaxImageSize (int maxWidth, int maxHeight); static void setMaxTileSize (int maxWidth, int maxHeight); // // Check if the header reads nothing. // bool readsNothing(); //------------------------------------------------------------------ // Input and output: // // If the header contains a preview image attribute, then writeTo() // returns the position of that attribute in the output stream; this // information is used by OutputFile::updatePreviewImage(). // If the header contains no preview image attribute, then writeTo() // returns 0. //------------------------------------------------------------------ Int64 writeTo (OPENEXR_IMF_INTERNAL_NAMESPACE::OStream &os, bool isTiled = false) const; void readFrom (OPENEXR_IMF_INTERNAL_NAMESPACE::IStream &is, int &version); private: AttributeMap _map; bool _readsNothing; }; //---------- // Iterators //---------- class Header::Iterator { public: Iterator (); Iterator (const Header::AttributeMap::iterator &i); Iterator & operator ++ (); Iterator operator ++ (int); const char * name () const; Attribute & attribute () const; private: friend class Header::ConstIterator; Header::AttributeMap::iterator _i; }; class Header::ConstIterator { public: ConstIterator (); ConstIterator (const Header::AttributeMap::const_iterator &i); ConstIterator (const Header::Iterator &other); ConstIterator & operator ++ (); ConstIterator operator ++ (int); const char * name () const; const Attribute & attribute () const; private: friend bool operator == (const ConstIterator &, const ConstIterator &); friend bool operator != (const ConstIterator &, const ConstIterator &); Header::AttributeMap::const_iterator _i; }; //------------------------------------------------------------------------ // Library initialization: // // In a multithreaded program, staticInitialize() must be called once // during startup, before the program accesses any other functions or // classes in the IlmImf library. Calling staticInitialize() in this // way avoids races during initialization of the library's global // variables. // // Single-threaded programs are not required to call staticInitialize(); // initialization of the library's global variables happens automatically. // //------------------------------------------------------------------------ void staticInitialize (); //----------------- // Inline Functions //----------------- inline Header::Iterator::Iterator (): _i() { // empty } inline Header::Iterator::Iterator (const Header::AttributeMap::iterator &i): _i (i) { // empty } inline Header::Iterator & Header::Iterator::operator ++ () { ++_i; return *this; } inline Header::Iterator Header::Iterator::operator ++ (int) { Iterator tmp = *this; ++_i; return tmp; } inline const char * Header::Iterator::name () const { return *_i->first; } inline Attribute & Header::Iterator::attribute () const { return *_i->second; } inline Header::ConstIterator::ConstIterator (): _i() { // empty } inline Header::ConstIterator::ConstIterator (const Header::AttributeMap::const_iterator &i): _i (i) { // empty } inline Header::ConstIterator::ConstIterator (const Header::Iterator &other): _i (other._i) { // empty } inline Header::ConstIterator & Header::ConstIterator::operator ++ () { ++_i; return *this; } inline Header::ConstIterator Header::ConstIterator::operator ++ (int) { ConstIterator tmp = *this; ++_i; return tmp; } inline const char * Header::ConstIterator::name () const { return *_i->first; } inline const Attribute & Header::ConstIterator::attribute () const { return *_i->second; } inline bool operator == (const Header::ConstIterator &x, const Header::ConstIterator &y) { return x._i == y._i; } inline bool operator != (const Header::ConstIterator &x, const Header::ConstIterator &y) { return !(x == y); } //--------------------- // Template definitions //--------------------- template <class T> T & Header::typedAttribute (const char name[]) { Attribute *attr = &(*this)[name]; T *tattr = dynamic_cast <T*> (attr); if (tattr == 0) throw IEX_NAMESPACE::TypeExc ("Unexpected attribute type."); return *tattr; } template <class T> const T & Header::typedAttribute (const char name[]) const { const Attribute *attr = &(*this)[name]; const T *tattr = dynamic_cast <const T*> (attr); if (tattr == 0) throw IEX_NAMESPACE::TypeExc ("Unexpected attribute type."); return *tattr; } template <class T> T & Header::typedAttribute (const std::string &name) { return typedAttribute<T> (name.c_str()); } template <class T> const T & Header::typedAttribute (const std::string &name) const { return typedAttribute<T> (name.c_str()); } template <class T> T * Header::findTypedAttribute (const char name[]) { AttributeMap::iterator i = _map.find (name); return (i == _map.end())? 0: dynamic_cast <T*> (i->second); } template <class T> const T * Header::findTypedAttribute (const char name[]) const { AttributeMap::const_iterator i = _map.find (name); return (i == _map.end())? 0: dynamic_cast <const T*> (i->second); } template <class T> T * Header::findTypedAttribute (const std::string &name) { return findTypedAttribute<T> (name.c_str()); } template <class T> const T * Header::findTypedAttribute (const std::string &name) const { return findTypedAttribute<T> (name.c_str()); } OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT #endif
Close