23#if !defined SOARITHMETIC_H
26#include <Inventor/SbDataType.h>
27#include <Inventor/SbLinear.h>
29#include <Inventor/algorithms/SoAlgorithmsDefs.h>
54 static void initClass();
57 static void exitClass();
122 const float scaleValue
133 const float scaleValue
146 const float shiftFactor
157 const float shiftFactor
171 const float scaleValue
183 const float scaleValue
196 double& min,
double& max
218 double& min,
double& max
229 double& min,
double& max
244 double& min,
double& max
268 double& min,
double& max
280 double& min,
double& max
285 void computeMinMaxTemplate(
289 double& min,
double& max);
292 void computeMinMaxWithUndefinedValueTemplate(
296 const double undefinedValue,
297 double& min,
double& max);
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> 3D box class.
Class encoding a data type.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Arithmetic funct...
SoArithmetic()
Constructor.
int scale(SoCpuBufferObject *inputBufferA, const SbDataType typeA, SoCpuBufferObject *outputBufferB, const SbDataType typeB, const float scaleValue)
B = A * scaleFactor Fast version for Cpu buffers.
virtual int madd(SoBufferObject *inputBufferA, const SbDataType typeA, SoBufferObject *inputBufferB, const SbDataType typeB, SoBufferObject *outputBufferC, const SbDataType typeC, const float scaleValue)
C = A * scale + B Note: C can be a reference to A or B Limitation: typeA and typeB must be the ...
virtual int shift(SoBufferObject *inputBufferA, const SbDataType typeA, SoBufferObject *outputBufferB, const SbDataType typeB, const float shiftFactor)
B = A + shiftFactor Note: B can be a reference to A Limitation: typeA must be the same as typeC...
virtual void computeMinMaxWithUndefinedValue(SoBufferObject *inputBuffer, const SbDataType dataType, const SbVec3i32 &arrayDim, const SbBox3i32 &range, const double undefinedValue, double &min, double &max)
Compute min max of values contained in the specified range of the buffer that are not equal to the sp...
void computeMinMax(SoCpuBufferObject *inputBuffer, const SbDataType dataType, const SbVec3i32 &arrayDim, const SbBox3i32 &range, double &min, double &max)
Compute min max of values contained in the specified range of the buffer.
int mult(SoCpuBufferObject *inputBufferA, const SbDataType typeA, SoCpuBufferObject *inputBufferB, const SbDataType typeB, SoCpuBufferObject *outputBufferC, const SbDataType typeC)
Multiply two buffers into a third one.
virtual void computeMinMaxWithUndefinedValue(SoBufferObject *inputBuffer, const SbDataType dataType, const double undefinedValue, double &min, double &max)
Compute min max of all values contained in a buffer that are not equal to the specified undefined val...
void computeMinMaxWithUndefinedValue(SoCpuBufferObject *inputBuffer, const SbDataType dataType, const SbVec3i32 &arrayDim, const SbBox3i32 &range, const double undefinedValue, double &min, double &max)
Compute min max of values contained in the specified range of the buffer that are not equal to the sp...
virtual int scale(SoBufferObject *inputBufferA, const SbDataType typeA, SoBufferObject *outputBufferB, const SbDataType typeB, const float scaleValue)
B = A * scaleFactor Note: B can be a reference to A Limitation: typeA must be the same as typeC...
int shift(SoCpuBufferObject *inputBufferA, const SbDataType typeA, SoCpuBufferObject *outputBufferB, const SbDataType typeB, const float shiftFactor)
B = A + shiftFactor Fast version for Cpu buffers.
virtual void computeMinMax(SoBufferObject *inputBuffer, const SbDataType dataType, double &min, double &max)
Compute min max of all values contained in a buffer.
virtual int add(SoBufferObject *inputBufferA, const SbDataType typeA, SoBufferObject *inputBufferB, const SbDataType typeB, SoBufferObject *outputBufferC, const SbDataType typeC)
Add two buffers into a third one.
virtual void computeMinMax(SoBufferObject *inputBuffer, const SbDataType dataType, const SbVec3i32 &arrayDim, const SbBox3i32 &range, double &min, double &max)
Compute min max of values contained in the specified range of the buffer.
virtual int mult(SoBufferObject *inputBufferA, const SbDataType typeA, SoBufferObject *inputBufferB, const SbDataType typeB, SoBufferObject *outputBufferC, const SbDataType typeC)
Multiply two buffers into a third one.
int add(SoCpuBufferObject *inputBufferA, const SbDataType typeA, SoCpuBufferObject *inputBufferB, const SbDataType typeB, SoCpuBufferObject *outputBufferC, const SbDataType typeC)
Add two buffers into a third one.
int madd(SoCpuBufferObject *inputBufferA, const SbDataType typeA, SoCpuBufferObject *inputBufferB, const SbDataType typeB, SoCpuBufferObject *outputBufferC, const SbDataType typeC, const float scaleValue)
C = A * scale + B Fast version for Cpu buffers.
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> Abstract base cl...
<a href="IconLegend.html"><img src="extTGS.gif" alt="VSG extension" border="0"></a> CPU buffer objec...