Atoms Crowd  7.0.0
JointAimOperator.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  class ATOMS_EXPORT JointAimOperator : public Operator
18  {
19  public:
20 
21  NODE_STANDARD_MEMBERS
22 
24 
25  virtual ~JointAimOperator();
26 
27  bool compute(const AtomsGraph::ComputeData* computeData);
28 
29  void reset();
30 
31  private:
32  AtomsGraph::PosePort* m_inPose;
33  AtomsGraph::StringPort* m_inJointName;
34  AtomsGraph::LongPort* m_inAxis;
35  AtomsGraph::LongPort* m_inUpAxis;
36  AtomsGraph::LongPort* m_inHierarchyPropagation;
37  AtomsGraph::VectorPort* m_inTargetVector;
38  AtomsGraph::VectorPort* m_inUpVector;
39  AtomsGraph::DoublePort* m_inWeight;
40  AtomsGraph::DoublePort* m_inAdditiveWeight;
41  AtomsGraph::BooleanPort* m_inUseUpVectorMetadata;
42  AtomsGraph::BooleanPort* m_inAdditiveMode;
43  AtomsGraph::BooleanPort* m_inProjectionMode;
44  AtomsGraph::VectorPort* m_inCustomAxis;
45  AtomsGraph::StringPort* m_inDirectionalStartJointName;
46  AtomsGraph::StringPort* m_inDirectionalEndJointName;
47  bool m_first;
48 
49  std::vector<int> joints;
50  std::vector<AtomsCore::Quaternion> startRotations;
51  };
52 }
Definition: JointAimOperator.h:18
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