92 typedef struct mdd_function_desc
111 #define MDD_FUNCTION_SIGNATURE(type) \
112 (type *dest, const type *src, const mdd_function_desc *mfd, int dim, int datastep, void *auxData)
114 typedef int (*mdd_func_bool)MDD_FUNCTION_SIGNATURE(r_Boolean);
115 typedef
int (*mdd_func_char)MDD_FUNCTION_SIGNATURE(r_Char);
116 typedef
int (*mdd_func_octet)MDD_FUNCTION_SIGNATURE(r_Octet);
117 typedef
int (*mdd_func_short)MDD_FUNCTION_SIGNATURE(r_Short);
118 typedef
int (*mdd_func_ushort)MDD_FUNCTION_SIGNATURE(r_UShort);
119 typedef
int (*mdd_func_long)MDD_FUNCTION_SIGNATURE(r_Long);
120 typedef
int (*mdd_func_ulong)MDD_FUNCTION_SIGNATURE(r_ULong);
121 typedef
int (*mdd_func_float)MDD_FUNCTION_SIGNATURE(r_Float);
122 typedef
int (*mdd_func_double)MDD_FUNCTION_SIGNATURE(r_Double);
125 typedef struct mdd_function_pointers
127 mdd_func_bool mddf_bool;
128 mdd_func_char mddf_char;
129 mdd_func_octet mddf_octet;
130 mdd_func_short mddf_short;
131 mdd_func_ushort mddf_ushort;
132 mdd_func_long mddf_long;
133 mdd_func_ulong mddf_ulong;
134 mdd_func_float mddf_float;
135 mdd_func_double mddf_double;
136 } mdd_function_pointers;
140 #define MDD_INIT_FUNCTIONS(mfp, tf) \
141 mfp.mddf_bool = (mdd_func_bool)tf; \
142 mfp.mddf_char = (mdd_func_char)tf; \
143 mfp.mddf_octet = (mdd_func_octet)tf; \
144 mfp.mddf_short = (mdd_func_short)tf; \
145 mfp.mddf_ushort = (mdd_func_ushort)tf; \
146 mfp.mddf_long = (mdd_func_long)tf; \
147 mfp.mddf_ulong = (mdd_func_ulong)tf; \
148 mfp.mddf_float = (mdd_func_float)tf; \
149 mfp.mddf_double = (mdd_func_double)tf;
154 extern char *objectCalcStart(
const char *src,
const mdd_function_desc *mfd,
int dim);
157 extern int mdd_objectFunctionPrim(
const mdd_function_pointers *mfp, r_Primitive_Type *primType,
const char *src,
char *dest,
const mdd_function_desc *mfd,
int dim,
int tpsize,
void *auxData);
158 extern int mdd_objectFunctionStruct(
const mdd_function_pointers *mfp,
r_Structure_Type *structType,
const char *src,
char *dest,
const mdd_function_desc *mfd,
int dim,
int tpsize,
void *auxData);
159 extern int mdd_objectFunctionType(
const mdd_function_pointers *mfp,
const r_Type *baseType,
const char *src,
char *dest,
const mdd_function_desc *mfd,
int dim,
int tpsize,
void *auxData);
162 #define MDD_OBJECT_INIT_NEWIV 1
163 #define MDD_OBJECT_INIT_FPSTEP (2 | MDD_OBJECT_INIT_NEWIV)
164 extern char *mdd_objectFunctionInitMdd(r_Ref<r_GMarray> mddPtr, r_Ref<r_GMarray> &newMddPtr, r_Minterval &newInterv,
int tpsize, r_Dimension dim, r_Database *db=NULL);
165 extern mdd_function_desc *mdd_objectFunctionInitData(r_Minterval &interv, r_Minterval &useInterv, r_Minterval &newInterv,
int tpsize,
unsigned int flags=0);
175 int mdd_objectRange(r_Ref<r_GMarray> mddObj, r_Minterval &useInterv,
double &
min,
double &
max);
177 int mdd_createSubcube(r_Ref<r_GMarray> srcMdd, r_Ref<r_GMarray> &newMdd, r_Minterval *domain, r_Database *db);
179 int mdd_objectScaleInter(r_Ref<r_GMarray> srcMdd, r_Minterval &useInterv, r_Ref<r_GMarray> &newMdd, r_Minterval &newInterv);
181 int mdd_objectScaleAverage(r_Ref<r_GMarray> srcMdd, r_Minterval &useInterv, r_Ref<r_GMarray> &newMdd, r_Minterval &newInterv);
183 int mdd_objectScaleSimple(r_Ref<r_GMarray> srcMdd, r_Minterval &useInterv, r_Ref<r_GMarray> &newMdd, r_Minterval &newInterv);
185 int mdd_objectChangeEndianness(r_Ref<r_GMarray> srcMdd, r_Minterval &useInterv, r_Ref<r_GMarray> *newMdd=NULL, r_Minterval *newInterv=NULL);
187 #if (defined(EARLY_TEMPLATE) && defined(__EXECUTABLE__))
188 #include "rviewMDD.cpp"
Definition: structuretype.hh:56
Definition: raslib/type.hh:56
#define min(a, b)
Definition: defs.h:78
#define max(a, b)
Definition: defs.h:77