#include <IopInfo.h>
Public Types | |
enum | AccessPreference { eAccessPreferNone , eAccessPreferLinear } |
Public Types inherited from DD::Image::Box | |
typedef iterator | const_iterator |
Public Member Functions | |
ChannelSet & | channels () |
ChannelMask | channels () const |
void | channels (ChannelSetInit v) |
void | channels (ChannelMask v) |
void | channels (Channel v) |
void | setAccessPreference (AccessPreference ap) |
const AccessPreference & | accessPreference () const |
int | ydirection () const |
void | ydirection (int v) |
bool | black_outside () const |
void | black_outside (bool v) |
void | turn_on (ChannelSetInit m) |
void | turn_on (ChannelMask m) |
void | turn_on (Channel c) |
void | turn_off (ChannelSetInit m) |
void | turn_off (ChannelMask m) |
void | turn_off (Channel c) |
bool | is_constant () const |
void | clipmove (int dx, int dy, int dr, int dt) |
void | operator= (const DeepInfo &deepInfo) |
copy over the subset of DeepInfo and IopInfo onto this | |
Public Member Functions inherited from DD::Image::Info2D | |
Info2D () | |
void | setFormats (const FormatPair &formats) |
FormatPair | formats () const |
const Format & | format () const |
void | format (const Format &v) |
const Format & | full_size_format () const |
void | full_size_format (const Format &v) |
const DD::Image::Box & | box () const |
DD::Image::Box & | box () |
void | setBox (const DD::Image::Box &box) |
Public Member Functions inherited from DD::Image::GeneralInfo | |
int | firstFrame () const |
get the first frame in the range | |
int | first_frame () const |
get the first frame in the range | |
int | lastFrame () const |
get the last frame in the range | |
int | last_frame () const |
get the last frame in the range | |
void | setFirstFrame (int v) |
set the first frame in the range | |
void | setLastFrame (int v) |
set the last frame in the range | |
void | first_frame (int v) |
set the first frame in the range | |
void | last_frame (int v) |
set the last frame in the range | |
void | setFrameRange (FrameRange frameRange) |
Public Member Functions inherited from DD::Image::Box | |
iterator | begin () const |
iterator | end () const |
Box (int x, int y, int r, int t) | |
Box (const Box &b) | |
int | x () const |
void | x (int v) |
int | y () const |
void | y (int v) |
int | r () const |
void | r (int v) |
int | t () const |
void | t (int v) |
int | w () const |
void | w (int v) |
int | h () const |
void | h (int v) |
float | center_x () const |
float | center_y () const |
void | set (int x, int y, int r, int t) |
void | set (const Box &b) |
bool | is_constant () const |
void | clear () |
void | move (int dx, int dy) |
void | pad (int dx, int dy, int dr, int dt) |
void | pad (int dx, int dy) |
void | pad (int d) |
int | clampx (int x) const |
int | clampy (int y) const |
void | merge (const Box &) |
void | merge (int x, int y) |
void | merge (int x, int y, int r, int t) |
void | expand (int amount) |
void | expand (int widthAmount, int heightAmount) |
void | scale (float scaleAmount) |
void | intersect (const Box &) |
void | intersect (int x, int y, int r, int t) |
bool | intersects (const Box &other) const |
bool | intersects (int x, int y, int r, int t) const |
bool | contains (const Box &other) const |
int64_t | area () const |
This structure contains information that Iop::_validate() must calculate. Because this information is often copied unchanged or with tiny variations from the input operator, it is put into this structure so that it can be copied with a single assignment.
This is a subclass of Box and that provides x,y,r,t values that describe the bounding box around all the interesting pixels (that is, the region of definition). It also provides a merge and intersect operators that are useful when _validate is combining the info from two inputs.
|
inline |
Which channels exist in the output of this Iop.
|
inline |
Indicates a preferred access pattern to ask for the lines in. Some operators operate full frame and prefer to be asked for lines from the very top of the request area rather than in the middle.
Operators can call IopInfo::setAccessPreference to set their access preference. eAccessPreferLinear will cause the viewer to ask for lines always from the top or bottom of the request area first, ignoring any user mouse click.
The default is eAccessPreferNone, indicating this operator has no access preference.
Referenced by DD::Image::Iop::merge_info().
|
inline |
Indicates a preferred direction to ask for the lines in. Some operators (ie file readers) can produce the lines in one direction much faster, usually because reading line N requires reading all lines from 0..N-1 first. Thus if you go by increasing N the first line is returned immediately, but if you go backwards there is a long delay before the first line is produced. Notice that positive means "up" as line 0 is at the bottom.
Larger numbers indicate how "bad" it is. For sgi files it uses +/- 1 because reading in the wrong direction just means it will do seek() between each line. For jpeg it is -100 because it has to decode all lines above line N.
If your operator flips the picture upsidedown it should negate the y direction, otherwise leave it unchanged. If it reads from several inputs it should add all the ydirections together.
Referenced by DD::Image::Read::_validate(), DD::Image::Transform::_validate(), DD::Image::Iop::copy_info(), DD::Image::Iop::merge_info(), and DD::Image::Reader::Reader().
|
inline |
True indicates that a 1-pixel border all around the edge of the bounding box is zero in all channels. Operators are expected to set this correctly to match their output.
Many operators can take advantage of this to avoid adding their own black edge and thus avoid increasing the bounding box size.
Referenced by DD::Image::Read::_validate(), DD::Image::RenderScene::_validate(), DD::Image::Transform::_validate(), DD::Image::DrawIop::_validate(), DD::Image::Black::Black(), DD::Image::Iop::copy_info(), DD::Image::Transform::degenerate(), DD::Image::Iop::merge_info(), DD::Image::Reader::Reader(), and DD::Image::Reader::set_info().
|
inline |
Same as channels(turn_on(channels(), m)).
|
inline |
Same as channels(turn_on(channels(), c)).
|
inline |
Same as channels(turn_off(channels(), m)).
|
inline |
Same as channels(turn_off(channels(), c)).
void DD::Image::IopInfo::clipmove | ( | int | dx, |
int | dy, | ||
int | dr, | ||
int | dt | ||
) |
Expand the bounding box by dx,dy,dr,dt but do not expand it outside the box determined by 0,0,format().width(),format().height() if it is at or inside this. This is used by filter operations, and stops them from expanding their data outside the current format. This clipping is usually what is expected and avoids keeping unnecessary data in the cache buffers, and avoids random-sized caches which fragment memory.
If bounding box is 1 pixel wide in either direction it leaves it unchanged, since this indicates a constant value.
©2024 The Foundry Visionmongers, Ltd. All Rights Reserved. |