Celeritas  0.5.0-86+4a8eea4
Classes | Macros | Typedefs | Enumerations | Functions | Variables
CsgTypes.hh File Reference
#include <functional>
#include <iosfwd>
#include <string>
#include <variant>
#include <vector>
#include "corecel/Config.hh"
#include "corecel/OpaqueId.hh"
#include "corecel/math/HashUtils.hh"
#include "orange/OrangeTypes.hh"
This graph shows which files directly or indirectly include this file:

Classes

struct  celeritas::orangeinp::True
 Node that represents "always true" for simplification. More...
 
struct  celeritas::orangeinp::False
 Node that represents "always false" for simplification. More...
 
struct  celeritas::orangeinp::Aliased
 (Internal) stand-in node for a replacement for another node ID More...
 
struct  celeritas::orangeinp::Negated
 Node that negates the next ID. More...
 
struct  celeritas::orangeinp::Surface
 Node that is a single surface. More...
 
struct  celeritas::orangeinp::Joined
 Internal node applying an operation to multiple leaf nodes. More...
 

Macros

#define CELER_DEFINE_CSG_NE(CLS)
 

Typedefs

using celeritas::orangeinp::OperatorToken = logic::OperatorToken
 Operator token.
 
using celeritas::orangeinp::NodeId = OpaqueId< struct Node_ >
 Unique identifier for a node.
 
using celeritas::orangeinp::Node = std::variant< True, False, Aliased, Negated, Surface, Joined >
 Generic node.
 

Enumerations

enum class  celeritas::orangeinp::UnitSimplification : size_type { none = 0 , infix_logic , size_ }
 Optional transformations to apply when building a CsgUnit. More...
 

Functions

constexpr bool celeritas::orangeinp::operator== (True const &, True const &)
 
constexpr bool celeritas::orangeinp::operator== (False const &, False const &)
 
constexpr bool celeritas::orangeinp::operator== (Aliased const &a, Aliased const &b)
 
constexpr bool celeritas::orangeinp::operator== (Negated const &a, Negated const &b)
 
constexpr bool celeritas::orangeinp::operator== (Surface const &a, Surface const &b)
 
constexpr bool celeritas::orangeinp::operator== (Joined const &a, Joined const &b)
 
constexpr bool celeritas::orangeinp::operator!= (True const &a, True const &b)
 
constexpr bool celeritas::orangeinp::operator!= (False const &a, False const &b)
 
constexpr bool celeritas::orangeinp::operator!= (Aliased const &a, Aliased const &b)
 
constexpr bool celeritas::orangeinp::operator!= (Negated const &a, Negated const &b)
 
constexpr bool celeritas::orangeinp::operator!= (Surface const &a, Surface const &b)
 
constexpr bool celeritas::orangeinp::operator!= (Joined const &a, Joined const &b)
 
std::string celeritas::orangeinp::to_string (Node const &n)
 Convert a node variant to a string.
 
constexpr bool celeritas::orangeinp::is_boolean_node (Node const &n)
 Whether a node is a boolean (True or False instances)
 
std::ostream & celeritas::orangeinp::operator<< (std::ostream &os, True const &)
 
std::ostream & celeritas::orangeinp::operator<< (std::ostream &os, False const &)
 
std::ostream & celeritas::orangeinp::operator<< (std::ostream &os, Aliased const &n)
 
std::ostream & celeritas::orangeinp::operator<< (std::ostream &os, Negated const &n)
 
std::ostream & celeritas::orangeinp::operator<< (std::ostream &os, Surface const &n)
 
std::ostream & celeritas::orangeinp::operator<< (std::ostream &os, Joined const &n)
 
std::ostream & celeritas::orangeinp::operator<< (std::ostream &os, Node const &node)
 

Variables

constexpr OperatorToken celeritas::orangeinp::op_and = OperatorToken::land
 
constexpr OperatorToken celeritas::orangeinp::op_or = OperatorToken::lor
 

Macro Definition Documentation

◆ CELER_DEFINE_CSG_NE

#define CELER_DEFINE_CSG_NE (   CLS)
Value:
inline constexpr bool operator!=(CLS const& a, CLS const& b) \
{ \
return !(a == b); \
}

Enumeration Type Documentation

◆ UnitSimplification

Optional transformations to apply when building a CsgUnit.

Enumerator
none 

No simplification.

infix_logic 

CsgTree suitable for infix logic evaluation.

Function Documentation

◆ operator<<() [1/7]

std::ostream & celeritas::orangeinp::operator<< ( std::ostream &  os,
Aliased const &  n 
)

Write Node variants to a stream

◆ operator<<() [2/7]

std::ostream & celeritas::orangeinp::operator<< ( std::ostream &  os,
False const &   
)

Write Node variants to a stream

◆ operator<<() [3/7]

std::ostream & celeritas::orangeinp::operator<< ( std::ostream &  os,
Joined const &  n 
)

Write Node variants to a stream

◆ operator<<() [4/7]

std::ostream & celeritas::orangeinp::operator<< ( std::ostream &  os,
Negated const &  n 
)

Write Node variants to a stream

◆ operator<<() [5/7]

std::ostream & celeritas::orangeinp::operator<< ( std::ostream &  os,
Node const &  node 
)

Write Node variants to a stream

◆ operator<<() [6/7]

std::ostream & celeritas::orangeinp::operator<< ( std::ostream &  os,
Surface const &  n 
)

Write Node variants to a stream

◆ operator<<() [7/7]

std::ostream & celeritas::orangeinp::operator<< ( std::ostream &  os,
True const &   
)

Write Node variants to a stream