MrSID Decode SDK for Raster Reference Manual  9.1.0.4045
LTIScene Class Reference

representation of a scene More...

#include <lti_scene.h>

Inheritance diagram for LTIScene:

Public Member Functions

 LTIScene (double ulX, double ulY, double width, double height, double magnification)
 constructor More...
 
 LTIScene (const LTIScene &copy)
 copy constructor More...
 
 LTIScene (void)
 default constructor More...
 
 LTIScene (const LTIGeomIntRect &rect, double magnification)
 
LTIGeomIntRect getRect (void) const
 
LTISceneoperator= (const LTIScene &)
 assignment operator More...
 
bool operator== (const LTIScene &) const
 equality operator More...
 
bool operator!= (const LTIScene &) const
 equality operator More...
 
double getMag () const
 returns the magnification of the scene More...
 
LTIScene clip (double width, double height) const
 return a clip scene to fit an image with size (width, height) More...
 
High-precision point functions
double getUpperLeftX () const
 returns the x-position of the upper-left point More...
 
double getUpperLeftY () const
 returns the y-position of the upper-left point More...
 
double getLowerRightX () const
 returns the x-position of the lower-right point More...
 
double getLowerRightY () const
 returns the y-position of the lower-right point More...
 
double getUpperRightX () const
 returns the x-position of the upper-right point More...
 
double getUpperRightY () const
 returns the y-position of the upper-left point More...
 
double getLowerLeftX () const
 returns the x-position of the lower-left point More...
 
double getLowerLeftY () const
 returns the y-position of the lower-left point More...
 
double getCenterX () const
 returns the x-position of the center point More...
 
double getCenterY () const
 returns the x-position of the center point More...
 
Low-precision point functions

These functions return properly rounded integral values, to be used only when discretizing the pixels (for example to map to a buffer in memory).

lt_int32 getUpperLeftCol () const
 returns the x-position of the upper-left point More...
 
lt_int32 getUpperLeftRow () const
 returns the y-position of the upper-left point More...
 
lt_int32 getLowerRightCol () const
 returns the x-position of the lower-right point More...
 
lt_int32 getLowerRightRow () const
 returns the y-position of the lower-right point More...
 
lt_int32 getUpperRightCol () const
 returns the x-position of the upper-right point More...
 
lt_int32 getUpperRightRow () const
 returns the y-position of the upper-right point More...
 
lt_int32 getLowerLeftCol () const
 returns the x-position of the lower-left point More...
 
lt_int32 getLowerLeftRow () const
 returns the y-position of the lower-left point More...
 
lt_int32 getCenterCol () const
 returns the x-position of the center point More...
 
lt_int32 getCenterRow () const
 returns the y-position of the center point More...
 
Dimension functions
double getWidth () const
 returns the width of the scene More...
 
double getHeight () const
 returns the height of the scene More...
 
lt_int32 getNumCols () const
 returns the width of the scene More...
 
lt_int32 getNumRows () const
 returns the height of the scene More...
 
Helper functions
double getX () const
 returns the x-position of the upper-left point More...
 
double getY () const
 returns the y-position of the upper-left point More...
 
void getPoints (double &ulX, double &ulY, double &lrX, double &lrY) const
 returns the (x,y) positions of the upper-left and lower-right points More...
 
void getPoints (double &ulX, double &ulY, double &urX, double &urY, double &llX, double &llY, double &lrX, double &lrY, double &cX, double &cY) const
 returns the (x,y) positions of the center and corner points More...
 
void getPoints (lt_int32 &ulX, lt_int32 &ulY, lt_int32 &lrX, lt_int32 &lrY) const
 returns the (x,y) positions of the upper-left and lower-right points More...
 
void getPoints (lt_int32 &ulX, lt_int32 &ulY, lt_int32 &urX, lt_int32 &urY, lt_int32 &llX, lt_int32 &llY, lt_int32 &lrX, lt_int32 &lrY, lt_int32 &cX, lt_int32 &cY) const
 returns the (x,y) positions of the center and corner points More...
 

Protected Attributes

double m_ulX
 
double m_ulY
 
double m_width
 
double m_height
 
double m_magnification
 

Detailed Description

This class represents a scene within an image. A scene contains these values:

  • an upper-left (x,y) position
  • a width and a height
  • a magnification

The (X,Y) point is expressed in pixel-space (mag=1.0) coordinates, relative to the given magnification. The width and height are absolutes, i.e. they correspond to the buffer size the user expects.

The scene position and dimensions are maintained as high-precision values. Accessors are supplied to get the high-precision values as well as the properly rounded integral values (expressed in row/col form).

A mag value of 1.0 indicates full-size resolution. A mag greater than 1.0 indicates res-up (zoom in) by a factor of two: 2.0 gives an image 2x bigger, 4.0 gives an image 4x bigger, etc. A mag value less than 1.0 indicates a lower resolution: 0.5 gives a half-sized image, 0.25 gives a quarter-sized image, etc.

An LTIImageStage may not support the requested magnification: most readers only support mag=1.0, and MrSID readers only support power-of-two magnifications (0.25, 0.5, 1.0, 2.0, 4.0, etc). If the mag request cannot be returned the extraction will return an error.

An LTIScene is used to express the region of an image to be decoded via a call to LTIImageStage::decodeBegin(), etc.

As an example, consider an image which is 512x512 pixels. Then, the following scenes from the image will all contain the same upper-left point and all will be 100x100 pixels. The "granularity" (resolution) of each pixel, however, will differ.

  • const LTIScene scene(256, 256, 100, 100, 1.0); // center point
  • const LTIScene scene(512, 512, 100, 100, 2.0);
  • const LTIScene scene(128, 128, 100, 100, 0.5);
Note
Scenes may not require a buffer larger than 2GB.
Examples:
DecodeJP2ToBBB.cpp, DecodeJP2ToJPG.cpp, DecodeJP2ToMemory.cpp, DecodeMrSIDBandSelection.cpp, DecodeMrSIDToMemory.cpp, DecodeMrSIDToRaw.cpp, DecodeMrSIDToTIFF.cpp, DerivedImageFilter.cpp, DerivedImageReader.cpp, DerivedImageWriter.cpp, GeoScene.cpp, InterruptDelegate.cpp, Pipeline.cpp, ProgressDelegate.cpp, and SceneBuffer.cpp.

Definition at line 64 of file lti_scene.h.

Constructor & Destructor Documentation

LTIScene::LTIScene ( double  ulX,
double  ulY,
double  width,
double  height,
double  magnification 
)

This constructor produces a scene set to the given parameters, using double-precision.

Parameters
ulXupper left X position of scene
ulYupper left Y position of scene
widthwidth of scene
heightheight of scene
magnificationresolution of scene
LTIScene::LTIScene ( const LTIScene copy)
LTIScene::LTIScene ( void  )

This constructor will produce a scene with "invalid" default coordinates.

LTIScene::LTIScene ( const LTIGeomIntRect rect,
double  magnification 
)

Member Function Documentation

LTIScene LTIScene::clip ( double  width,
double  height 
) const
Parameters
widthmax x value
heightmax y value
lt_int32 LTIScene::getCenterCol ( ) const

Returns the x-position of the center point. This is a low-precision value.

Returns
the x-position of the point
lt_int32 LTIScene::getCenterRow ( ) const

Returns the y-position of the center point. This is a low-precision value.

Returns
the y-position of the point
double LTIScene::getCenterX ( ) const

Returns the x-position of the center point. This is a high-precision value.

Returns
the x-position of the point
double LTIScene::getCenterY ( ) const

Returns the x-position of the center point. This is a high-precision value.

Returns
the x-position of the point
double LTIScene::getHeight ( ) const

Returns the height of the scene. This is a high-precision value.

Returns
the height
lt_int32 LTIScene::getLowerLeftCol ( ) const

Returns the x-position of the lower-left point. This is a low-precision value.

Returns
the x-position of the point
lt_int32 LTIScene::getLowerLeftRow ( ) const

Returns the y-position of the lower-left point. This is a low-precision value.

Returns
the y-position of the point
double LTIScene::getLowerLeftX ( ) const

Returns the x-position of the lower-left point. This is a high-precision value.

Returns
the x-position of the point
double LTIScene::getLowerLeftY ( ) const

Returns the y-position of the lower-left point. This is a high-precision value.

Returns
the y-position of the point
lt_int32 LTIScene::getLowerRightCol ( ) const

Returns the x-position of the lower-right point. This is a low-precision value.

Returns
the x-position of the point
lt_int32 LTIScene::getLowerRightRow ( ) const

Returns the y-position of the lower-right point. This is a low-precision value.

Returns
the y-position of the point
double LTIScene::getLowerRightX ( ) const

Returns the x-position of the lower-right point. This is a high-precision value.

Returns
the x-position of the point
double LTIScene::getLowerRightY ( ) const

Returns the y-position of the lower-right point. This is a high-precision value.

Returns
the y-position of the point
double LTIScene::getMag ( ) const

Returns the magnification of the scene.

Returns
the magnification
lt_int32 LTIScene::getNumCols ( ) const

Returns the width of the scene. This is a low-precision value.

Returns
the width
Examples:
DerivedImageFilter.cpp, DerivedImageReader.cpp, and DerivedImageWriter.cpp.
lt_int32 LTIScene::getNumRows ( ) const

Returns the height of the scene. This is a low-precision value.

Returns
the height
Examples:
DerivedImageFilter.cpp, DerivedImageReader.cpp, and DerivedImageWriter.cpp.
void LTIScene::getPoints ( double &  ulX,
double &  ulY,
double &  lrX,
double &  lrY 
) const

Returns the (x,y) positions of the upper-left and lower-right points, as high-precision values.

Parameters
ulXthe upper-left x-position
ulYthe upper-left y-position
lrXthe lower-right x-position
lrYthe lower-right y-position
void LTIScene::getPoints ( double &  ulX,
double &  ulY,
double &  urX,
double &  urY,
double &  llX,
double &  llY,
double &  lrX,
double &  lrY,
double &  cX,
double &  cY 
) const

Returns the (x,y) positions of the center and corner points, as high-precision values.

Parameters
ulXthe upper-left x-position
ulYthe upper-left y-position
urXthe upper-right x-position
urYthe upper-right y-position
llXthe lower-left x-position
llYthe lower-left y-position
lrXthe lower-right x-position
lrYthe lower-right y-position
cXthe center x-position
cYthe center y-position
void LTIScene::getPoints ( lt_int32 ulX,
lt_int32 ulY,
lt_int32 lrX,
lt_int32 lrY 
) const

Returns the (x,y) positions of the upper-left and lower-right points, as low-precision values.

Parameters
ulXthe upper-left x-position
ulYthe upper-left y-position
lrXthe lower-right x-position
lrYthe lower-right y-position
void LTIScene::getPoints ( lt_int32 ulX,
lt_int32 ulY,
lt_int32 urX,
lt_int32 urY,
lt_int32 llX,
lt_int32 llY,
lt_int32 lrX,
lt_int32 lrY,
lt_int32 cX,
lt_int32 cY 
) const

Returns the (x,y) positions of the center and corner points, as low-precision values.

Parameters
ulXthe upper-left x-position
ulYthe upper-left y-position
urXthe upper-right x-position
urYthe upper-right y-position
llXthe lower-left x-position
llYthe lower-left y-position
lrXthe lower-right x-position
lrYthe lower-right y-position
cXthe center x-position
cYthe center y-position
LTIGeomIntRect LTIScene::getRect ( void  ) const
lt_int32 LTIScene::getUpperLeftCol ( ) const

Returns the x-position of the upper-left point. This is a low-precision value.

Returns
the x-position of the point
Examples:
DerivedImageReader.cpp.
lt_int32 LTIScene::getUpperLeftRow ( ) const

Returns the y-position of the upper-left point. This is a low-precision value.

Returns
the y-position of the point
Examples:
DerivedImageReader.cpp.
double LTIScene::getUpperLeftX ( ) const

Returns the x-position of the upper-left point. This is a high-precision value.

Returns
the x-position of the point
double LTIScene::getUpperLeftY ( ) const

Returns the y-position of the upper-left point. This is a high-precision value.

Returns
the y-position of the point
lt_int32 LTIScene::getUpperRightCol ( ) const

Returns the x-position of the upper-right point. This is a low-precision value.

Returns
the x-position of the point
lt_int32 LTIScene::getUpperRightRow ( ) const

Returns the y-position of the upper-right point. This is a low-precision value.

Returns
the y-position of the point
double LTIScene::getUpperRightX ( ) const

Returns the x-position of the upper-right point. This is a high-precision value.

Returns
the x-position of the point
double LTIScene::getUpperRightY ( ) const

Returns the y-position of the upper-left point. This is a high-precision value.

Returns
the y-position of the point
double LTIScene::getWidth ( ) const

Returns the width of the scene. This is a high-precision value.

Returns
the width
double LTIScene::getX ( ) const

Returns the x-position of the upper-left point, as a high-precision value. This returns the same value as calling getUpperLeftX().

Returns
the x-position of the point
double LTIScene::getY ( ) const

Returns the y-position of the upper-left point, as a high-precision value. This returns the same value as calling getUpperLeftY().

Returns
the y-position of the point
bool LTIScene::operator!= ( const LTIScene ) const
LTIScene& LTIScene::operator= ( const LTIScene )
bool LTIScene::operator== ( const LTIScene ) const

Member Data Documentation

double LTIScene::m_height
protected

Definition at line 484 of file lti_scene.h.

double LTIScene::m_magnification
protected

Definition at line 485 of file lti_scene.h.

double LTIScene::m_ulX
protected

Definition at line 483 of file lti_scene.h.

double LTIScene::m_ulY
protected

Definition at line 483 of file lti_scene.h.

double LTIScene::m_width
protected

Definition at line 484 of file lti_scene.h.


The documentation for this class was generated from the following file:

LizardTech