Atoms Crowd  7.0.0
MeshRayCast.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/Globals.h>
11 #include <AtomsGraph/Ports.h>
12 #include <AtomsGraph/Node.h>
13 
14 namespace AtomsGraph
15 {
16  ATOMSGRAPH_EXPORT void registerMeshRayCastNode();
17 
18  class ATOMSGRAPH_EXPORT MeshRayCast : public Node
19  {
20  public:
21  NODE_STANDARD_MEMBERS
22 
23  MeshRayCast();
24 
25  virtual ~MeshRayCast();
26 
27  bool compute(const ComputeData* computeData);
28 
29  void reset();
30 
31  private:
32  AtomsGraph::MeshRefPort* m_inMesh;
33  AtomsGraph::VectorPort* m_inOrigin;
34  AtomsGraph::VectorPort* m_inDirection;
35  AtomsGraph::BooleanPort* m_bothDirections;
36 
37  AtomsGraph::BooleanPort* m_outIntersect;
38  AtomsGraph::DoublePort* m_outParameter;
39  AtomsGraph::LongPort* m_outFaceId;
40  AtomsGraph::DoublePort* m_outU;
41  AtomsGraph::DoublePort* m_outV;
42  AtomsGraph::VectorPort* m_outNormal;
43  AtomsGraph::VectorPort* m_outPosition;
44  };
45 
46 }
Definition: Node.h:21
Definition: MeshRayCast.h:19
void reset()
Reset function.
bool compute(const ComputeData *computeData)
Compute function.
Definition: Node.h:31
Generic node port class.
Definition: PortTemplate.h:24
AtomsGraph namespace.
Definition: PosePort.h:15