ACloudViewer  3.9.4
A Modern Library for 3D Data Processing
CVMiscTools.cpp File Reference
#include "CVMiscTools.h"
#include "CVConst.h"
#include <algorithm>
#include <cassert>
#include <cstring>
Include dependency graph for CVMiscTools.cpp:

Go to the source code of this file.

Macros

#define FINDMINMAX(x0, x1, x2, minV, maxV)
 
#define AXISTEST_X01(a, b, fa, fb)
 
#define AXISTEST_X2(a, b, fa, fb)
 
#define AXISTEST_Y02(a, b, fa, fb)
 
#define AXISTEST_Y1(a, b, fa, fb)
 
#define AXISTEST_Z12(a, b, fa, fb)
 
#define AXISTEST_Z0(a, b, fa, fb)
 

Macro Definition Documentation

◆ AXISTEST_X01

#define AXISTEST_X01 (   a,
  b,
  fa,
  fb 
)
Value:
minV = a * v0[1] - b * v0[2]; \
maxV = a * v2[1] - b * v2[2]; \
if (maxV < minV) std::swap(minV, maxV); \
rad = fa * boxhalfSize.y + fb * boxhalfSize.z; \
if (minV > rad || maxV < -rad) return 0;
void swap(cloudViewer::core::SmallVectorImpl< T > &LHS, cloudViewer::core::SmallVectorImpl< T > &RHS)
Implement std::swap in terms of SmallVector swap.
Definition: SmallVector.h:1370

Definition at line 43 of file CVMiscTools.cpp.

◆ AXISTEST_X2

#define AXISTEST_X2 (   a,
  b,
  fa,
  fb 
)
Value:
minV = a * v0[1] - b * v0[2]; \
maxV = a * v1[1] - b * v1[2]; \
if (maxV < minV) std::swap(minV, maxV); \
rad = fa * boxhalfSize.y + fb * boxhalfSize.z; \
if (minV > rad || maxV < -rad) return 0;

Definition at line 49 of file CVMiscTools.cpp.

◆ AXISTEST_Y02

#define AXISTEST_Y02 (   a,
  b,
  fa,
  fb 
)
Value:
minV = -a * v0[0] + b * v0[2]; \
maxV = -a * v2[0] + b * v2[2]; \
if (maxV < minV) std::swap(minV, maxV); \
rad = fa * boxhalfSize.x + fb * boxhalfSize.z; \
if (minV > rad || maxV < -rad) return 0;

Definition at line 57 of file CVMiscTools.cpp.

◆ AXISTEST_Y1

#define AXISTEST_Y1 (   a,
  b,
  fa,
  fb 
)
Value:
minV = -a * v0[0] + b * v0[2]; \
maxV = -a * v1[0] + b * v1[2]; \
if (maxV < minV) std::swap(minV, maxV); \
rad = fa * boxhalfSize.x + fb * boxhalfSize.z; \
if (minV > rad || maxV < -rad) return 0;

Definition at line 63 of file CVMiscTools.cpp.

◆ AXISTEST_Z0

#define AXISTEST_Z0 (   a,
  b,
  fa,
  fb 
)
Value:
minV = a * v0[0] - b * v0[1]; \
maxV = a * v1[0] - b * v1[1]; \
if (maxV < minV) std::swap(minV, maxV); \
rad = fa * boxhalfSize.x + fb * boxhalfSize.y; \
if (minV > rad || maxV < -rad) return 0;

Definition at line 77 of file CVMiscTools.cpp.

◆ AXISTEST_Z12

#define AXISTEST_Z12 (   a,
  b,
  fa,
  fb 
)
Value:
minV = a * v1[0] - b * v1[1]; \
maxV = a * v2[0] - b * v2[1]; \
if (maxV < minV) std::swap(minV, maxV); \
rad = fa * boxhalfSize.x + fb * boxhalfSize.y; \
if (minV > rad || maxV < -rad) return 0;

Definition at line 71 of file CVMiscTools.cpp.

◆ FINDMINMAX

#define FINDMINMAX (   x0,
  x1,
  x2,
  minV,
  maxV 
)
Value:
minV = maxV = x0; \
if (x1 < minV) \
minV = x1; \
else if (x1 > maxV) \
maxV = x1; \
if (x2 < minV) \
minV = x2; \
else if (x2 > maxV) \
maxV = x2;

Definition at line 31 of file CVMiscTools.cpp.