Go to the documentation of this file. 1 #ifndef OGLPLUS_TEXGEN_CONSTANTS_HPP
9 #define OGLPLUS_TEXGEN_CONSTANTS_HPP
14 namespace eagine::oglp::texgen {
17 constant_intf& constant;
18 compile_context& context;
20 std::ostream&
operator<<(std::ostream& out,
const constant_id&);
23 class base_constant :
public constant_intf {
29 virtual std::ostream& value(std::ostream&, compile_context&) = 0;
31 std::ostream& definitions(std::ostream&, compile_context&)
override;
33 std::ostream& expression(std::ostream&, compile_context&)
override;
36 class constant_pi :
public base_constant {
40 std::ostream& value(std::ostream&, compile_context&) override;
43 class constant_phi : public base_constant {
47 std::ostream& value(std::ostream&, compile_context&) override;
52 #if !OGLPLUS_LINK_LIBRARY || defined(OGLPLUS_IMPLEMENTING_LIBRARY)
53 #include <oglplus/texgen/constants.inl>
56 #endif // OGLPLUS_TEXGEN_CONSTANTS_HPP
value_type
Value tree value element data type enumeration.
Definition: interface.hpp:27
basic_string_span< const char > string_view
Alias for const string views.
Definition: string_span.hpp:116
static auto operator<<(std::ostream &out, const identifier_name< M > &n) -> std::ostream &
Operator for writing identifier_name into output streams.
Definition: identifier.hpp:159
basic_identifier< 10, 6, default_identifier_char_set, identifier_t > identifier
Default identifier type used throughout the project.
Definition: identifier.hpp:346