gwnavruntime/collision/collisionraycastquery.h Source File

collisionraycastquery.h
Go to the documentation of this file.
1 /*
2  * Copyright 2016 Autodesk, Inc. All rights reserved.
3  * Use of this software is subject to the terms of the Autodesk license agreement and any attachments or Appendices thereto provided at the time of installation or download,
4  * or which otherwise accompanies this software in either electronic or hard copy form, or which is signed by you and accepted by Autodesk.
5  */
6 
7 #pragma once
8 
12 
13 namespace Kaim
14 {
15 
18 {
19 public:
20  static QueryType GetStaticType() { return TypeCollisionRayCast; }
21  virtual QueryType GetType() const { return TypeCollisionRayCast; }
22 
23  // ------------------------------ From/To Blob -----------------------------
24 
25  virtual void BuildQueryBlob(BaseBlobHandler* blobHandler);
26  virtual void InitFromQueryBlob(World* world, void* blob);
27  virtual Ptr<BaseBlobHandler> CreateQueryBlobHandler() { return CreateStaticQueryBlobHandler(); }
28  static Ptr<BaseBlobHandler> CreateStaticQueryBlobHandler();
29 
30  // ------------------------------ Functions -----------------------------
31 
32  CollisionRayCastQuery() : m_world(nullptr), m_result(RayDidNotHit) {}
33 
34  virtual ~CollisionRayCastQuery() {}
35 
38  void BindToWorld(World* world);
39 
42  void Initialize(const Vec3f& start, const Vec3f& dest);
43 
45  virtual void Advance(WorkingMemory*);
46 
48  void PerformQuery();
49 
50  CollisionRayCastResult GetResult() const { return m_result; }
51  const Vec3f& GetStartPos() const { return m_start; }
52  const Vec3f& GetDestPos() const { return m_dest; }
53 
54 public:
55  World* m_world;
56  Vec3f m_start;
57  Vec3f m_dest;
58 
59  CollisionRayCastResult m_result;
60 };
61 }
void PerformQuery()
Performs the query.
Definition: collisionraycastquery.cpp:47
virtual QueryType GetType() const
Get query type.
Definition: collisionraycastquery.h:21
Base class for all the queries that do not need to be time-sliced.
Definition: iquery.h:245
This class is a runtime container for Autodesk Navigation WorldElements such as NavData, Bots, BoxObstacles, TagVolumes...
Definition: world.h:52
virtual void Advance(WorkingMemory *)
workingMemory is not used
Definition: collisionraycastquery.cpp:45
QueryType
Enumerates all the type of query.
Definition: iquery.h:25
CollisionRayCastResult
CollisionRayCastResult.
Definition: collisiontypes.h:15
The Autodesk Navigation namespace.
Definition: gamekitcrowddispersion.cpp:17
RayDidNotHit.
Definition: collisiontypes.h:18
void BindToWorld(World *world)
Associates the query to this world, clears all the inputs and outputs and sets all other parameters t...
Definition: collisionraycastquery.cpp:26
Query that performs a 3D raycast against the physical geometry in a CollisionWorld.
Definition: collisionraycastquery.h:17
void Initialize()
Should be called by the derived class prior to perform the query or to push it in a QueryQueue...
Definition: iquery.h:220