WebCFace 2.9.0
Web-based Communication Framework & Dashboard-like UI
Loading...
Searching...
No Matches
components.h
Go to the documentation of this file.
1#pragma once
2#include "component_view.h"
5
7
8namespace internal {
9class ViewBuf;
10}
11
21template <bool V, bool C2, bool C3>
26
27 TemporalComponent() = default;
28 template <typename VT, typename C2T, typename C3T>
29 TemporalComponent(VT v_type, C2T c2_type, C3T c3_type)
30 : component_v(v_type), component_2d(c2_type), component_3d(c3_type) {
31 // V, C2, C3 がtrue <=> VT, C2T, C3T にnullptrでない値を渡して初期化する
32 // V, C2, C3 がfalse <=> VT, C2T, C3T にnullptrを渡す
33 static_assert(V == !std::is_same_v<VT, std::nullptr_t>);
34 static_assert(C2 == !std::is_same_v<C2T, std::nullptr_t>);
35 static_assert(C3 == !std::is_same_v<C3T, std::nullptr_t>);
36 }
37
38 friend class Func;
39 friend class Canvas2D;
40 friend class Canvas3D;
41 friend class View;
42 friend class internal::ViewBuf;
43
48 TemporalComponent &id(std::string_view id) & {
49 if constexpr (V) {
50 component_v.id(id);
51 }
52 if constexpr (C2) {
53 component_2d.id(id);
54 }
55 if constexpr (C3) {
56 component_3d.id(id);
57 }
58 return *this;
59 }
63 TemporalComponent &&id(std::string_view id) && {
64 this->id(id);
65 return std::move(*this);
66 }
71 TemporalComponent &id(std::wstring_view id) & {
72 if constexpr (V) {
73 component_v.id(id);
74 }
75 if constexpr (C2) {
76 component_2d.id(id);
77 }
78 if constexpr (C3) {
79 component_3d.id(id);
80 }
81 return *this;
82 }
86 TemporalComponent &&id(std::wstring_view id) && {
87 this->id(id);
88 return std::move(*this);
89 }
90
99 TemporalComponent &onClick(const Func &func) & {
100 static_assert(V || C2,
101 "onClick can be set only for View, Canvas2D components");
102 if constexpr (V) {
103 component_v.onClick(func);
104 }
105 if constexpr (C2) {
106 component_2d.onClick(func);
107 }
108 return *this;
109 }
110
114 TemporalComponent &&onClick(const Func &func) && {
115 this->onClick(func);
116 return std::move(*this);
117 }
127 static_assert(V || C2,
128 "onClick can be set only for View, Canvas2D components");
129 if constexpr (V) {
130 component_v.onClick(func);
131 }
132 if constexpr (C2) {
133 component_2d.onClick(func);
134 }
135 return *this;
136 }
141 this->onClick(func);
142 return std::move(*this);
143 }
144
152 template <typename T, typename std::enable_if_t<std::is_invocable_v<T>,
153 std::nullptr_t> = nullptr>
155 static_assert(V || C2,
156 "onClick can be set only for View, Canvas2D components");
157 auto func_shared =
158 std::make_shared<std::function<void WEBCFACE_CALL_FP()>>(
159 std::move(func));
160 if constexpr (V) {
161 component_v.onClick(func_shared);
162 }
163 if constexpr (C2) {
164 component_2d.onClick(func_shared);
165 }
166 return *this;
167 }
171 template <typename T, typename std::enable_if_t<std::is_invocable_v<T>,
172 std::nullptr_t> = nullptr>
174 this->onClick(std::move(func));
175 return std::move(*this);
176 }
182 static_assert(
183 C2 || C3,
184 "origin can be set only for Canvas2D, Canvas3D components");
185 if constexpr (C2) {
186 component_2d.origin(origin);
187 }
188 if constexpr (C3) {
189 component_3d.origin(origin);
190 }
191 return *this;
192 }
196 TemporalComponent &&origin(const Transform &origin) && {
197 this->origin(origin);
198 return std::move(*this);
199 }
206 if constexpr (V) {
207 component_v.textColor(c);
208 }
209 if constexpr (C2) {
210 component_2d.color(c);
211 }
212 if constexpr (C3) {
213 component_3d.color(c);
214 }
215 return *this;
216 }
221 this->color(c);
222 return std::move(*this);
223 }
228 TemporalComponent &text(std::string_view str) & {
229 static_assert(V || C2,
230 "text can be set only for View, Canvas2D components");
231 if constexpr (V) {
232 component_v.text(str);
233 }
234 if constexpr (C2) {
235 component_2d.text(str);
236 }
237 return *this;
238 }
242 TemporalComponent &&text(std::string_view str) && {
243 this->text(str);
244 return std::move(*this);
245 }
250 TemporalComponent &text(std::wstring_view str) & {
251 static_assert(V || C2,
252 "text can be set only for View, Canvas2D components");
253 if constexpr (V) {
254 component_v.text(str);
255 }
256 if constexpr (C2) {
257 component_2d.text(str);
258 }
259 return *this;
260 }
264 TemporalComponent &&text(std::wstring_view str) && {
265 this->text(str);
266 return std::move(*this);
267 }
274 static_assert(
275 V || C2, "textColor can be set only for View, Canvas2D components");
276 if constexpr (V) {
277 component_v.textColor(c);
278 }
279 if constexpr (C2) {
280 component_2d.fillColor(c);
281 }
282 return *this;
283 }
288 this->textColor(c);
289 return std::move(*this);
290 }
296 static_assert(
297 V || C2, "fillColor can be set only for View, Canvas2D components");
298 if constexpr (V) {
299 component_v.bgColor(c);
300 }
301 if constexpr (C2) {
302 component_2d.fillColor(c);
303 }
304 return *this;
305 }
310 this->fillColor(c);
311 return std::move(*this);
312 }
318 static_assert(V || C2,
319 "bgColor can be set only for View, Canvas2D components");
320 return fillColor(c);
321 }
326 this->bgColor(c);
327 return std::move(*this);
328 }
335 static_assert(C2,
336 "strokeWidth can be set only for Canvas2D components");
337 if constexpr (C2) {
338 component_2d.strokeWidth(s);
339 }
340 return *this;
341 }
346 this->strokeWidth(s);
347 return std::move(*this);
348 }
354 static_assert(C2, "textSize can be set only for Canvas2D components");
355 if constexpr (C2) {
356 component_2d.textSize(s);
357 }
358 return *this;
359 }
364 this->textSize(s);
365 return std::move(*this);
366 }
367
372 TemporalComponent &width(int width) & {
373 static_assert(V, "width can be set only for View components");
374 if constexpr (V) {
375 component_v.width(width);
376 }
377 return *this;
378 }
383 TemporalComponent &&width(int width) && {
384 this->width(width);
385 return std::move(*this);
386 }
391 TemporalComponent &height(int height) & {
392 static_assert(V, "height can be set only for View components");
393 if constexpr (V) {
394 component_v.height(height);
395 }
396 return *this;
397 }
402 TemporalComponent &&height(int height) && {
403 this->height(height);
404 return std::move(*this);
405 }
406};
407class TemporalGeometry : public TemporalComponent<false, true, true>,
408 public Geometry {
409 public:
410 TemporalGeometry(GeometryType type, std::vector<double> &&properties)
413 Geometry(type, std::move(properties)) {
414 this->component_2d.geometry(static_cast<Geometry &>(*this));
415 this->component_3d.geometry(static_cast<Geometry &>(*this));
416 }
417};
418
419inline namespace components {
420inline namespace geometries {
421
422struct Line {
424 explicit Line(const Geometry &rg) : base(rg) {
425 if (base.properties.size() != 6) {
426 throw std::invalid_argument("number of properties does not match");
427 }
428 }
429 Point begin() const {
430 return Point{base.properties[0], base.properties[1],
431 base.properties[2]};
432 }
433 Point end() const {
434 return Point{base.properties[3], base.properties[4],
435 base.properties[5]};
436 }
437};
438inline TemporalGeometry line(const Point &begin, const Point &end) {
439 return TemporalGeometry(GeometryType::line,
440 {begin.pos()[0], begin.pos()[1], begin.pos()[2],
441 end.pos()[0], end.pos()[1], end.pos()[2]});
442}
443struct Polygon {
445 explicit Polygon(const Geometry &rg) : base(rg) {
446 if (base.properties.size() % 3 != 0 || size() == 0) {
447 throw std::invalid_argument("number of properties does not match");
448 }
449 }
450 std::size_t size() const { return base.properties.size() / 3; }
451 Point at(std::size_t i) const {
452 if (i >= size()) {
453 throw std::out_of_range("Polygon::at(" + std::to_string(i) +
454 "), size = " + std::to_string(size()));
455 }
456 return Point{base.properties[i * 3 + 0], base.properties[i * 3 + 1],
457 base.properties[i * 3 + 2]};
458 }
459 Point operator[](std::size_t i) const { return at(i); }
460};
461inline TemporalGeometry polygon(const std::vector<Point> &points) {
462 std::vector<double> properties;
463 properties.reserve(points.size() * 3);
464 for (const auto &p : points) {
465 properties.push_back(p.pos(0));
466 properties.push_back(p.pos(1));
467 properties.push_back(p.pos(2));
468 }
469 return TemporalGeometry(GeometryType::polygon, std::move(properties));
470}
471struct Plane {
473 explicit Plane(const Geometry &rg) : base(rg) {
474 if (base.properties.size() != 8) {
475 throw std::invalid_argument("number of properties does not match");
476 }
477 }
479 return Transform(
480 {base.properties[0], base.properties[1], base.properties[2]},
481 rotFromEuler(base.properties[3], base.properties[4],
482 base.properties[5]));
483 }
484 double width() const { return base.properties[6]; }
485 double height() const { return base.properties[7]; }
490 Point vertex1() const {
491 return {base.properties[0] - width() / 2,
492 base.properties[1] - height() / 2, base.properties[2]};
493 }
494 Point vertex2() const {
495 return {base.properties[0] + width() / 2,
496 base.properties[1] + height() / 2, base.properties[2]};
497 }
498};
499inline TemporalGeometry plane(const Transform &origin, double width,
500 double height) {
501 return TemporalGeometry(GeometryType::plane,
502 {origin.pos()[0], origin.pos()[1], origin.pos()[2],
503 origin.rotEuler()[0], origin.rotEuler()[1],
504 origin.rotEuler()[2], width, height});
505}
506using Rect = Plane;
507inline TemporalGeometry rect(const Point &origin, double width, double height) {
508 return TemporalGeometry{GeometryType::plane,
509 {origin.pos()[0], origin.pos()[1], origin.pos()[2],
510 0, 0, 0, width, height}};
511}
512inline TemporalGeometry rect(const Point &p1, const Point &p2) {
513 Transform origin = identity();
514 for (int i = 0; i < 2; i++) {
515 origin.pos(i) = (p1.pos(i) + p2.pos(i)) / 2;
516 }
517 double width = std::abs(p1.pos(0) - p2.pos(0));
518 double height = std::abs(p1.pos(0) - p2.pos(0));
519 return TemporalGeometry{GeometryType::plane,
520 {origin.pos(0), origin.pos(1), origin.pos(2),
521 origin.rotEuler()[0], origin.rotEuler()[1],
522 origin.rotEuler()[2], width, height}};
523}
524
525struct Box {
527 explicit Box(const Geometry &rg) : base(rg) {
528 if (base.properties.size() != 6) {
529 throw std::invalid_argument("number of properties does not match");
530 }
531 }
532 Point vertex1() const {
533 return Point{base.properties[0], base.properties[1],
534 base.properties[2]};
535 }
536 Point vertex2() const {
537 return Point{base.properties[3], base.properties[4],
538 base.properties[5]};
539 }
540};
541inline TemporalGeometry box(const Point &vertex1, const Point &vertex2) {
542 return TemporalGeometry{GeometryType::box,
543 {vertex1.pos()[0], vertex1.pos()[1],
544 vertex1.pos()[2], vertex2.pos()[0],
545 vertex2.pos()[1], vertex2.pos()[2]}};
546}
547
548struct Circle {
550 explicit Circle(const Geometry &rg) : base(rg) {
551 if (base.properties.size() != 7) {
552 throw std::invalid_argument("number of properties does not match");
553 }
554 }
556 return Transform(
557 {base.properties[0], base.properties[1], base.properties[2]},
558 rotFromEuler(base.properties[3], base.properties[4],
559 base.properties[5]));
560 }
561 double radius() const { return base.properties[6]; }
562};
563inline TemporalGeometry circle(const Transform &origin, double radius) {
564 return TemporalGeometry{GeometryType::circle,
565 {origin.pos()[0], origin.pos()[1], origin.pos()[2],
566 origin.rotEuler()[0], origin.rotEuler()[1],
567 origin.rotEuler()[2], radius}};
568}
569inline TemporalGeometry circle(const Point &origin, double radius) {
570 return TemporalGeometry{
571 GeometryType::circle,
572 {origin.pos()[0], origin.pos()[1], origin.pos()[2], 0, 0, 0, radius}};
573}
574
575struct Cylinder {
577 explicit Cylinder(const Geometry &rg) : base(rg) {
578 if (base.properties.size() != 8) {
579 throw std::invalid_argument("number of properties does not match");
580 }
581 }
583 return Transform(
584 {base.properties[0], base.properties[1], base.properties[2]},
585 rotFromEuler(base.properties[3], base.properties[4],
586 base.properties[5]));
587 }
588 double radius() const { return base.properties[6]; }
589 double length() const { return base.properties[7]; }
590};
591inline TemporalGeometry cylinder(const Transform &origin, double radius,
592 double length) {
593 return TemporalGeometry{GeometryType::cylinder,
594 {origin.pos()[0], origin.pos()[1], origin.pos()[2],
595 origin.rotEuler()[0], origin.rotEuler()[1],
596 origin.rotEuler()[2], radius, length}};
597}
598
599struct Sphere {
601 explicit Sphere(const Geometry &rg) : base(rg) {
602 if (base.properties.size() != 4) {
603 throw std::invalid_argument("number of properties does not match");
604 }
605 }
606 Point origin() const {
607 return Point{base.properties[0], base.properties[1],
608 base.properties[2]};
609 }
610 double radius() const { return base.properties[3]; }
611};
612inline TemporalGeometry sphere(const Point &origin, double radius) {
613 return TemporalGeometry{
614 GeometryType::sphere,
615 {origin.pos()[0], origin.pos()[1], origin.pos()[2], radius}};
616}
617
618
619} // namespace geometries
620
621namespace Geometries = geometries; // 〜ver1.11
622
627inline TemporalComponent<true, true, false> text(std::string_view text) {
629 ViewComponentType::text, Canvas2DComponentType::text, nullptr)
630 .text(text);
631}
636inline TemporalComponent<true, true, false> text(std::wstring_view text) {
638 ViewComponentType::text, Canvas2DComponentType::text, nullptr)
639 .text(text);
640}
646 return TemporalViewComponent(ViewComponentType::new_line);
647}
648
653template <typename T>
654inline TemporalViewComponent button(std::string_view text, T &&func) {
655 return TemporalViewComponent(ViewComponentType::button)
656 .text(text)
657 .onClick(std::forward<T>(func));
658}
663template <typename T>
664inline TemporalViewComponent button(std::wstring_view text, T &&func) {
665 return TemporalViewComponent(ViewComponentType::button)
666 .text(text)
667 .onClick(std::forward<T>(func));
668}
669
670inline TemporalViewComponent textInput(std::string_view text = "") {
671 return TemporalViewComponent(ViewComponentType::text_input).text(text);
672}
673inline TemporalViewComponent textInput(std::wstring_view text) {
674 return TemporalViewComponent(ViewComponentType::text_input).text(text);
675}
676inline TemporalViewComponent decimalInput(std::string_view text = "") {
677 return TemporalViewComponent(ViewComponentType::decimal_input)
678 .text(text)
679 .init(0);
680}
681inline TemporalViewComponent decimalInput(std::wstring_view text) {
682 return TemporalViewComponent(ViewComponentType::decimal_input)
683 .text(text)
684 .init(0);
685}
686inline TemporalViewComponent numberInput(std::string_view text = "") {
687 return TemporalViewComponent(ViewComponentType::number_input)
688 .text(text)
689 .init(0);
690}
691inline TemporalViewComponent numberInput(std::wstring_view text) {
692 return TemporalViewComponent(ViewComponentType::number_input)
693 .text(text)
694 .init(0);
695}
696inline TemporalViewComponent toggleInput(std::string_view text = "") {
697 return TemporalViewComponent(ViewComponentType::toggle_input).text(text);
698}
699inline TemporalViewComponent toggleInput(std::wstring_view text) {
700 return TemporalViewComponent(ViewComponentType::toggle_input).text(text);
701}
702inline TemporalViewComponent selectInput(std::string_view text = "") {
703 return TemporalViewComponent(ViewComponentType::select_input).text(text);
704}
705inline TemporalViewComponent selectInput(std::wstring_view text) {
706 return TemporalViewComponent(ViewComponentType::select_input).text(text);
707}
708inline TemporalViewComponent sliderInput(std::string_view text = "") {
709 return TemporalViewComponent(ViewComponentType::slider_input)
710 .text(text)
711 .init(0);
712}
713inline TemporalViewComponent sliderInput(std::wstring_view text) {
714 return TemporalViewComponent(ViewComponentType::slider_input)
715 .text(text)
716 .init(0);
717}
718inline TemporalViewComponent checkInput(std::string_view text = "") {
719 return TemporalViewComponent(ViewComponentType::check_input)
720 .text(text)
721 .init(false);
722}
723inline TemporalViewComponent checkInput(std::wstring_view text) {
724 return TemporalViewComponent(ViewComponentType::check_input)
725 .text(text)
726 .init(false);
727}
728} // namespace components
729
730namespace Components = components; // 〜ver1.11
731namespace ViewComponents = components; // 〜ver1.8
732
Canvas2Dの送受信データを表すクラス
Definition canvas2d.h:24
Canvas3Dの送受信データを表すクラス
Definition canvas3d.h:28
Definition func.h:619
関数1つを表すクラス
Definition func.h:95
3次元 or 2次元の座標を表すクラス。
Definition transform.h:23
std::array< double, 3 > pos() const
3次元座標を取得
Definition transform.h:62
Definition component_canvas2d.h:139
TemporalCanvas2DComponent & onClick(const Func &func) &
クリック時に実行される関数を設定 (Funcオブジェクト)
Definition component_canvas2d.cc:181
TemporalCanvas2DComponent & strokeWidth(double s) &
線の太さ
Definition component_canvas2d.cc:129
TemporalCanvas2DComponent & color(const ViewColor &color) &
図形の輪郭の色
Definition component_canvas2d.cc:112
TemporalCanvas2DComponent & text(std::string_view text) &
表示する文字列を設定
Definition component_canvas2d.cc:138
TemporalCanvas2DComponent & textSize(double s) &
文字の大きさ(高さ)
Definition component_canvas2d.h:253
TemporalCanvas2DComponent & id(std::string_view id)
idを設定
Definition component_canvas2d.cc:83
TemporalCanvas2DComponent & origin(const Transform &origin) &
要素の移動・回転
Definition component_canvas2d.cc:102
TemporalCanvas2DComponent & fillColor(const ViewColor &color) &
塗りつぶし色
Definition component_canvas2d.cc:121
Canvas3Dを構築するときに使う一時的なCanvas3DComponent.
Definition component_canvas3d.h:119
TemporalCanvas3DComponent & color(ViewColor color) &
Definition component_canvas3d.cc:99
TemporalCanvas3DComponent & origin(const Transform &origin) &
要素の移動
Definition component_canvas3d.cc:90
TemporalCanvas3DComponent & id(std::string_view id)
idを設定
Definition component_canvas3d.cc:72
Definition components.h:408
TemporalGeometry(GeometryType type, std::vector< double > &&properties)
Definition components.h:410
Viewを構築するときに使う一時的なViewComponent.
Definition component_view.h:286
TemporalViewComponent & id(std::string_view id)
idを設定
Definition component_view.cc:250
TemporalViewComponent & text(std::string_view text) &
表示する文字列を設定
Definition component_view.cc:266
TemporalViewComponent & height(int height) &
要素の高さを設定する。
Definition component_view.cc:407
TemporalViewComponent & init(const T &init) &
デフォルト値を設定する。
Definition component_view.h:509
TemporalViewComponent & bgColor(ViewColor c) &
背景色を設定
Definition component_view.cc:350
TemporalViewComponent & width(int width) &
要素の幅を設定する。
Definition component_view.cc:399
TemporalViewComponent & textColor(ViewColor c) &
文字色を設定
Definition component_view.cc:342
TemporalViewComponent & onClick(const Func &func) &
クリック時に実行される関数を設定 (登録済みFunc)
Definition component_view.cc:293
3次元の平行移動と回転
Definition transform.h:652
std::array< double, 3 > pos() const
3次元座標を取得
Definition transform.h:62
std::array< double, 3 > rotEuler(AxisSequence axis=AxisSequence::ZYX) const
3次元の回転をオイラー角として取得
Definition transform.h:384
Viewの送受信データを表すクラス
Definition view.h:36
Viewの送信用データを保持する
Definition data_buffer.h:108
TemporalGeometry line(const Point &begin, const Point &end)
Definition components.h:438
TemporalGeometry rect(const Point &origin, double width, double height)
Definition components.h:507
TemporalGeometry circle(const Transform &origin, double radius)
Definition components.h:563
TemporalGeometry cylinder(const Transform &origin, double radius, double length)
Definition components.h:591
TemporalGeometry plane(const Transform &origin, double width, double height)
Definition components.h:499
TemporalGeometry polygon(const std::vector< Point > &points)
Definition components.h:461
TemporalGeometry box(const Point &vertex1, const Point &vertex2)
Definition components.h:541
TemporalGeometry sphere(const Point &origin, double radius)
Definition components.h:612
TemporalViewComponent toggleInput(std::string_view text="")
Definition components.h:696
TemporalViewComponent numberInput(std::string_view text="")
Definition components.h:686
TemporalViewComponent selectInput(std::string_view text="")
Definition components.h:702
TemporalViewComponent newLine()
newLineコンポーネント
Definition components.h:645
TemporalViewComponent button(std::string_view text, T &&func)
buttonコンポーネント
Definition components.h:654
TemporalViewComponent sliderInput(std::string_view text="")
Definition components.h:708
TemporalViewComponent checkInput(std::string_view text="")
Definition components.h:718
TemporalViewComponent textInput(std::string_view text="")
Definition components.h:670
TemporalViewComponent decimalInput(std::string_view text="")
Definition components.h:676
Canvas2DComponentType
Definition component_canvas2d.h:22
GeometryType
Canvas3Dと2Dで共用、図形の種類を表す
Definition geometry.h:15
ViewColor
Definition component_view.h:40
Rotation rotFromEuler(const std::array< double, 3 > &rot, AxisSequence axis=AxisSequence::ZYX)
回転をオイラー角から初期化
Definition transform.h:519
Transform identity()
移動なし、回転なしのTransform
Definition transform.h:831
Canvas3DComponentType
Definition component_canvas3d.h:20
Definition geometry.h:26
std::vector< double > properties
Definition geometry.h:28
Canvas2D, Canvas3D (, View) に要素をaddするときに使うインタフェース
Definition components.h:22
TemporalComponent & onClick(T func) &
クリック時に実行される関数を設定 (Viewまたは2D)
Definition components.h:154
TemporalComponent && onClick(const Func &func) &&
Definition components.h:114
TemporalComponent & width(int width) &
要素の幅 (Viewのみ)
Definition components.h:372
TemporalComponent && fillColor(ViewColor c) &&
Definition components.h:309
TemporalComponent & strokeWidth(double s) &
線の太さ (2Dのみ)
Definition components.h:334
TemporalComponent && strokeWidth(double s) &&
Definition components.h:345
TemporalComponent & textColor(ViewColor c) &
文字色 (Viewまたは2D)
Definition components.h:273
TemporalComponent & color(ViewColor c) &
Definition components.h:205
TemporalComponent & id(std::wstring_view id) &
idを設定(wstring)
Definition components.h:71
TemporalComponent & height(int height) &
要素の高さ (Viewのみ)
Definition components.h:391
TemporalComponent && origin(const Transform &origin) &&
Definition components.h:196
TemporalComponent && bgColor(ViewColor c) &&
Definition components.h:325
TemporalComponent & origin(const Transform &origin) &
要素の移動 (2Dまたは3D)
Definition components.h:181
TemporalComponent && textColor(ViewColor c) &&
Definition components.h:287
TemporalComponent && text(std::string_view str) &&
Definition components.h:242
TemporalComponent && id(std::wstring_view id) &&
Definition components.h:86
TemporalCanvas2DComponent component_2d
Definition components.h:24
TemporalComponent & bgColor(ViewColor c) &
背景色 (Viewまたは2D)
Definition components.h:317
TemporalComponent && width(int width) &&
要素の幅 (Viewのみ)
Definition components.h:383
TemporalComponent & textSize(double s) &
文字の大きさ (2Dのみ)
Definition components.h:353
TemporalCanvas3DComponent component_3d
Definition components.h:25
TemporalComponent & text(std::wstring_view str) &
表示する文字列(wstring) (View, Canvas2D)
Definition components.h:250
TemporalComponent & text(std::string_view str) &
表示する文字列 (View, Canvas2D)
Definition components.h:228
TemporalComponent & id(std::string_view id) &
idを設定
Definition components.h:48
TemporalViewComponent component_v
Definition components.h:23
TemporalComponent & fillColor(ViewColor c) &
背景色 (Viewまたは2D)
Definition components.h:295
TemporalComponent && textSize(double s) &&
Definition components.h:363
TemporalComponent & onClick(const FuncListener &func) &
クリック時に実行される関数を設定 (Viewまたは2D, FuncListener)
Definition components.h:126
TemporalComponent & onClick(const Func &func) &
クリック時に実行される関数を設定 (Viewまたは2D, Funcオブジェクト)
Definition components.h:99
TemporalComponent && id(std::string_view id) &&
Definition components.h:63
TemporalComponent && onClick(T func) &&
Definition components.h:173
TemporalComponent && onClick(const FuncListener &func) &&
Definition components.h:140
TemporalComponent && height(int height) &&
要素の高さ (Viewのみ)
Definition components.h:402
TemporalComponent && text(std::wstring_view str) &&
Definition components.h:264
TemporalComponent && color(ViewColor c) &&
Definition components.h:220
TemporalComponent(VT v_type, C2T c2_type, C3T c3_type)
Definition components.h:29
Definition components.h:525
const Geometry & base
Definition components.h:526
Box(const Geometry &rg)
Definition components.h:527
Point vertex2() const
Definition components.h:536
Point vertex1() const
Definition components.h:532
Definition components.h:548
const Geometry & base
Definition components.h:549
Circle(const Geometry &rg)
Definition components.h:550
double radius() const
Definition components.h:561
Transform origin() const
Definition components.h:555
Definition components.h:575
const Geometry & base
Definition components.h:576
double radius() const
Definition components.h:588
double length() const
Definition components.h:589
Cylinder(const Geometry &rg)
Definition components.h:577
Transform origin() const
Definition components.h:582
Definition components.h:422
const Geometry & base
Definition components.h:423
Point end() const
Definition components.h:433
Line(const Geometry &rg)
Definition components.h:424
Point begin() const
Definition components.h:429
Definition components.h:471
const Geometry & base
Definition components.h:472
double width() const
Definition components.h:484
double height() const
Definition components.h:485
Transform origin() const
Definition components.h:478
Point vertex2() const
Definition components.h:494
Plane(const Geometry &rg)
Definition components.h:473
Point vertex1() const
Definition components.h:490
const Geometry & base
Definition components.h:444
Point at(std::size_t i) const
Definition components.h:451
Point operator[](std::size_t i) const
Definition components.h:459
Polygon(const Geometry &rg)
Definition components.h:445
std::size_t size() const
Definition components.h:450
Definition components.h:599
const Geometry & base
Definition components.h:600
double radius() const
Definition components.h:610
Point origin() const
Definition components.h:606
Sphere(const Geometry &rg)
Definition components.h:601
#define WEBCFACE_NS_END
Definition webcface-config.h:118
#define WEBCFACE_NS_BEGIN
Definition webcface-config.h:117
#define WEBCFACE_CALL_FP
Definition webcface-config.h:107