Atoms Crowd  7.0.0
Operator.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/Globals.h>
11 #include <Atoms/Graph/PosePort.h>
12 #include <Atoms/Graph/AgentNode.h>
13 #include <AtomsGraph/Ports.h>
14 #include <AtomsCore/Skeleton.h>
15 
16 namespace Atoms
17 {
18  class Agent;
19 
21 
25  class ATOMS_EXPORT Operator : public AgentNode
26  {
27  public:
28 
30 
33  virtual std::string typeStr() const = 0;
34 
36 
39  virtual unsigned int typeId() const = 0;
40 
43 
45  virtual ~Operator();
46 
49 
51  inline AtomsGraph::PosePort* outPosePort();
52 
54  virtual void reset();
55 
57  virtual short baseNodeType() const;
58 
61 
62  virtual void computeFullPose(AtomsCore::Pose& FullPose);
63 
64  virtual void partialPose(AtomsCore::Pose& FullPose, const std::vector<unsigned short>& jointIds, bool copyMetadata);
65 
66  protected:
67 
70 
73  };
74 }
75 
76 #include "Operator.impl.h"
Agent node.
Definition: AgentNode.h:22
Operator node.
Definition: Operator.h:26
virtual std::string typeStr() const =0
Type string.
AtomsGraph::BooleanPort * m_activePort
Operator Active port.
Definition: Operator.h:69
const AtomsCore::SkeletonLod * skeletonLod() const
Return the active skeleton sim lod data.
virtual void reset()
Operator reset function.
virtual short baseNodeType() const
Base node type.
virtual unsigned int typeId() const =0
Type id.
virtual ~Operator()
Destructor.
Operator()
Constructor.
const AtomsCore::Pose & pose()
Get output pose.
AtomsGraph::PosePort * m_outPose
Output pose port.
Definition: Operator.h:72
Pose class.
Definition: Pose.h:32
Generic node port class.
Definition: PortTemplate.h:24
Atoms namespace.
Definition: Agent.h:29
Definition: Skeleton.h:25