Chrysalis - Project Composer
Loading...
Searching...
No Matches
NameProxy.h
Go to the documentation of this file.
1#ifndef CHRYSALIS_NAMEPROXY_H
2#define CHRYSALIS_NAMEPROXY_H
3
4#include "Option.h"
5#include "PointProxy.h"
6#include "ConditionProxy.h"
7#include "arguments/ConditionalArgument.h"
8#include "arguments/ExpressionArgument.h"
9#include "arguments/OptionArgument.h"
10#include "arguments/VectorArgument.h"
11#include "instructions/BasePatternInstruction.h"
12#include "instructions/ExpressionInstruction.h"
13#include "instructions/FreePointInstruction.h"
14#include "instructions/RelativePointInstruction.h"
15
19namespace Chrysalis::Proxy {
20 class Name {
21 public:
22 class Vector;
23 class Number;
24 explicit Name(const std::string& name);
25
26 operator args::name();
27 operator args::number();
28 operator const OptionArgument*(); // NOLINT(cppcoreguidelines-explicit-constructor)
29 operator const PatternPointArgument*(); // NOLINT(cppcoreguidelines-explicit-constructor)
30
31 Number operator=(double value);
32 Number operator=(args::number&& number);
33 const args::condition* operator<(Name&& other);
35 FreePointInstruction* operator()(double x, double y);
36 private:
37 args::name name_;
38 };
39 Condition::Number operator<<(double value, Name&& name);
41 public:
42 class Line;
43 explicit Vector(args::name&& name, const args::vector* vector);
44 operator RelativePointInstruction*(); // NOLINT(cppcoreguidelines-explicit-constructor)
45 Line operator|(const args::line* line);
46 private:
47 args::name name_;
48 const args::vector* vector_;
49 };
51 public:
52 explicit Line(args::name&& name, const args::vector* vector, const args::line* line);
53 operator RelativePointInstruction*(); // NOLINT(cppcoreguidelines-explicit-constructor)
54 private:
55 args::name name_;
56 const args::line* line_;
57 const args::vector* vector_;
58 };
60 public:
61 explicit Number(args::name&& name, args::number&& number);
62 operator ExpressionInstruction*();
63 private:
64 args::name name_;
65 args::number number_;
66 };
67}
69
70#endif //CHRYSALIS_NAMEPROXY_H
#define name(arg)
Definition Project1Composer.cpp:92
Definition ConditionProxy.h:13
Definition NameProxy.h:59
Number(args::name &&name, args::number &&number)
Definition NameProxy.cpp:22
Definition NameProxy.h:50
Line(args::name &&name, const args::vector *vector, const args::line *line)
Definition NameProxy.cpp:19
Definition NameProxy.h:40
Vector(args::name &&name, const args::vector *vector)
Definition NameProxy.cpp:16
Line operator|(const args::line *line)
Definition NameProxy.cpp:44
Definition NameProxy.h:20
Number operator=(double value)
Definition NameProxy.cpp:76
operator args::number()
Definition NameProxy.cpp:33
operator args::name()
Definition NameProxy.cpp:29
Proxy::Number::Point operator()(args::number &&number)
Definition NameProxy.cpp:41
Name(const std::string &name)
Definition NameProxy.cpp:14
const args::condition * operator<(Name &&other)
Definition NameProxy.cpp:84
Definition NumberProxy.h:37
Definition ConditionProxy.h:9
Condition::Number operator<<(double value, Name &&name)
Definition NameProxy.cpp:72