CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::Constraint::Constraint Class Referencefinal

An equation or inequality involving one or more variables. More...

#include <CeresEngine/Foundation/Constraint/Constraint.hpp>

Classes

class  Data
 

Public Member Functions

 Constraint ()=default
 
 Constraint (const ConstraintExpression &expr, const ConstraintRelationalOperator op, const ConstraintStrength &strength=ConstraintStrength::required)
 
 Constraint (const Constraint &other, const ConstraintStrength &strength)
 
 Constraint (const Constraint &)=default
 
Constraint & operator= (const Constraint &)=default
 
 Constraint (Constraint &&) noexcept=default
 
Constraint & operator= (Constraint &&) noexcept=default
 
 ~Constraint ()=default
 
const ConstraintExpression & getExpression () const
 
ConstraintRelationalOperator getOperator () const
 
const ConstraintStrength & getStrength () const
 
bool isViolated () const
 
bool isSatisfied () const noexcept
 
bool operator! () const
 
String toString () const
 Gets a string representation of the constraint.
 

Static Private Member Functions

static ConstraintExpression reduce (const ConstraintExpression &expr)
 

Private Attributes

RC< Data > mData
 

Friends

std::ostream & operator<< (std::ostream &stream, const Constraint &constraint)
 Writes the constraint to the given stream.
 
bool operator< (const Constraint &lhs, const Constraint &rhs)
 
bool operator== (const Constraint &lhs, const Constraint &rhs)
 
bool operator!= (const Constraint &lhs, const Constraint &rhs)
 

Detailed Description

An equation or inequality involving one or more variables.

Constraints can be defined as "normal" C++ expressions:

Variable x("x"), y("y");
Constraint a(x + 4 <= y * 2);
Constraint b(x * 2 == y * 3);
An equation or inequality involving one or more variables.
Definition Constraint.hpp:38
constexpr size_t hash(const T &v)
Generates a hash for the provided type.
Definition Hash.hpp:25

Constructor & Destructor Documentation

◆ Constraint() [1/5]

CeresEngine::Constraint::Constraint::Constraint ( )
default

◆ Constraint() [2/5]

CeresEngine::Constraint::Constraint::Constraint ( const ConstraintExpression &  expr,
const ConstraintRelationalOperator  op,
const ConstraintStrength &  strength = ConstraintStrength::required 
)
inline

◆ Constraint() [3/5]

CeresEngine::Constraint::Constraint::Constraint ( const Constraint &  other,
const ConstraintStrength &  strength 
)
inline

◆ Constraint() [4/5]

CeresEngine::Constraint::Constraint::Constraint ( const Constraint &  )
default

◆ Constraint() [5/5]

CeresEngine::Constraint::Constraint::Constraint ( Constraint &&  )
defaultnoexcept

◆ ~Constraint()

CeresEngine::Constraint::Constraint::~Constraint ( )
default

Member Function Documentation

◆ getExpression()

const ConstraintExpression & CeresEngine::Constraint::Constraint::getExpression ( ) const
inline

◆ getOperator()

ConstraintRelationalOperator CeresEngine::Constraint::Constraint::getOperator ( ) const
inline

◆ getStrength()

const ConstraintStrength & CeresEngine::Constraint::Constraint::getStrength ( ) const
inline

◆ isSatisfied()

bool CeresEngine::Constraint::Constraint::isSatisfied ( ) const
inlinenoexcept

◆ isViolated()

bool CeresEngine::Constraint::Constraint::isViolated ( ) const

◆ operator!()

bool CeresEngine::Constraint::Constraint::operator! ( ) const
inline

◆ operator=() [1/2]

Constraint & CeresEngine::Constraint::Constraint::operator= ( const Constraint &  )
default

◆ operator=() [2/2]

Constraint & CeresEngine::Constraint::Constraint::operator= ( Constraint &&  )
defaultnoexcept

◆ reduce()

static ConstraintExpression CeresEngine::Constraint::Constraint::reduce ( const ConstraintExpression &  expr)
staticprivate

◆ toString()

String CeresEngine::Constraint::Constraint::toString ( ) const

Gets a string representation of the constraint.

Friends And Related Symbol Documentation

◆ operator!=

bool operator!= ( const Constraint &  lhs,
const Constraint &  rhs 
)
friend

◆ operator<

bool operator< ( const Constraint &  lhs,
const Constraint &  rhs 
)
friend

◆ operator<<

std::ostream & operator<< ( std::ostream &  stream,
const Constraint &  constraint 
)
friend

Writes the constraint to the given stream.

◆ operator==

bool operator== ( const Constraint &  lhs,
const Constraint &  rhs 
)
friend

Member Data Documentation

◆ mData

RC<Data> CeresEngine::Constraint::Constraint::mData
private

The documentation for this class was generated from the following file: