27 #include "../datatype/Enums.h"
92 unsigned int bitshift = (index % 2) * 4;
93 unsigned char ucvalue = ((
unsigned char*) buffer) [index >> 1];
94 *value = (double) ( (ucvalue >> bitshift) & 15 );
99 unsigned int bitshift = (index % 4) * 2;
100 unsigned char ucvalue = ((
unsigned char*) buffer) [index >> 2];
101 *value = (double) ( ( ucvalue >> bitshift ) & 3 );
106 unsigned int bitshift = (index % 8);
107 unsigned char ucvalue = ((
unsigned char*) buffer) [index >> 3];
108 *value = (double) ( ( ucvalue >> bitshift ) & 1 );
113 *value = (double)((
unsigned char*)buffer)[index];
118 *value = (double)((
char*)buffer)[index];
123 *value = (double)((
unsigned short*)buffer)[index];
128 *value = (double)((
short*)buffer)[index];
133 *value = (double)((
unsigned int*)buffer)[index];
138 *value = (double)((
int*)buffer)[index];
143 *value = (double)((
float*)buffer)[index];
148 *value = ((
double*)buffer)[index];
153 *value = (double)(((
CInt16*)buffer)[index]).r;
158 *value = (double)(((
CInt16*)buffer)[index]).i;
163 *value = (double)(((
CInt32*)buffer)[index]).r;
168 *value = (double)(((
CInt32*)buffer)[index]).i;
173 *value = (double)(((
CFloat*)buffer)[index]).r;
178 *value = (double)(((
CFloat*)buffer)[index]).i;
183 *value = (((
CDouble*)buffer)[index]).r;
188 *value = (((
CDouble*)buffer)[index]).i;
193 unsigned int bitshift = (index % 8);
194 unsigned char firstbit = ((
unsigned char) *value) & 1;
195 ((
unsigned char*)buffer)[index >> 3] &= ~(1u << bitshift);
196 ((
unsigned char*)buffer)[index >> 3] |= (firstbit << bitshift);
201 unsigned int bitshift = (index % 4) * 2;
202 unsigned char first2bits = ((
unsigned char) *value) & 3;
203 ((
unsigned char*)buffer)[index >> 2] &= ~(3u << bitshift);
204 ((
unsigned char*)buffer)[index >> 2] |= (first2bits << bitshift);
209 unsigned int bitshift = (index % 2) * 4;
210 unsigned char first4bits = ((
unsigned char) *value) & 15;
211 ((
unsigned char*)buffer)[index >> 1] &= ~(15u << bitshift);
212 ((
unsigned char*)buffer)[index >> 1] |= (first4bits << bitshift);
217 ((
unsigned char*)buffer)[index] = (
unsigned char) *value;
222 ((
char*)buffer)[index] = (char) *value;
227 ((
unsigned short*)buffer)[index] = (
unsigned short) *value;
232 ((
short*)buffer)[index] = (short) *value;
237 ((
unsigned int*)buffer)[index] = (
unsigned int) *value;
242 ((
int*)buffer)[index] = (int) *value;
247 ((
float*)buffer)[index] = (float) *value;
252 ((
double*)buffer)[index] = (double) *value;
257 (((
CInt16*)buffer)[index]).r = (
short) *value;
262 (((
CInt16*)buffer)[index]).i = (
short)(*(value));
267 (((
CInt32*)buffer)[index]).r = (
int) *value;
272 (((
CInt32*)buffer)[index]).i = (
int)(*(value));
277 (((
CFloat*)buffer)[index]).r = (
float) *value;
282 (((
CFloat*)buffer)[index]).i = (
float) *(value);
287 (((
CDouble*)buffer)[index]).r = *value;
292 (((
CDouble*)buffer)[index]).i = *value;
406 throw te::rst::Exception(
"Invalid data type");
TERASTEREXPORT void Get1bit(int index, void *buffer, double *value)
TERASTEREXPORT void Set2bits(int index, void *buffer, const double *value)
TERASTEREXPORT void SetCIDouble(int index, void *buffer, const double *value)
A simple type for use by driver to cast raster data blocks.
TERASTEREXPORT void GetCRInt32(int index, void *buffer, double *value)
TERASTEREXPORT void GetInt32(int index, void *buffer, double *value)
TERASTEREXPORT void DummySetValue(int index, void *buffer, const double *value)
TERASTEREXPORT void GetCRFloat(int index, void *buffer, double *value)
TERASTEREXPORT void SetCRInt32(int index, void *buffer, const double *value)
TERASTEREXPORT void Set4bits(int index, void *buffer, const double *value)
TERASTEREXPORT void GetCRInt16(int index, void *buffer, double *value)
TERASTEREXPORT void SetCRFloat(int index, void *buffer, const double *value)
TERASTEREXPORT void GetCIFloat(int index, void *buffer, double *value)
TERASTEREXPORT void GetFloat(int index, void *buffer, double *value)
Utility functions for dealing with raster data blocks.
TERASTEREXPORT void SetInt16(int index, void *buffer, const double *value)
TERASTEREXPORT void GetCIInt32(int index, void *buffer, double *value)
An exception class for the Raster module.
TERASTEREXPORT void GetUInt16(int index, void *buffer, double *value)
TERASTEREXPORT void GetCIDouble(int index, void *buffer, double *value)
TERASTEREXPORT void GetInt16(int index, void *buffer, double *value)
void(* SetBufferValueFPtr)(int index, void *buffer, const double *value)
The type of function used to extract data from a buffer.
TERASTEREXPORT void SetDouble(int index, void *buffer, const double *value)
TERASTEREXPORT void SetCIFloat(int index, void *buffer, const double *value)
TERASTEREXPORT void Set1bit(int index, void *buffer, const double *value)
TERASTEREXPORT void SetFloat(int index, void *buffer, const double *value)
TERASTEREXPORT void Get4bits(int index, void *buffer, double *value)
A simple type for use by driver to cast raster data blocks.
TERASTEREXPORT void SetInt32(int index, void *buffer, const double *value)
TERASTEREXPORT void SetCRInt16(int index, void *buffer, const double *value)
TERASTEREXPORT void SetCIInt16(int index, void *buffer, const double *value)
TERASTEREXPORT void SetUInt16(int index, void *buffer, const double *value)
TERASTEREXPORT void GetDouble(int index, void *buffer, double *value)
TERASTEREXPORT void Get2bits(int index, void *buffer, double *value)
TERASTEREXPORT void GetChar(int index, void *buffer, double *value)
A simple type for use by driver to cast raster data blocks.
TERASTEREXPORT void GetUChar(int index, void *buffer, double *value)
TERASTEREXPORT void SetUInt32(int index, void *buffer, const double *value)
TERASTEREXPORT void GetCRDouble(int index, void *buffer, double *value)
A simple type for use by driver to cast raster data blocks.
TERASTEREXPORT void GetCIInt16(int index, void *buffer, double *value)
TERASTEREXPORT void GetUInt32(int index, void *buffer, double *value)
void(* GetBufferValueFPtr)(int index, void *buffer, double *value)
The type of function used to extract data from a buffer.
TERASTEREXPORT void SetUChar(int index, void *buffer, const double *value)
TERASTEREXPORT void SetChar(int index, void *buffer, const double *value)
TERASTEREXPORT void DummyGetValue(int index, void *buffer, double *value)
TERASTEREXPORT void SetBlockFunctions(GetBufferValueFPtr *gb, GetBufferValueFPtr *gbi, SetBufferValueFPtr *sb, SetBufferValueFPtr *sbi, int type)
Sets the pointers to functions that helps to extract a double or complex value from a specific buffer...
TERASTEREXPORT void SetCIInt32(int index, void *buffer, const double *value)
TERASTEREXPORT void SetCRDouble(int index, void *buffer, const double *value)