21#include <Inventor/nodes/SoVertexProperty.h>
25class SoVertexProperty;
31namespace PCLInventorTools {
44 dstVal->setValue(data[0], data[1]);
55 dstVal->setValue(0.f, 0.f);
65 dstVal->setValue(data, data);
80 dstVal->setValue(data[0], data[1], data[2]);
91 dstVal->setValue(0.f, 0.f, 0.f);
101 dstVal->setValue(data, data, data);
119 *dstVal = (byteVal | (byteVal << 8) | (byteVal << 16) | (byteVal << 24));
130 *dstVal = ((
static_cast<MLuint32>(data[3]) ) |
131 (
static_cast<MLuint32>(data[2]) << 8) |
132 (
static_cast<MLuint32>(data[1]) << 16) |
133 (
static_cast<MLuint32>(data[0]) << 24) );
141 *dstVal = ( (( (*rgbaVal) >> 24) & 0x000000ff) |
142 (( (*rgbaVal) >> 8) & 0x0000ff00) |
143 (( (*rgbaVal) << 8) & 0x00ff0000) |
144 (( (*rgbaVal) << 24) & 0xff000000) );
153#if defined(_MSC_VER) && !defined(_WIN64) && ((_MSC_VER == 1600) || (_MSC_VER == 1900))
154#define SpecializedPCLPointXYZ EIGEN_WORKAROUND_MSVC_STL_SUPPORT(pcl::PointXYZ)
156#define SpecializedPCLPointXYZ pcl::PointXYZ
163template <
typename DST_VAL_TYPE>
166 const float zeroData_n[4] = {0.f, 0.f, 0.f, 0.f};
173template <
typename POINT_TYPE,
typename DST_VAL_TYPE>
182template <
typename DST_VAL_TYPE>
192template <
typename POINT_TYPE,
typename DST_VAL_TYPE>
197 dstVal[1] += dstVal[0];
254template <
typename POINT_CLOUD_TYPE,
typename SM_MF_VEC_FIELD_TYPE>
256 SM_MF_VEC_FIELD_TYPE &mfvecField,
258 bool duplicateColors=
false,
259 bool mapToRainbow=
false,
260 bool useCurvatureForColor=
false,
261 bool scaleFromInputRange=
false,
262 float inRangeMin=0.f,
263 float inRangeMax=1.f)
266 if (!scaleFromInputRange){
271 const float scaleWidth = fabs(inRangeMax-inRangeMin) < 10e-6f ? 10e-6f : inRangeMax-inRangeMin;
272 const float scaleWidthInv = 1.f/scaleWidth;
275 const size_t numPoints = pointCloud.points.size();
276 if ((numPoints * (
CopyDataAndData_n == storageType ? 2 : 1)) <= ML_NAMESPACE::PCLSupportTools::getSigned32BitMaximumLimit()){
298 const unsigned int rgbaVal = ML_NAMESPACE::PCLSupportTools::getPointRGBA(
pointCloud.points[c]);
318 float data[4]={0,0,0,255.9f};
327 float dataVal = ML_NAMESPACE::PCLSupportTools::getIntensityReplacement(
pointCloud.points[c]);
353 float retRGB[3]={0.f, 0.f, 0.f};
355 data[0] =
retRGB[0]*255.999f;
356 data[1] =
retRGB[1]*255.999f;
357 data[2] =
retRGB[2]*255.999f;
408 "Bad enumerator value passed. Not setting any MField values.");
413 "Inventor cannot handle field sets with more than ML_INT32_MAX points which, "
414 "however, are required for the current input data conversion. Not setting the MField values.");
419 return isSet ? numPoints : 0u;
Disables warnings from PCL headers which otherwise cannot be avoided.
Restores disabled warnings from PCL headers which otherwise cannot be avoided.
#define ML_BAD_PARAMETER
A bad/invalid parameter (or even an inappropriate image) has been passed to a module or an algorithm;...
#define ML_PRINT_ERROR(FUNC_NAME, REASON, HANDLING)
Like ML_PRINT_ERROR_DUMP(FUNC_NAME, REASON, HANDLING, RT_OBJ) without a runtime object to be dumped.
Basic types used in the MeVislab binding of the Point Cloud Library(PCL).
Target mlrange_cast(Source arg)
Generic version of checked ML casts.