Atoms Crowd  7.0.0
MirrorOperator.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 <AtomsGraph/Ports.h>
11 
12 #include <Atoms/Globals.h>
13 #include <Atoms/Graph/Operator.h>
14 
15 namespace Atoms
16 {
17 
18  class ATOMS_EXPORT MirrorOperator: public Operator
19  {
20  public:
21 
22  NODE_STANDARD_MEMBERS
23 
25 
26  virtual ~MirrorOperator();
27 
28  bool compute(const AtomsGraph::ComputeData* computeData);
29 
30  void reset();
31 
32  private:
33  AtomsGraph::PosePort* m_inPose;
34  AtomsGraph::LongPort* m_animMirrorPlane;
35  AtomsGraph::LongPort* m_bindMirrorPlane;
36  AtomsGraph::LongPort* m_searchMode;
37  AtomsGraph::LongPort* m_stringReplacementType;
38  AtomsGraph::StringPort* m_left;
39  AtomsGraph::StringPort* m_right;
40  AtomsGraph::StringArrayPort* m_skipJoints;
41  AtomsGraph::BooleanPort* m_affectSkipJointsHierarchy;
42 
43  std::map<int, int> m_pairsMap;
44  std::map<int, AtomsCore::Matrix> m_bindMatrices;
45  std::vector<int> m_orderedJointIds;
46  std::map<int, AtomsCore::Quaternion> m_refQuaternions;
47 
48  bool m_first;
49  };
50 }
Definition: MirrorOperator.h:19
bool compute(const AtomsGraph::ComputeData *computeData)
Compute function.
void reset()
Operator reset function.
Operator node.
Definition: Operator.h:26
Definition: Node.h:21
Generic node port class.
Definition: PortTemplate.h:24
Atoms namespace.
Definition: Agent.h:29