Blame IlmImf/ImfFrameBuffer.cpp

Packit Service 6754ca
///////////////////////////////////////////////////////////////////////////
Packit Service 6754ca
//
Packit Service 6754ca
// Copyright (c) 2002, Industrial Light & Magic, a division of Lucas
Packit Service 6754ca
// Digital Ltd. LLC
Packit Service 6754ca
// 
Packit Service 6754ca
// All rights reserved.
Packit Service 6754ca
// 
Packit Service 6754ca
// Redistribution and use in source and binary forms, with or without
Packit Service 6754ca
// modification, are permitted provided that the following conditions are
Packit Service 6754ca
// met:
Packit Service 6754ca
// *       Redistributions of source code must retain the above copyright
Packit Service 6754ca
// notice, this list of conditions and the following disclaimer.
Packit Service 6754ca
// *       Redistributions in binary form must reproduce the above
Packit Service 6754ca
// copyright notice, this list of conditions and the following disclaimer
Packit Service 6754ca
// in the documentation and/or other materials provided with the
Packit Service 6754ca
// distribution.
Packit Service 6754ca
// *       Neither the name of Industrial Light & Magic nor the names of
Packit Service 6754ca
// its contributors may be used to endorse or promote products derived
Packit Service 6754ca
// from this software without specific prior written permission. 
Packit Service 6754ca
// 
Packit Service 6754ca
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
Packit Service 6754ca
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
Packit Service 6754ca
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
Packit Service 6754ca
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
Packit Service 6754ca
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
Packit Service 6754ca
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
Packit Service 6754ca
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
Packit Service 6754ca
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
Packit Service 6754ca
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
Packit Service 6754ca
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
Packit Service 6754ca
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Packit Service 6754ca
//
Packit Service 6754ca
///////////////////////////////////////////////////////////////////////////
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
//-----------------------------------------------------------------------------
Packit Service 6754ca
//
Packit Service 6754ca
//      class Slice
Packit Service 6754ca
//      class FrameBuffer
Packit Service 6754ca
//
Packit Service 6754ca
//-----------------------------------------------------------------------------
Packit Service 6754ca
Packit Service 6754ca
#include <ImfFrameBuffer.h>
Packit Service 6754ca
#include "Iex.h"
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
using namespace std;
Packit Service 6754ca
Packit Service 6754ca
#include "ImfNamespace.h"
Packit Service 6754ca
Packit Service 6754ca
OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_ENTER
Packit Service 6754ca
Packit Service 6754ca
Slice::Slice (PixelType t,
Packit Service 6754ca
              char *b,
Packit Service 6754ca
              size_t xst,
Packit Service 6754ca
              size_t yst,
Packit Service 6754ca
              int xsm,
Packit Service 6754ca
              int ysm,
Packit Service 6754ca
              double fv,
Packit Service 6754ca
              bool xtc,
Packit Service 6754ca
              bool ytc)
Packit Service 6754ca
:
Packit Service 6754ca
    type (t),
Packit Service 6754ca
    base (b),
Packit Service 6754ca
    xStride (xst),
Packit Service 6754ca
    yStride (yst),
Packit Service 6754ca
    xSampling (xsm),
Packit Service 6754ca
    ySampling (ysm),
Packit Service 6754ca
    fillValue (fv),
Packit Service 6754ca
    xTileCoords (xtc),
Packit Service 6754ca
    yTileCoords (ytc)
Packit Service 6754ca
{
Packit Service 6754ca
    // empty
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
void
Packit Service 6754ca
FrameBuffer::insert (const char name[], const Slice &slice)
Packit Service 6754ca
{
Packit Service 6754ca
    if (name[0] == 0)
Packit Service 6754ca
    {
Packit Service 6754ca
        THROW (IEX_NAMESPACE::ArgExc,
Packit Service 6754ca
               "Frame buffer slice name cannot be an empty string.");
Packit Service 6754ca
    }
Packit Service 6754ca
Packit Service 6754ca
    _map[name] = slice;
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
void
Packit Service 6754ca
FrameBuffer::insert (const string &name, const Slice &slice)
Packit Service 6754ca
{
Packit Service 6754ca
    insert (name.c_str(), slice);
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
Slice &
Packit Service 6754ca
FrameBuffer::operator [] (const char name[])
Packit Service 6754ca
{
Packit Service 6754ca
    SliceMap::iterator i = _map.find (name);
Packit Service 6754ca
Packit Service 6754ca
    if (i == _map.end())
Packit Service 6754ca
    {
Packit Service 6754ca
        THROW (IEX_NAMESPACE::ArgExc,
Packit Service 6754ca
               "Cannot find frame buffer slice \"" << name << "\".");
Packit Service 6754ca
    }
Packit Service 6754ca
Packit Service 6754ca
    return i->second;
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
const Slice &
Packit Service 6754ca
FrameBuffer::operator [] (const char name[]) const
Packit Service 6754ca
{
Packit Service 6754ca
    SliceMap::const_iterator i = _map.find (name);
Packit Service 6754ca
Packit Service 6754ca
    if (i == _map.end())
Packit Service 6754ca
    {
Packit Service 6754ca
        THROW (IEX_NAMESPACE::ArgExc,
Packit Service 6754ca
               "Cannot find frame buffer slice \"" << name << "\".");
Packit Service 6754ca
    }
Packit Service 6754ca
Packit Service 6754ca
    return i->second;
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
Slice &
Packit Service 6754ca
FrameBuffer::operator [] (const string &name)
Packit Service 6754ca
{
Packit Service 6754ca
    return this->operator[] (name.c_str());
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
const Slice &
Packit Service 6754ca
FrameBuffer::operator [] (const string &name) const
Packit Service 6754ca
{
Packit Service 6754ca
    return this->operator[] (name.c_str());
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
Slice *
Packit Service 6754ca
FrameBuffer::findSlice (const char name[])
Packit Service 6754ca
{
Packit Service 6754ca
    SliceMap::iterator i = _map.find (name);
Packit Service 6754ca
    return (i == _map.end())? 0: &i->second;
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
const Slice *
Packit Service 6754ca
FrameBuffer::findSlice (const char name[]) const
Packit Service 6754ca
{
Packit Service 6754ca
    SliceMap::const_iterator i = _map.find (name);
Packit Service 6754ca
    return (i == _map.end())? 0: &i->second;
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
Slice *
Packit Service 6754ca
FrameBuffer::findSlice (const string &name)
Packit Service 6754ca
{
Packit Service 6754ca
    return findSlice (name.c_str());
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
const Slice *
Packit Service 6754ca
FrameBuffer::findSlice (const string &name) const
Packit Service 6754ca
{
Packit Service 6754ca
    return findSlice (name.c_str());
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
FrameBuffer::Iterator
Packit Service 6754ca
FrameBuffer::begin ()
Packit Service 6754ca
{
Packit Service 6754ca
    return _map.begin();
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
FrameBuffer::ConstIterator
Packit Service 6754ca
FrameBuffer::begin () const
Packit Service 6754ca
{
Packit Service 6754ca
    return _map.begin();
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
FrameBuffer::Iterator
Packit Service 6754ca
FrameBuffer::end ()
Packit Service 6754ca
{
Packit Service 6754ca
    return _map.end();
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
FrameBuffer::ConstIterator
Packit Service 6754ca
FrameBuffer::end () const
Packit Service 6754ca
{
Packit Service 6754ca
    return _map.end();
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
FrameBuffer::Iterator
Packit Service 6754ca
FrameBuffer::find (const char name[])
Packit Service 6754ca
{
Packit Service 6754ca
    return _map.find (name);
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
FrameBuffer::ConstIterator
Packit Service 6754ca
FrameBuffer::find (const char name[]) const
Packit Service 6754ca
{
Packit Service 6754ca
    return _map.find (name);
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
FrameBuffer::Iterator
Packit Service 6754ca
FrameBuffer::find (const string &name)
Packit Service 6754ca
{
Packit Service 6754ca
    return find (name.c_str());
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
FrameBuffer::ConstIterator
Packit Service 6754ca
FrameBuffer::find (const string &name) const
Packit Service 6754ca
{
Packit Service 6754ca
    return find (name.c_str());
Packit Service 6754ca
}
Packit Service 6754ca
Packit Service 6754ca
Packit Service 6754ca
OPENEXR_IMF_INTERNAL_NAMESPACE_SOURCE_EXIT