Overte C++ Documentation
CauterizedModel.h
1 //
2 // Created by Andrew Meadows 2016.01.17
3 // Copyright 2017 High Fidelity, Inc.
4 //
5 // Distributed under the Apache License, Version 2.0.
6 // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
7 //
8 
9 #ifndef hifi_CauterizedModel_h
10 #define hifi_CauterizedModel_h
11 
12 
13 #include "Model.h"
14 
15 class CauterizedModel : public Model {
16  Q_OBJECT
17 
18 public:
19  CauterizedModel(QObject* parent);
20  virtual ~CauterizedModel();
21 
22  void flagAsCauterized() { _isCauterized = true; }
23  bool getIsCauterized() const { return _isCauterized; }
24 
25  void setEnableCauterization(bool flag) { _enableCauterization = flag; }
26  bool getEnableCauterization() const { return _enableCauterization; }
27 
28  const std::unordered_set<int>& getCauterizeBoneSet() const { return _cauterizeBoneSet; }
29  void setCauterizeBoneSet(const std::unordered_set<int>& boneSet) { _cauterizeBoneSet = boneSet; }
30 
31  void deleteGeometry() override;
32  bool updateGeometry() override;
33 
34  void createRenderItemSet() override;
35 
36  virtual void updateClusterMatrices() override;
37  void updateRenderItems() override;
38 
39  const Model::MeshState& getCauterizeMeshState(int index) const;
40 
41 protected:
42  std::unordered_set<int> _cauterizeBoneSet;
43  QVector<Model::MeshState> _cauterizeMeshStates;
44  bool _isCauterized { false };
45  bool _enableCauterization { false };
46 };
47 
48 #endif // hifi_CauterizedModel_h
A generic 3D model displaying geometry loaded from a URL.
Definition: Model.h:84