MrSID Decode SDK for Raster Reference Manual  9.5.1.4427
lti_utils.h
Go to the documentation of this file.
1 /* $Id$ */
2 /* //////////////////////////////////////////////////////////////////////////
3 // //
4 // This code is Copyright (c) 2004 LizardTech, Inc, 1008 Western Avenue, //
5 // Suite 200, Seattle, WA 98104. Unauthorized use or distribution //
6 // prohibited. Access to and use of this code is permitted only under //
7 // license from LizardTech, Inc. Portions of the code are protected by //
8 // US and foreign patents and other filings. All Rights Reserved. //
9 // //
11 /* PUBLIC */
12 
13 #ifndef LTI_UTILS_H
14 #define LTI_UTILS_H
15 
16 
17 // lt_lib_mrsid_core
18 #include "lti_types.h"
19 
20 LT_BEGIN_NAMESPACE(LizardTech)
21 #define LTI_DEFAULT_MAG_SNAP_THRESHOLD 0.41503749927884381
22 
31 class LTIUtils
32 {
33 public:
45 
46 #if 1 //JAH deprecate
47 
54 
61  static bool hasAlphaBand(LTIColorSpace colorspace);
62 #endif
63 
72  static lt_uint8 getNumBytes(LTIDataType datatype);
73 
83  static bool isSigned(LTIDataType datatype);
84 
94  static bool isIntegral(LTIDataType datatype);
95  static bool isFloatingPoint(LTIDataType datatype);
96 
97  static double getMinValue(LTIDataType datatype);
98  static double getMaxValue(LTIDataType datatype);
99 
100  static bool needsSwapping(LTIDataType datatype, LTIEndian byteOrder);
101 
106 
118  static void convertWindowLevelToMinMax(double window, double level,
119  double& drmin, double& drmax);
120 
135  static void convertMinMaxToWindowLevel(double drmin, double drmax,
136  double& window, double& level);
143 
157  static lt_int32 magToLevel(double mag);
158 
169  static double levelToMag(lt_int32 level);
170 
179  static double snapToOctave(double mag, double threshold = LTI_DEFAULT_MAG_SNAP_THRESHOLD);
180 
191  static double snapToOctave(double mag, const LTIImageStage &imageStage, double threshold = LTI_DEFAULT_MAG_SNAP_THRESHOLD);
192 
193  static bool isOctave(double mag);
194 
195 
205  lt_uint32 height,
206  lt_uint32 iconsize);
207 
208 #if 0
209 
217  static double getMagForIcon(lt_uint32 width,
218  lt_uint32 height,
219  lt_uint32 iconsize);
220 
221  static double getMaxMag(lt_uint32 width, lt_uint32 height);
222 #endif
223 
237  static LT_STATUS getDimsAtMag(lt_uint32 width, lt_uint32 height,
238  double mag,
239  lt_uint32 &scaledWidth, lt_uint32 &scaledHeight);
240 
259  static void getVersionInfo(lt_uint32& major,
260  lt_uint32& minor,
261  lt_uint32& revision,
262  lt_uint32& build,
263  const char*& branch);
264 
274  static const char* getVersionString();
275 
276 private:
277  // nope
278  LTIUtils();
279  LTIUtils(const LTIUtils&);
280 };
281 
282 
283 LT_END_NAMESPACE(LizardTech)
284 
285 #endif // LTI_UTILS_H
static double getMinValue(LTIDataType datatype)
static void getVersionInfo(lt_uint32 &major, lt_uint32 &minor, lt_uint32 &revision, lt_uint32 &build, const char *&branch)
get SDK version information
static lt_uint8 getMinNumSamplesPerPixel(LTIColorSpace colorspace)
returns number of samples per pixel
static double getMaxValue(LTIDataType datatype)
static bool isSigned(LTIDataType datatype)
returns true if datatype is signed
static LT_STATUS getDimsAtMag(lt_uint32 width, lt_uint32 height, double mag, lt_uint32 &scaledWidth, lt_uint32 &scaledHeight)
get dimensions at an octave
static lt_int32 magToLevel(double mag)
convert mag to level
unsigned int lt_uint32
unsigned 32-bit integer
Definition: lt_types.h:54
static lt_uint8 getNumBytes(LTIDataType datatype)
returns number of bytes for a given a datatype
LTIEndian
constants representing endianness (byte order)
Definition: lti_types.h:164
static lt_uint8 getNumLevelsForIcon(lt_uint32 width, lt_uint32 height, lt_uint32 iconsize)
get the number of levels needed to scale an image to a given icon size
static bool needsSwapping(LTIDataType datatype, LTIEndian byteOrder)
static bool isIntegral(LTIDataType datatype)
returns true if datatype is integral
#define LT_BEGIN_NAMESPACE(theNameSpace)
compiler does not support namespaces
Definition: lt_define.h:84
static void convertWindowLevelToMinMax(double window, double level, double &drmin, double &drmax)
convert from window/level to min/max
static bool isFloatingPoint(LTIDataType datatype)
LTIColorSpace
colorspaces
Definition: lti_types.h:38
static bool isOctave(double mag)
convert mag to level
static void convertMinMaxToWindowLevel(double drmin, double drmax, double &window, double &level)
convert from min/max to window/level
static LTIColorSpace getColorSpaceWithoutAlpha(LTIColorSpace colorspace)
returns the colorspace without alpha channel flag
static double levelToMag(lt_int32 level)
convert level to mag
signed int lt_int32
signed 32-bit integer
Definition: lt_types.h:52
This file contains a number of enums, typedefs, etc, that are used throughout the MrSID SDK...
abstract class for decoding from an image
static bool hasAlphaBand(LTIColorSpace colorspace)
returns true with colorspace has alpha channel flags
unsigned char lt_uint8
unsigned 8-bit integer
Definition: lt_types.h:46
static double snapToOctave(double mag, double threshold=0.41503749927884381)
snap to octave
LTIDataType
datatypes
Definition: lti_types.h:105
static const char * getVersionString()
get SDK version information as a string
#define LTI_DEFAULT_MAG_SNAP_THRESHOLD
Definition: lti_utils.h:21
#define LT_END_NAMESPACE(theNameSpace)
compiler does not support namespaces
Definition: lt_define.h:85
utility functions
Definition: lti_utils.h:31
lt_uint32 LT_STATUS
An integral status code.
Definition: lt_status.h:39

LizardTech