Blender  V3.3
NodeShape.h
Go to the documentation of this file.
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 
3 #pragma once
4 
10 #include <vector>
11 
12 #include "../geometry/BBox.h"
13 #include "../geometry/Geom.h"
14 
15 #include "../system/FreestyleConfig.h"
16 
17 #include "FrsMaterial.h"
18 #include "Node.h"
19 #include "Rep.h"
20 
21 using namespace std;
22 
23 namespace Freestyle {
24 
25 using namespace Geometry;
26 
27 class NodeShape : public Node {
28  public:
29  inline NodeShape() : Node()
30  {
31  }
32 
33  virtual ~NodeShape();
34 
39  virtual void AddRep(Rep *iRep)
40  {
41  if (NULL == iRep) {
42  return;
43  }
44  _Shapes.push_back(iRep);
45  iRep->addRef();
46 
47  // updates bbox:
48  AddBBox(iRep->bbox());
49  }
50 
52  virtual void accept(SceneVisitor &v);
53 
55  inline void setFrsMaterial(const FrsMaterial &iMaterial)
56  {
57  _FrsMaterial = iMaterial;
58  }
59 
63  {
64  return _FrsMaterial;
65  }
66 
67  inline const vector<Rep *> &shapes()
68  {
69  return _Shapes;
70  }
71 
72  private:
74  vector<Rep *> _Shapes;
75 
77  FrsMaterial _FrsMaterial;
78 };
79 
80 } /* namespace Freestyle */
Class used to handle materials.
Abstract class for scene graph nodes. Inherits from BaseObject which defines the addRef release mecha...
Base class for all shapes. Inherits from BasicObjects for references counter management (addRef,...
ATTR_WARN_UNUSED_RESULT const BMVert * v
virtual void AddRep(Rep *iRep)
Definition: NodeShape.h:39
const vector< Rep * > & shapes()
Definition: NodeShape.h:67
void setFrsMaterial(const FrsMaterial &iMaterial)
Definition: NodeShape.h:55
FrsMaterial & frs_material()
Definition: NodeShape.h:62
virtual const BBox< Vec3f > & bbox() const
Definition: Rep.h:109
inherits from class Rep
Definition: AppCanvas.cpp:18