1 
2 
3/////////////////////////////////////////////////////////////////////////// 
4// 
5// Copyright (c) 2011, Industrial Light & Magic, a division of Lucas 
6// Digital Ltd. LLC 
7// 
8// Portions (c) 2012 Weta Digital Ltd 
9//  
10// All rights reserved. 
11//  
12// Redistribution and use in source and binary forms, with or without 
13// modification, are permitted provided that the following conditions are 
14// met: 
15// * Redistributions of source code must retain the above copyright 
16// notice, this list of conditions and the following disclaimer. 
17// * Redistributions in binary form must reproduce the above 
18// copyright notice, this list of conditions and the following disclaimer 
19// in the documentation and/or other materials provided with the 
20// distribution. 
21// * Neither the name of Industrial Light & Magic nor the names of 
22// its contributors may be used to endorse or promote products derived 
23// from this software without specific prior written permission.  
24//  
25// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 
26// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 
27// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 
28// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 
29// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 
30// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 
31// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 
32// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 
33// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 
34// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 
35// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
36// 
37/////////////////////////////////////////////////////////////////////////// 
38 
39#ifndef INCLUDED_IMF_FORWARD_H 
40#define INCLUDED_IMF_FORWARD_H 
41 
42//////////////////////////////////////////////////////////////////// 
43// 
44// Forward declarations for OpenEXR - correctly declares namespace 
45// 
46//////////////////////////////////////////////////////////////////// 
47 
48#include "ImfNamespace.h" 
49 
50OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER 
51 
52 
53// classes for basic types; 
54template<class T> class Array
55template<class T> class Array2D
56struct Channel
57class ChannelList
58struct Chromaticities
59 
60// attributes used in headers are TypedAttributes 
61class Attribute
62 
63class Header
64 
65// file handling classes 
66class OutputFile
67class TiledInputFile
68class ScanLineInputFile
69class InputFile
70class TiledOutputFile
71class DeepScanLineInputFile
72class DeepScanLineOutputFile
73class DeepTiledInputFile
74class DeepTiledOutputFile
75class AcesInputFile
76class AcesOutputFile
77class TiledInputPart
78class TiledInputFile
79class TileOffsets
80 
81// multipart file handling 
82class GenericInputFile
83class GenericOutputFile
84class MultiPartInputFile
85class MultiPartOutputFile
86 
87class InputPart
88class TiledInputPart
89class DeepScanLineInputPart
90class DeepTiledInputPart
91 
92class OutputPart
93class ScanLineOutputPart
94class TiledOutputPart
95class DeepScanLineOutputPart
96class DeepTiledOutputPart
97 
98 
99// internal use only 
100struct InputPartData
101struct OutputStreamMutex
102struct OutputPartData
103struct InputStreamMutex
104 
105// frame buffers 
106 
107class FrameBuffer
108class DeepFrameBuffer
109struct DeepSlice
110 
111// compositing 
112class DeepCompositing
113class CompositeDeepScanLine
114 
115// preview image 
116class PreviewImage
117struct PreviewRgba
118 
119// streams 
120class OStream
121class IStream
122 
123 
124OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT 
125 
126 
127#endif // include guard 
128