xcal
基于 C++23 的现代图形渲染引擎
载入中...
搜索中...
未找到
scalar.hpp
浏览该文件的文档.
1#pragma once
2#include <xcal/public.h>
3
5
6namespace xcal::property {
7
8class XCAL_API Scalar : public MProperty {
10 public:
11 using data_t = float_t;
12
13 private:
14 Proxy<data_t> value_{this, 0.0f};
15
16 public:
17 Scalar() = default;
18 explicit Scalar(data_t value) : value_(this, value) {}
19 const data_t &value() const { return value_; }
20 // NOLINTNEXTLINE(google-explicit-constructor)
21 operator const data_t &() const { return value_; }
22#define XCAL_SCALAR_OPERATOR(op) \
23 /* NOLINTNEXTLINE */ \
24 Scalar &operator op(float_t value) { \
25 value_ op value; \
26 return *this; \
27 }
32#undef XCAL_SCALAR_OPERATOR
33
35 value_ = value;
36 return *this;
37 }
38};
39
40} // namespace xcal::property
Scalar(data_t value)
Definition scalar.hpp:18
const data_t & value() const
Definition scalar.hpp:19
Scalar & operator=(float_t value)
Definition scalar.hpp:34
float float_t
Definition public.h:27
#define XCAL_PROPERTY_TYPE(type)
Definition property.hpp:6
#define XCAL_API
Definition public.h:69
#define XCAL_SCALAR_OPERATOR(op)
Definition scalar.hpp:22