HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ImfDeepImageState.h
Go to the documentation of this file.
1 //
2 // SPDX-License-Identifier: BSD-3-Clause
3 // Copyright (c) Contributors to the OpenEXR Project.
4 //
5 
6 #ifndef INCLUDED_IMF_DEEPIMAGESTATE_H
7 #define INCLUDED_IMF_DEEPIMAGESTATE_H
8 
9 //-----------------------------------------------------------------------------
10 //
11 // enum DeepImageState -- describes how orderly the pixel data
12 // in a deep image are
13 //
14 // The samples in a deep image pixel may be sorted according to
15 // depth, and the sample depths or depth ranges may or may not
16 // overlap each other. A pixel is
17 //
18 // - SORTED if for every i and j with i < j
19 //
20 // (Z[i] < Z[j]) || (Z[i] == Z[j] && ZBack[i] < ZBack[j]),
21 //
22 // - NON_OVERLAPPING if for every i and j with i != j
23 //
24 // (Z[i] < Z[j] && ZBack[i] <= Z[j]) ||
25 // (Z[j] < Z[i] && ZBack[j] <= Z[i]) ||
26 // (Z[i] == Z[j] && ZBack[i] <= Z[i] & ZBack[j] > Z[j]) ||
27 // (Z[i] == Z[j] && ZBack[j] <= Z[j] & ZBack[i] > Z[i]),
28 //
29 // - TIDY if it is SORTED and NON_OVERLAPPING,
30 //
31 // - MESSY if it is neither SORTED nor NON_OVERLAPPING.
32 //
33 // A deep image is
34 //
35 // - MESSY if at least one of its pixels is MESSY,
36 // - SORTED if all of its pixels are SORTED,
37 // - NON_OVERLAPPING if all of its pixels are NON_OVERLAPPING,
38 // - TIDY if all of its pixels are TIDY.
39 //
40 // Note: the rather complicated definition of NON_OVERLAPPING prohibits
41 // overlapping volume samples, coincident point samples and point samples
42 // in the middle of a volume sample, but it does allow point samples at
43 // the front or back of a volume sample.
44 //
45 //-----------------------------------------------------------------------------
46 
47 #include "ImfExport.h"
48 #include "ImfNamespace.h"
49 
51 
53 {
54  DIS_MESSY = 0,
57  DIS_TIDY = 3,
58 
59  DIS_NUMSTATES // Number of different image states
60 };
61 
63 
64 #endif
#define IMF_EXPORT_ENUM
Definition: ImfExport.h:56
#define OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_EXIT
Definition: ImfNamespace.h:83
DIS_SORTED
DIS_NON_OVERLAPPING
DeepImageStateint
DIS_TIDY
#define OPENEXR_IMF_INTERNAL_NAMESPACE_HEADER_ENTER
Definition: ImfNamespace.h:80
DIS_MESSY