Open3D (C++ API)  0.17.0
Data Structures | Namespaces | Macros | Enumerations | Functions
ShapeChecking.h File Reference

(9238339 (Tue Mar 14 18:49:09 2023 -0700))

#include <iostream>
#include <string>
#include <tuple>
#include <vector>

Go to the source code of this file.

Data Structures

class  open3d::ml::op_util::DimValue
 Class for representing a possibly unknown dimension value. More...
 
class  open3d::ml::op_util::Dim
 Class for dimensions for which the value should be inferred. More...
 
struct  open3d::ml::op_util::DimXPlus
 
struct  open3d::ml::op_util::DimXMinus
 
struct  open3d::ml::op_util::DimXMultiply
 
struct  open3d::ml::op_util::DimXDivide
 
struct  open3d::ml::op_util::DimXOr
 
class  open3d::ml::op_util::DimX< TLeft, TRight, TOp >
 Dim expression class. More...
 
struct  open3d::ml::op_util::CountArgs< args >
 

Namespaces

 open3d
 
 open3d::ml
 
 open3d::ml::op_util
 

Macros

#define DEFINE_DIMX_OPERATOR(opclass, symbol)
 

Enumerations

enum class  open3d::ml::op_util::CSOpt {
  open3d::ml::op_util::NONE = 0 , open3d::ml::op_util::COMBINE_FIRST_DIMS , open3d::ml::op_util::IGNORE_FIRST_DIMS , open3d::ml::op_util::COMBINE_LAST_DIMS ,
  open3d::ml::op_util::IGNORE_LAST_DIMS
}
 Check shape options. More...
 

Functions

DimValue open3d::ml::op_util::UnknownValue ()
 
template<class TLeft , class TRight , class TOp >
bool open3d::ml::op_util::operator== (DimValue a, DimX< TLeft, TRight, TOp > &&b)
 
bool open3d::ml::op_util::operator== (DimValue a, Dim b)
 
template<class TLeft , class TRight , class TOp >
std::string open3d::ml::op_util::GetString (DimX< TLeft, TRight, TOp > a, bool show_value=true)
 
std::string open3d::ml::op_util::GetString (Dim a, bool show_value=true)
 
template<class TLeft , class TRight , class TOp >
int64_t open3d::ml::op_util::GetValue (DimX< TLeft, TRight, TOp > a)
 
template<class TLeft , class TRight , class TOp >
int64_t open3d::ml::op_util::GetValue (DimX< TLeft, TRight, TOp > a, int64_t unknown_dim_value)
 
int64_t open3d::ml::op_util::GetValue (Dim a)
 
int64_t open3d::ml::op_util::GetValue (Dim a, int64_t unknown_dim_value)
 
std::string open3d::ml::op_util::CreateDimXString ()
 
template<class TDimX >
std::string open3d::ml::op_util::CreateDimXString (TDimX dimex)
 
template<class TDimX , class... TArgs>
std::string open3d::ml::op_util::CreateDimXString (TDimX dimex, TArgs... args)
 
template<class TDimX >
void open3d::ml::op_util::CreateDimVector (std::vector< int64_t > &out, int64_t unknown_dim_value, TDimX dimex)
 
template<class TDimX , class... TArgs>
void open3d::ml::op_util::CreateDimVector (std::vector< int64_t > &out, int64_t unknown_dim_value, TDimX dimex, TArgs... args)
 
template<class TDimX >
std::vector< int64_t > open3d::ml::op_util::CreateDimVector (int64_t unknown_dim_value, TDimX dimex)
 
template<class TDimX , class... TArgs>
std::vector< int64_t > open3d::ml::op_util::CreateDimVector (int64_t unknown_dim_value, TDimX dimex, TArgs... args)
 
template<class TLeft , class TRight , class TOp >
bool open3d::ml::op_util::CheckDim (const DimValue &lhs, DimX< TLeft, TRight, TOp > &&rhs)
 
bool open3d::ml::op_util::CheckDim (const DimValue &lhs, Dim d)
 
template<CSOpt Opt = CSOpt::NONE, class TDimX >
bool open3d::ml::op_util::_CheckShape (const std::vector< DimValue > &shape, TDimX &&dimex)
 
template<CSOpt Opt = CSOpt::NONE, class TDimX , class... TArgs>
bool open3d::ml::op_util::_CheckShape (const std::vector< DimValue > &shape, TDimX &&dimex, TArgs &&... args)
 
template<CSOpt Opt = CSOpt::NONE, class TDimX , class... TArgs>
std::tuple< bool, std::string > open3d::ml::op_util::CheckShape (const std::vector< DimValue > &shape, TDimX &&dimex, TArgs &&... args)
 

Macro Definition Documentation

◆ DEFINE_DIMX_OPERATOR

#define DEFINE_DIMX_OPERATOR (   opclass,
  symbol 
)
Value:
inline DimX<Dim, Dim, opclass> operator symbol(Dim a, Dim b) { \
return DimX<Dim, Dim, opclass>::Create(a, b); \
} \
\
template <class TL, class TR, class TOp> \
inline DimX<Dim, DimX<TL, TR, TOp>, opclass> operator symbol( \
Dim a, DimX<TL, TR, TOp>&& b) { \
return DimX<Dim, DimX<TL, TR, TOp>, opclass>::Create(a, b); \
} \
\
template <class TL, class TR, class TOp> \
inline DimX<DimX<TL, TR, TOp>, Dim, opclass> operator symbol( \
DimX<TL, TR, TOp>&& a, Dim b) { \
return DimX<DimX<TL, TR, TOp>, Dim, opclass>::Create(a, b); \
} \
\
template <class TL1, class TR1, class TOp1, class TL2, class TR2, \
class TOp2> \
inline DimX<DimX<TL1, TR1, TOp1>, DimX<TL2, TR2, TOp2>, opclass> \
operator symbol(DimX<TL1, TR1, TOp1>&& a, DimX<TL2, TR2, TOp2>&& b) { \
return DimX<DimX<TL1, TR1, TOp1>, DimX<TL2, TR2, TOp2>, \
opclass>::Create(a, b); \
}