Chrysalis - Project Composer
Loading...
Searching...
No Matches
composer.h File Reference
#include "Project.h"
#include "arguments/BinaryFunctionArgument.h"
Include dependency graph for composer.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  Chrysalis

Macros

#define _min_(operand1, operand2)
#define _ray_(origin, angle)
#define _point_(pointName)
#define _param_(parameterName)
#define _option_(optionName)
#define _outline_(outlineName)
#define _expression_(expressionName)
#define up   90
#define right   0
#define left   180
#define down   270
#define _angle_(from, to)
#define _length_(from, to)
#define VECTOR_2(angle, length)
#define VECTOR_3(origin, angle, length)
#define _vector_(...)
#define REPEAT_SEGMENT(d, data, elem)
#define segments(...)
#define _segment_(from, to)
#define DART_2(from, to)
#define DART_3(origin, angle, length)
#define dart(...)
#define edge(from, to)

Functions

args::number Chrysalis::operator""_ (long double number)
std::unique_ptr< BinaryFunctionArgument > Chrysalis::operator+ (args::number &&a, args::number &&b)
std::unique_ptr< BinaryFunctionArgument > Chrysalis::operator- (args::number &&a, args::number &&b)
std::unique_ptr< BinaryFunctionArgument > Chrysalis::operator* (args::number &&a, args::number &&b)
std::unique_ptr< BinaryFunctionArgument > Chrysalis::operator/ (args::number &&a, args::number &&b)
std::unique_ptr< BinaryFunctionArgument > Chrysalis::operator+ (args::number &&a, double b)
std::unique_ptr< BinaryFunctionArgument > Chrysalis::operator- (args::number &&a, double b)
std::unique_ptr< BinaryFunctionArgument > Chrysalis::operator* (args::number &&a, double b)
std::unique_ptr< BinaryFunctionArgument > Chrysalis::operator/ (args::number &&a, double b)
std::unique_ptr< BinaryFunctionArgument > Chrysalis::operator+ (double a, args::number &&b)
std::unique_ptr< BinaryFunctionArgument > Chrysalis::operator- (double a, args::number &&b)
std::unique_ptr< BinaryFunctionArgument > Chrysalis::operator* (double a, args::number &&b)
std::unique_ptr< BinaryFunctionArgument > Chrysalis::operator/ (double a, args::number &&b)
const args::condition * Chrysalis::operator< (args::number &&a, args::number &&b)

Macro Definition Documentation

◆ _angle_

#define _angle_ ( from,
to )
Value:
std::make_unique<VectorFunctionArgument::Angle>(_point_(from), _point_(to))
#define _point_(pointName)
Definition composer.h:9

◆ _expression_

#define _expression_ ( expressionName)
Value:
Proxy::Name(Expressions::expressionName)

◆ _length_

#define _length_ ( from,
to )
Value:
std::make_unique<VectorFunctionArgument::Length>(_point_(from), _point_(to))

◆ _min_

#define _min_ ( operand1,
operand2 )
Value:
std::make_unique<BinaryFunctionArgument::Min>(operand1, operand2)

◆ _option_

#define _option_ ( optionName)
Value:
Proxy::Name(Options::optionName)

◆ _outline_

#define _outline_ ( outlineName)
Value:
Proxy::Outline(OutlineName::outlineName)

◆ _param_

#define _param_ ( parameterName)
Value:
std::make_unique<ParameterArgument>(project_->getParameters()->get(ParameterName::parameterName))

◆ _point_

#define _point_ ( pointName)
Value:
Proxy::Name(PointName::pointName)

◆ _ray_

#define _ray_ ( origin,
angle )
Value:
Proxy::Ray(_point_(origin), angle)

◆ _segment_

#define _segment_ ( from,
to )
Value:
Proxy::Segment(new args::segment(_point_(from), _point_(to)))

◆ _vector_

#define _vector_ ( ...)
Value:
BOOST_PP_OVERLOAD(VECTOR_, __VA_ARGS__)(__VA_ARGS__)

◆ dart

#define dart ( ...)
Value:
BOOST_PP_OVERLOAD(DART_, __VA_ARGS__)(__VA_ARGS__)

◆ DART_2

#define DART_2 ( from,
to )
Value:
seg(_segment_(from, to))
#define _segment_(from, to)
Definition composer.h:32

◆ DART_3

#define DART_3 ( origin,
angle,
length )
Value:
vec(_vector_(origin, angle, length))
#define _vector_(...)
Definition composer.h:26

◆ down

#define down   270

◆ edge

#define edge ( from,
to )
Value:
Proxy::Segment(_segment_(from, to))

◆ left

#define left   180

◆ REPEAT_SEGMENT

#define REPEAT_SEGMENT ( d,
data,
elem )
Value:

◆ right

#define right   0

◆ segments

#define segments ( ...)
Value:
new args::container(std::initializer_list<args::line*>{ \
BOOST_PP_SEQ_ENUM(BOOST_PP_SEQ_TRANSFORM(REPEAT_SEGMENT, ~, BOOST_PP_VARIADIC_TO_SEQ(__VA_ARGS__))) \
})
#define REPEAT_SEGMENT(d, data, elem)
Definition composer.h:28

◆ up

#define up   90

◆ VECTOR_2

#define VECTOR_2 ( angle,
length )
Value:
Proxy::Vector(angle, length)

◆ VECTOR_3

#define VECTOR_3 ( origin,
angle,
length )
Value:
Proxy::Vector(_point_(origin), angle, length)