TAMSVIZ
Visualization and annotation tool for ROS
shapes.h
1 // TAMSVIZ
2 // (c) 2020 Philipp Ruppel
3 
4 #pragma once
5 
6 #include "../core/document.h"
7 #include "../core/watcher.h"
8 #include "../render/renderer.h"
9 #include "../scene/material.h"
10 #include "../scene/mesh.h"
11 
12 #include "frame.h"
13 
14 namespace shapes {
15 class Shape;
16 }
17 
18 class MeshData;
19 
20 MeshData makePlane();
21 MeshData makeBox();
22 MeshData makeSphere(size_t segments = 32, size_t rings = 16);
23 MeshData makeDisk(size_t segments = 32);
24 MeshData makeCylinder(size_t segments = 32);
25 MeshData makeCone(size_t segments = 32);
26 MeshData makeRing(double inner, double outer = 1.0, size_t segments = 32);
27 
29  std::shared_ptr<MeshRenderer> _mesh_renderer;
30  Watcher _watcher;
31  PROPERTY(std::shared_ptr<Material>, material, std::make_shared<Material>());
32 
33 protected:
34  ShapeDisplay(const std::shared_ptr<Mesh> &mesh = nullptr);
35 };
36 DECLARE_TYPE(ShapeDisplay, FrameDisplayBase);
Definition: shapes.h:14
Definition: watcher.h:8
Definition: mesh.h:11