Classes | Namespaces | Macros | Typedefs | Functions | Variables
obb.cpp File Reference
#include <iostream>
#include <fstream>
#include <sstream>
#include <chrono>
#include "coal/narrowphase/narrowphase.h"
#include "../src/BV/OBB.h"
#include "coal/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

CoalScalar obbDisjoint_impls::_computeDistanceForCase1 (const Vec3s &T, const Vec3s &a, const Vec3s &b, const Matrix3s &Bf)
 
CoalScalar obbDisjoint_impls::_computeDistanceForCase2 (const Matrix3s &B, const Vec3s &T, const Vec3s &a, const Vec3s &b, const Matrix3s &Bf)
 
BenchmarkResult benchmark_obb_case (const Matrix3s &B, const Vec3s &T, const Vec3s &a, const Vec3s &b, const CollisionRequest &request, std::size_t N)
 
bool obbDisjoint_impls::distance (const Matrix3s &B, const Vec3s &T, const Vec3s &a, const Vec3s &b, CoalScalar &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 Matrix3s &B, const Vec3s &T, const Vec3s &a, const Vec3s &b, const CoalScalar &breakDistance2, CoalScalar &squaredLowerBoundDistance)
 
bool obbDisjoint_impls::originalWithNoLowerBound (const Matrix3s &B, const Vec3s &T, const Vec3s &a, const Vec3s &b, const CoalScalar &, CoalScalar &squaredLowerBoundDistance)
 
const Eigen::IOFormat py_fmt (Eigen::FullPrecision, 0, ", ", ",\n", "(", ",)", "( ", ", )")
 
void randomOBBs (Vec3s &a, Vec3s &b, CoalScalar extentNorm)
 
void randomTransform (Matrix3s &B, Vec3s &T, const Vec3s &a, const Vec3s &b, const CoalScalar extentNorm)
 
int obbDisjoint_impls::separatingAxisId (const Matrix3s &B, const Vec3s &T, const Vec3s &a, const Vec3s &b, const CoalScalar &breakDistance2, CoalScalar &squaredLowerBoundDistance)
 
bool obbDisjoint_impls::withManualLoopUnrolling_1 (const Matrix3s &B, const Vec3s &T, const Vec3s &a, const Vec3s &b, const CoalScalar &breakDistance2, CoalScalar &squaredLowerBoundDistance)
 
bool obbDisjoint_impls::withManualLoopUnrolling_2 (const Matrix3s &B, const Vec3s &T, const Vec3s &a, const Vec3s &b, const CoalScalar &breakDistance2, CoalScalar &squaredLowerBoundDistance)
 
bool obbDisjoint_impls::withPartialTemplateLoopUnrolling_1 (const Matrix3s &B, const Vec3s &T, const Vec3s &a, const Vec3s &b, const CoalScalar &breakDistance2, CoalScalar &squaredLowerBoundDistance)
 
bool obbDisjoint_impls::withRuntimeLoop (const Matrix3s &B, const Vec3s &T, const Vec3s &a, const Vec3s &b, const CoalScalar &breakDistance2, CoalScalar &squaredLowerBoundDistance)
 
bool obbDisjoint_impls::withTemplateLoopUnrolling_1 (const Matrix3s &B, const Vec3s &T, const Vec3s &a, const Vec3s &b, const CoalScalar &breakDistance2, CoalScalar &squaredLowerBoundDistance)
 

Variables

const CoalScalar 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 Matrix3s B,
const Vec3s T,
const Vec3s a,
const Vec3s b,
const CollisionRequest request,
std::size_t  N 
)

Definition at line 1176 of file obb.cpp.

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 1317 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 1282 of file obb.cpp.

◆ operator<<()

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

Definition at line 1172 of file obb.cpp.

◆ py_fmt()

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

◆ randomOBBs()

void randomOBBs ( Vec3s a,
Vec3s b,
CoalScalar  extentNorm 
)

Definition at line 51 of file obb.cpp.

◆ randomTransform()

void randomTransform ( Matrix3s B,
Vec3s T,
const Vec3s a,
const Vec3s b,
const CoalScalar  extentNorm 
)

Definition at line 60 of file obb.cpp.

Variable Documentation

◆ eps

const CoalScalar 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 Sat Nov 23 2024 03:44:59