xcal
基于 C++23 的现代图形渲染引擎
载入中...
搜索中...
未找到
xcal
property
position_list.hpp
浏览该文件的文档.
1
#pragma once
2
#include <
xcal/public.h
>
3
4
#include <vector>
5
#include <
xcal/property/core/property.hpp
>
6
#include <
xcal/property/position.hpp
>
7
8
namespace
xcal::property
{
9
10
template
<
typename
__ItemType, Type __Type>
11
class
XCAL_API
_PositionList
:
public
MProperty
{
12
Type
type_()
const override
{
return
__Type; }
13
14
public
:
15
using
data_t
= std::vector<__ItemType>;
16
17
private
:
18
Proxy<data_t>
positions_{
this
, {}};
19
Proxy<bool_t> closed_{
this
,
false
};
20
21
public
:
22
_PositionList
() :
_PositionList
(
data_t
(), false) {}
23
explicit
_PositionList
(
const
data_t
&list) :
_PositionList
(list, false) {}
24
_PositionList
(
const
data_t
&list,
bool_t
closed)
25
: positions_(this, list), closed_(this, closed) {}
26
27
const
Proxy<bool_t>
&
closed
()
const
{
return
closed_; }
28
Proxy<bool_t>
&
closed
() {
return
closed_; }
29
const
std::vector<__ItemType> &
positions
()
const
{
return
positions_; }
30
std::vector<__ItemType> &
positions
() {
return
positions_; }
31
_PositionList
&
operator=
(
const
data_t
&list) {
32
positions_ = list;
33
return
*
this
;
34
}
35
size_t
count
()
const
{
return
((
const
data_t
&)(positions_)).size(); }
36
__ItemType &
operator[]
(
size_t
index) {
return
positions_[index]; }
37
const
__ItemType &
operator[]
(
size_t
index)
const
{
38
return
positions_[index];
39
}
40
};
41
42
using
PositionList
=
_PositionList<xcmath::vec<float_t, 2>
,
Type::PositionList
>;
43
using
ThreeDPositionList
=
44
_PositionList<xcmath::vec<float_t, 3>
,
Type::ThreeDPositionList
>;
45
46
}
// namespace xcal::property
xcal::property::_PositionList
Definition
position_list.hpp:11
xcal::property::_PositionList::operator[]
const __ItemType & operator[](size_t index) const
Definition
position_list.hpp:37
xcal::property::_PositionList::closed
Proxy< bool_t > & closed()
Definition
position_list.hpp:28
xcal::property::_PositionList::data_t
std::vector< __ItemType > data_t
Definition
position_list.hpp:15
xcal::property::_PositionList::positions
const std::vector< __ItemType > & positions() const
Definition
position_list.hpp:29
xcal::property::_PositionList::operator[]
__ItemType & operator[](size_t index)
Definition
position_list.hpp:36
xcal::property::_PositionList::operator=
_PositionList & operator=(const data_t &list)
Definition
position_list.hpp:31
xcal::property::_PositionList::_PositionList
_PositionList(const data_t &list, bool_t closed)
Definition
position_list.hpp:24
xcal::property::_PositionList::closed
const Proxy< bool_t > & closed() const
Definition
position_list.hpp:27
xcal::property::_PositionList::_PositionList
_PositionList(const data_t &list)
Definition
position_list.hpp:23
xcal::property::_PositionList::count
size_t count() const
Definition
position_list.hpp:35
xcal::property::_PositionList::_PositionList
_PositionList()
Definition
position_list.hpp:22
xcal::property::_PositionList::positions
std::vector< __ItemType > & positions()
Definition
position_list.hpp:30
xcal::property::MProperty::Proxy
Definition
property.hpp:32
xcal::property::MProperty
Definition
property.hpp:24
xcal::property
Definition
Interpolation.hpp:18
xcal::property::Type
Type
Definition
property.hpp:11
xcal::property::Type::ThreeDPositionList
@ ThreeDPositionList
xcal::property::Type::PositionList
@ PositionList
xcal::bool_t
bool bool_t
Definition
public.h:28
position.hpp
property.hpp
public.h
XCAL_API
#define XCAL_API
Definition
public.h:69
生成于 2025年 九月 19日 星期五 21:12:12 , 为 xcal使用
1.9.8