Update procedures
[shapes.git] / source / consts.h
blobca7a53cec7dd165091f64b2d306934b81a55911e
1 /* This file is part of Shapes.
3 * Shapes is free software: you can redistribute it and/or modify
4 * it under the terms of the GNU General Public License as published by
5 * the Free Software Foundation, either version 3 of the License, or
6 * any later version.
8 * Shapes is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
13 * You should have received a copy of the GNU General Public License
14 * along with Shapes. If not, see <http://www.gnu.org/licenses/>.
16 * Copyright 2008, 2014, 2015 Henrik Tidefelt
19 #pragma once
21 #include <cmath>
23 #include "elementarylength.h"
24 #include "identifier.h"
26 #include "refcount.h"
27 #include <cstddef> /* For size_t. */
31 namespace Shapes
33 namespace Interaction
36 extern RefCountPtr< const char > SEVERAL_TYPES;
37 extern RefCountPtr< const char > PUBLIC_SCOPE_NAME;
38 extern RefCountPtr< const char > PROTECTED_SCOPE_NAME;
40 extern const char NAMESPACE_SEPARATOR[];
41 extern const char ENCAPSULATION_MARK[];
42 extern const char DYNAMIC_VARIABLE_PREFIX[];
43 extern const char STATE_PREFIX[];
44 extern const char DYNAMIC_STATE_PREFIX[];
45 extern const char BUILD_REQ_LIBJPEG[];
46 extern const char BUILD_REQ_LIBPNG[];
47 extern const char BUILD_REQ_FREETYPE[];
48 extern const char BUILD_REQ_FONTCONFIG[];
49 extern const char BUILD_REQ_OPENSSL[];
52 namespace Lang
55 extern const RefCountPtr< const Ast::NamespacePath > THE_NAMESPACE_Shapes;
56 extern const RefCountPtr< const Ast::NamespacePath > THE_NAMESPACE_Shapes_Data;
57 extern const RefCountPtr< const Ast::NamespacePath > THE_NAMESPACE_Shapes_Data_Type;
58 extern const RefCountPtr< const Ast::NamespacePath > THE_NAMESPACE_Shapes_Debug;
59 extern const RefCountPtr< const Ast::NamespacePath > THE_NAMESPACE_Shapes_Geometry;
60 extern const RefCountPtr< const Ast::NamespacePath > THE_NAMESPACE_Shapes_Geometry3D;
61 extern const RefCountPtr< const Ast::NamespacePath > THE_NAMESPACE_Shapes_Graphics;
62 extern const RefCountPtr< const Ast::NamespacePath > THE_NAMESPACE_Shapes_Graphics_PDF;
63 extern const RefCountPtr< const Ast::NamespacePath > THE_NAMESPACE_Shapes_Graphics_Tag;
64 extern const RefCountPtr< const Ast::NamespacePath > THE_NAMESPACE_Shapes_Graphics3D;
65 extern const RefCountPtr< const Ast::NamespacePath > THE_NAMESPACE_Shapes_Graphics3D_Tag;
66 extern const RefCountPtr< const Ast::NamespacePath > THE_NAMESPACE_Shapes_IO;
67 extern const RefCountPtr< const Ast::NamespacePath > THE_NAMESPACE_Shapes_Layout;
68 extern const RefCountPtr< const Ast::NamespacePath > THE_NAMESPACE_Shapes_Numeric;
69 extern const RefCountPtr< const Ast::NamespacePath > THE_NAMESPACE_Shapes_Numeric_Constant;
70 extern const RefCountPtr< const Ast::NamespacePath > THE_NAMESPACE_Shapes_Numeric_Math;
71 extern const RefCountPtr< const Ast::NamespacePath > THE_NAMESPACE_Shapes_Numeric_Random;
72 extern const RefCountPtr< const Ast::NamespacePath > THE_NAMESPACE_Shapes_String;
73 extern const RefCountPtr< const Ast::NamespacePath > THE_NAMESPACE_Shapes_Text;
74 extern const RefCountPtr< const Ast::NamespacePath > THE_NAMESPACE_Shapes_Text_Font;
75 extern const RefCountPtr< const Ast::NamespacePath > THE_NAMESPACE_Shapes_Traits;
76 extern const RefCountPtr< const Ast::NamespacePath > THE_NAMESPACE_Shapes_Traits_BW;
77 extern const RefCountPtr< const Ast::NamespacePath > THE_NAMESPACE_Shapes_Traits_Blend;
78 extern const RefCountPtr< const Ast::NamespacePath > THE_NAMESPACE_Shapes_Traits_Cap;
79 extern const RefCountPtr< const Ast::NamespacePath > THE_NAMESPACE_Shapes_Traits_Device;
80 extern const RefCountPtr< const Ast::NamespacePath > THE_NAMESPACE_Shapes_Traits_Join;
81 extern const RefCountPtr< const Ast::NamespacePath > THE_NAMESPACE_Shapes_Traits_Light;
82 extern const RefCountPtr< const Ast::NamespacePath > THE_NAMESPACE_Shapes_Traits_RGB;
84 extern const char TEX_SYNTAX_ID[];
85 extern const Ast::Identifier SELF_ID;
87 extern const char MESSAGE_DRAWABLE_DRAW_ID[];
89 extern const char CONTINUATION_ID_ERROR[];
91 extern const Ast::PlacedIdentifier HANDLER_NO_INTERSECTION;
93 extern const Ast::PlacedIdentifier CANVAS_ID;
94 extern const Ast::PlacedIdentifier CATALOG_ID;
96 extern const Ast::PlacedIdentifier DYNAMIC_VARIABLE_ID_EYEZ;
97 extern const Ast::PlacedIdentifier DYNAMIC_VARIABLE_ID_TEX_BLEED;
98 extern const Ast::PlacedIdentifier DYNAMIC_VARIABLE_ID_DEFAULT_UNIT;
99 extern const Ast::PlacedIdentifier DYNAMIC_VARIABLE_ID_BLEND_SPACE;
100 extern const Ast::PlacedIdentifier DYNAMIC_VARIABLE_ID_STROKING;
101 extern const Ast::PlacedIdentifier DYNAMIC_VARIABLE_ID_WIDTH;
102 extern const Ast::PlacedIdentifier DYNAMIC_VARIABLE_ID_NONSTROKING;
103 extern const Ast::PlacedIdentifier DYNAMIC_VARIABLE_ID_AUTOINTENSITY;
105 extern const Ast::PlacedIdentifier DYNAMIC_VARIABLE_ID_TEXT_SIZE;
106 extern const Ast::PlacedIdentifier DYNAMIC_VARIABLE_ID_TEXT_FONT;
110 namespace Kernel
113 extern const char SPLIT_VAR_PREFIX[];
115 extern const char HTML_DIR[];
116 extern const char RESOURCES_DIR[];
118 extern const Ast::PlacedIdentifier SEQUENTIAL_EXPR_VAR_ID;
119 extern const Ast::PlacedIdentifier MUTATOR_CURRY_VAR_ID;
123 namespace Computation
126 extern const size_t RREL_SIZE;
127 extern const double RREL_TH_STEP;
128 extern const double RREL_TABLE[];
130 extern const double SINGULAR_TRANSFORM_LIMIT;
134 namespace Ast
137 typedef unsigned short int MemberMode;
138 extern const MemberMode MEMBER_ACCESS_BITS;
139 extern const MemberMode MEMBER_ACCESS_PRIVATE;
140 extern const MemberMode MEMBER_ACCESS_PUBLIC_GET;
141 extern const MemberMode MEMBER_ACCESS_PUBLIC_INSERT;
142 extern const MemberMode MEMBER_ACCESS_PROTECTED_GET;
143 extern const MemberMode MEMBER_ACCESS_PROTECTED_INSERT;
144 extern const MemberMode MEMBER_CONST;
145 extern const MemberMode MEMBER_METHOD;
146 extern const MemberMode MEMBER_ABSTRACT;
147 extern const MemberMode MEMBER_FINAL;
148 extern const MemberMode MEMBER_TRANSFORMING;
150 typedef unsigned short int ClassMode;
151 extern const ClassMode CLASS_MODE_ABSTRACT;
152 extern const ClassMode CLASS_MODE_FINAL;
154 typedef unsigned short int FunctionMode;
155 extern const FunctionMode FUNCTION_TRANSFORMING;
159 namespace Concrete
162 const Length HUGE_LENGTH( HUGE_VAL );
163 const Length ZERO_LENGTH( 0 );
164 const Length SOME_LENGTH( 1 );
166 const Speed ZERO_SPEED( 0 );
168 const Time ZERO_TIME( 0 );
169 const Time UNIT_TIME( 1 );
170 const Time HUGE_TIME( HUGE_VAL );
174 namespace BuiltInFonts
177 extern RefCountPtr< const char > TIMES_ROMAN;
178 extern RefCountPtr< const char > TIMES_BOLD;
179 extern RefCountPtr< const char > TIMES_ITALIC;
180 extern RefCountPtr< const char > TIMES_BOLDITALIC;
181 extern RefCountPtr< const char > HELVETICA;
182 extern RefCountPtr< const char > HELVETICA_BOLD;
183 extern RefCountPtr< const char > HELVETICA_OBLIQUE;
184 extern RefCountPtr< const char > HELVETICA_BOLDOBLIQUE;
185 extern RefCountPtr< const char > COURIER;
186 extern RefCountPtr< const char > COURIER_BOLD;
187 extern RefCountPtr< const char > COURIER_OBLIQUE;
188 extern RefCountPtr< const char > COURIER_BOLDOBLIQUE;
189 extern RefCountPtr< const char > SYMBOL;
190 extern RefCountPtr< const char > ZAPFDINGBATS;
191 extern RefCountPtr< const char > NUM_BUILTIN_FONTS;