SquareMesh.hpp
Go to the documentation of this file.
1 #pragma once
2 
3 #include "Mesh.hpp"
4 
5 namespace iv
6 {
7 
9 {
10 public:
12 
14  void each_resource( std::function< void( ResourcePath const & ) > const & ) const;
15  bool has_resource( ResourcePath const & ) const;
16 
17  //
18  Instance * instance() const;
19 
20 private:
21  Instance * inst;
22 };
23 
24 
28 class SquareMesh : public Mesh, private GlListener
29 {
30 public:
31  static const constexpr char * VirtualPath = "/ivorium/virtual/SquareMesh";
32  static bool HasResourcePath( Instance * inst, ResourcePath const & path );
33 
34 public:
35 using Mesh::instance;
37 
38  SquareMesh( Instance * inst, VirtualResourceProvider const *, SquareMesh_Subprovider const *, ResourcePath const & path );
39  virtual ~SquareMesh();
40 
41 private:
42  //----------------------------- GlListener ---------------------
43  virtual void GlEnable() override;
44  virtual void GlDisable() override;
45  virtual void GlDrop() override;
46 };
47 
50 class SquareMesh_Resource : public SingularResource< Mesh >
51 {
52 public:
55  SingularResource< Mesh >( inst, SquareMesh::VirtualPath ),
56  cm( inst, this, "SquareMesh_Resource" )
57  {
58  this->cm.inherits( this->SingularResource< Mesh >::cm );
59  }
60 };
61 
62 }