Atoms Crowd  7.0.0
BlendShapeAnimModule.h
1 #pragma once
2 // ===========================================================================
3 // Copyright (c) 2015 Toolchefs Ltd. All rights reserved.
4 //
5 // Use of this software is subject to the terms of the Toolchefs license
6 // agreement provided at the time of installation or download, or which
7 // otherwise accompanies this software in either electronic or hard copy form.
8 // ===========================================================================
9 
10 #include <Atoms/BehaviourModule.h>
11 #include <AtomsModules/Globals.h>
12 #include <AtomsCore/Metadata/DoubleArrayMetadata.h>
13 
15 {
16  std::string propertyName;
17  bool metadataTriggerEnabled;
18  std::string metadataTriggerName;
19  int startFrame;
20  int endFrame;
21  std::vector<std::vector<double>> weights;
22  std::vector<std::string> targets;
23  std::vector<std::map< std::string, int>> meshBS;
24 };
25 
26 namespace AtomsModules
27 {
28  class ATOMSMODULES_EXPORT BlendShapeAnimModule : public Atoms::BehaviourModule
29  {
30  public:
31 
33 
34  virtual ~BlendShapeAnimModule();
35 
36  void initSimulation(Atoms::AgentGroup* agentGroup = nullptr);
37 
38  void initFrame(const std::vector<Atoms::Agent*>& agents, Atoms::AgentGroup* agentGroup = nullptr);
39 
40  static Atoms::BehaviourModule* creator(const std::string& parameter);
41 
42  private:
43  std::map<std::string, std::map<std::string, BlendShapeAnimData>> animDataTable;
44  };
45 }
Agent group.
Definition: AgentGroup.h:36
Behaviour module.
Definition: BehaviourModule.h:32
Definition: BlendShapeAnimModule.h:29
void initFrame(const std::vector< Atoms::Agent * > &agents, Atoms::AgentGroup *agentGroup=nullptr)
Init frame.
void initSimulation(Atoms::AgentGroup *agentGroup=nullptr)
Init simulation.
Definition: BlendShapeAnimModule.h:15