Classes | Namespaces | Macros | Typedefs | Functions | Variables
obb.cpp File Reference
#include <iostream>
#include <fstream>
#include <sstream>
#include <chrono>
#include <hpp/fcl/narrowphase/narrowphase.h>
#include "../src/BV/OBB.h"
#include <hpp/fcl/internal/shape_shape_func.h>
#include "utility.h"
Include dependency graph for obb.cpp:

Go to the source code of this file.

Classes

struct  BenchmarkResult
 
struct  obbDisjoint_impls::loop_case_1< ia, ib, ja, ka, jb, kb >
 
struct  obbDisjoint_impls::loop_case_2< ib, jb, kb >
 

Namespaces

 obbDisjoint_impls
 

Macros

#define MANUAL_PRODUCT   1
 
#define NB_METHODS   7
 
#define PRODUCT(M33, v3)   (M33.col(0) * v3[0] + M33.col(1) * v3[1] + M33.col(2) * v3[2])
 

Typedefs

typedef std::chrono::high_resolution_clock clock_type
 
typedef clock_type::duration duration_type
 

Functions

FCL_REAL obbDisjoint_impls::_computeDistanceForCase1 (const Vec3f &T, const Vec3f &a, const Vec3f &b, const Matrix3f &Bf)
 
FCL_REAL obbDisjoint_impls::_computeDistanceForCase2 (const Matrix3f &B, const Vec3f &T, const Vec3f &a, const Vec3f &b, const Matrix3f &Bf)
 
BenchmarkResult benchmark_obb_case (const Matrix3f &B, const Vec3f &T, const Vec3f &a, const Vec3f &b, const CollisionRequest &request, std::size_t N)
 
bool obbDisjoint_impls::distance (const Matrix3f &B, const Vec3f &T, const Vec3f &a, const Vec3f &b, FCL_REAL &distance)
 
int main (int argc, char **argv)
 
std::size_t obb_overlap_and_lower_bound_distance (std::ostream *output)
 
std::ostream & operator<< (std::ostream &os, const BenchmarkResult &br)
 
bool obbDisjoint_impls::originalWithLowerBound (const Matrix3f &B, const Vec3f &T, const Vec3f &a, const Vec3f &b, const FCL_REAL &breakDistance2, FCL_REAL &squaredLowerBoundDistance)
 
bool obbDisjoint_impls::originalWithNoLowerBound (const Matrix3f &B, const Vec3f &T, const Vec3f &a, const Vec3f &b, const FCL_REAL &, FCL_REAL &squaredLowerBoundDistance)
 
const Eigen::IOFormat py_fmt (Eigen::FullPrecision, 0, ", ", ",\, "(", ",)", "(", ",)")
 
void randomOBBs (Vec3f &a, Vec3f &b, FCL_REAL extentNorm)
 
void randomTransform (Matrix3f &B, Vec3f &T, const Vec3f &a, const Vec3f &b, const FCL_REAL extentNorm)
 
int obbDisjoint_impls::separatingAxisId (const Matrix3f &B, const Vec3f &T, const Vec3f &a, const Vec3f &b, const FCL_REAL &breakDistance2, FCL_REAL &squaredLowerBoundDistance)
 
bool obbDisjoint_impls::withManualLoopUnrolling_1 (const Matrix3f &B, const Vec3f &T, const Vec3f &a, const Vec3f &b, const FCL_REAL &breakDistance2, FCL_REAL &squaredLowerBoundDistance)
 
bool obbDisjoint_impls::withManualLoopUnrolling_2 (const Matrix3f &B, const Vec3f &T, const Vec3f &a, const Vec3f &b, const FCL_REAL &breakDistance2, FCL_REAL &squaredLowerBoundDistance)
 
bool obbDisjoint_impls::withPartialTemplateLoopUnrolling_1 (const Matrix3f &B, const Vec3f &T, const Vec3f &a, const Vec3f &b, const FCL_REAL &breakDistance2, FCL_REAL &squaredLowerBoundDistance)
 
bool obbDisjoint_impls::withRuntimeLoop (const Matrix3f &B, const Vec3f &T, const Vec3f &a, const Vec3f &b, const FCL_REAL &breakDistance2, FCL_REAL &squaredLowerBoundDistance)
 
bool obbDisjoint_impls::withTemplateLoopUnrolling_1 (const Matrix3f &B, const Vec3f &T, const Vec3f &a, const Vec3f &b, const FCL_REAL &breakDistance2, FCL_REAL &squaredLowerBoundDistance)
 

Variables

const FCL_REAL eps = 1.5e-7
 
const char * sep = ",\t"
 

Macro Definition Documentation

◆ MANUAL_PRODUCT

#define MANUAL_PRODUCT   1

Definition at line 80 of file obb.cpp.

◆ NB_METHODS

#define NB_METHODS   7

Definition at line 79 of file obb.cpp.

◆ PRODUCT

#define PRODUCT (   M33,
  v3 
)    (M33.col(0) * v3[0] + M33.col(1) * v3[1] + M33.col(2) * v3[2])

Definition at line 83 of file obb.cpp.

Typedef Documentation

◆ clock_type

typedef std::chrono::high_resolution_clock clock_type

Definition at line 89 of file obb.cpp.

◆ duration_type

typedef clock_type::duration duration_type

Definition at line 90 of file obb.cpp.

Function Documentation

◆ benchmark_obb_case()

BenchmarkResult benchmark_obb_case ( const Matrix3f B,
const Vec3f T,
const Vec3f a,
const Vec3f b,
const CollisionRequest request,
std::size_t  N 
)

Definition at line 1171 of file obb.cpp.

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 1312 of file obb.cpp.

◆ obb_overlap_and_lower_bound_distance()

std::size_t obb_overlap_and_lower_bound_distance ( std::ostream *  output)

Definition at line 1277 of file obb.cpp.

◆ operator<<()

std::ostream& operator<< ( std::ostream &  os,
const BenchmarkResult br 
)

Definition at line 1167 of file obb.cpp.

◆ py_fmt()

const Eigen::IOFormat py_fmt ( Eigen::FullPrecision  ,
,
,
,
,
,
"(", ",)"  ,
"(", ",)"   
)

◆ randomOBBs()

void randomOBBs ( Vec3f a,
Vec3f b,
FCL_REAL  extentNorm 
)

Definition at line 51 of file obb.cpp.

◆ randomTransform()

void randomTransform ( Matrix3f B,
Vec3f T,
const Vec3f a,
const Vec3f b,
const FCL_REAL  extentNorm 
)

Definition at line 60 of file obb.cpp.

Variable Documentation

◆ eps

const FCL_REAL eps = 1.5e-7

Definition at line 93 of file obb.cpp.

◆ sep

const char* sep = ",\t"

Definition at line 92 of file obb.cpp.



hpp-fcl
Author(s):
autogenerated on Fri Jun 2 2023 02:39:02