37 #ifndef FCL_FAILED_AT_THIS_CONFIGURATION_H 
   38 #define FCL_FAILED_AT_THIS_CONFIGURATION_H 
   48 #include "fcl/export.h" 
   66     : 
public std::exception {
 
   69       : std::exception(), message_(message) {}
 
   71   const char* 
what() const noexcept final { 
return message_.c_str(); }
 
   87     const std::string& message, 
const char* func, 
const char* file, 
int line);
 
  108 template <
typename S>
 
  110   const auto& m = p.matrix();
 
  111   std::stringstream& ss = *sstream;
 
  112   for (
int row = 0; row < 4; ++row) {
 
  113     for (
int col = 0; col < 4; ++col) {
 
  141 template <
typename Shape1, 
typename Shape2, 
typename Solver, 
typename S>
 
  144                                 const Solver& solver, 
const std::exception& e) {
 
  145   std::stringstream ss;
 
  146   const int digits = 20;
 
  147   ss << std::setprecision(digits);
 
  148   ss << 
"Error with configuration" 
  149      << 
"\n  Original error message: " << e.what()
 
  150      << 
"\n  Shape 1:\n" << s1.representation(digits)
 
  153   ss << 
"\n  Shape 2:\n" << s2.representation(digits)
 
  156   ss << 
"\n  Solver: " << solver;
 
  157   throw std::logic_error(ss.str());
 
  163 #define FCL_THROW_FAILED_AT_THIS_CONFIGURATION(message)            \ 
  164   ::fcl::detail::ThrowFailedAtThisConfiguration(message, __func__, __FILE__, \ 
  167 #endif  // FCL_FAILED_AT_THIS_CONFIGURATION_H