VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ifRequestIntersectionInformation.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2014 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
12 #include "vrfmsgs/vrfmsgsDefines.h"
13 #include "vrfmsgs/messageTypes.h"
14 
15 #include <matrix/vlVector.h>
16 
19 
21 {
22 public:
30 
31  //Note that you must have one of the following flags set: ClosestIntersection, AllIntersectionsThroughPoint, LineofSight
33  {
34  ClosestIntersection = 0x00000001,
35  SoilType = 0x00000002,
36  AllIntersectionsThroughPoint = 0x00000004,
37  IntersectVectors = 0x00000008,
38  LineOfSight = 0x00000010,
39  IntersectEntities = 0x00000020,
40  IntersectTerrain = 0x00000040,
41  TerrainHeight = 0x00000080,
42  Default = AllIntersectionsThroughPoint | SoilType | IntersectVectors | IntersectTerrain | IntersectEntities
43  };
44 
46  {
48  IntersectionInformation(const DtVector& s, const DtVector& e, const DtString& u) :
49  start(s), end(e), userData(u) {};
50  IntersectionInformation(const IntersectionInformation& orig) : start(orig.start), end(orig.end), userData(orig.userData) {};
51 
52  DtVector start;
53  DtVector end;
55  };
57 
58  typedef std::vector<IntersectionInformation> IntersectionRequest;
59 
62 
65 
68 
69  virtual ~DtIfRequestIntersectionInformation() override;
70 
71  virtual int type() const override;
72 
73  virtual DtSimInterfaceContent* clone() const override;
74 
75  virtual int netRepSize() const override;
76  virtual bool setFromNet(const char* contentBuffer, unsigned contentSize) override;
77  virtual bool setToNet() override;
78 
79  virtual void printDataToString(DtString& str) override;
80 
81  static DtSimInterfaceContent* creator();
82 
84  virtual void setRequestId(unsigned long);
85  unsigned long requestId() const
86  {
87  return myRequestId;
88  }
89 
93  virtual void addIntersectionRequest(const DtVector& from, const DtVector& to, const DtString& userData = "");
94  virtual void clearIntersectionRequests();
96  {
97  return myIntersectionRequests;
98  }
99 
102  virtual void setRequestFlags(int);
104  {
105  return (IntersectionRequestFlag)myRequestFlag;
106  }
107 
108 protected:
109  DtU32 myRequestId;
110 
113 };
114 
115 namespace DtBufferSerialize
116 {
119 
124 
128  DT_DLL_vrfmsgs const char *decode(DtIfRequestIntersectionInformation::IntersectionInformation& messagePtr, const char *buffer);
129 }
Interface content for requesting intersection information. Note that all point requests must be suppl...
Definition: ifRequestIntersectionInformation.h:20
std::vector< IntersectionInformation > IntersectionRequest
Definition: ifRequestIntersectionInformation.h:58
virtual bool setFromNet(const char *contentBuffer, unsigned contentSize)
Definition: simInterfaceContent.h:78
virtual int netRepSize() const
Definition: simInterfaceContent.h:76
DT_DLL_readerWriter int getSize(const DtString &val)
The number of bytes required to encode the value.
Definition: ifRequestIntersectionInformation.h:45
#define DT_DLL_vrfmsgs
This file is used to determine how to build.
Definition: vrfmsgsDefines.h:28
virtual int type() const =0
IntersectionInformation(const DtVector &s, const DtVector &e, const DtString &u)
Definition: ifRequestIntersectionInformation.h:48
int myRequestFlag
Definition: ifRequestIntersectionInformation.h:112
IntersectionRequestFlag
For the flags, if closest intersection is supplied, and intersect vectors is supplied, if there is an intersection for both a polygon and a vector at the same point, the vector intersection information for soil type (if specified) will be returned. The same is true for all intersections through point.
Definition: ifRequestIntersectionInformation.h:32
IntersectionRequestFlag requestFlags()
Definition: ifRequestIntersectionInformation.h:103
virtual void printDataToString(DtString &str)
const DtSimInterfaceContent & operator=(const DtSimInterfaceContent &orig)
DtString userData
Definition: ifRequestIntersectionInformation.h:54
DtVector end
Definition: ifRequestIntersectionInformation.h:53
DT_DLL_readerWriter char * encode(const DtFilename &val, char *buffer)
Serializes the provided value val into buffer. buffer must have at least the number of bytes returned...
DtU32 myRequestId
Definition: ifRequestIntersectionInformation.h:109
IntersectionInformation()
Definition: ifRequestIntersectionInformation.h:47
IntersectionRequest myIntersectionRequests
Definition: ifRequestIntersectionInformation.h:111
virtual bool setToNet()
Definition: simInterfaceContent.h:83
Definition: simInterfaceContent.h:45
DT_DLL_readerWriter const char * decode(DtString &val, const char *buffer)
Decodes a value from buffer and places the result in val of the type specified by val...
virtual DtSimInterfaceContent * clone() const =0
const IntersectionRequest & intersectionRequests() const
Definition: ifRequestIntersectionInformation.h:95
unsigned long requestId() const
Definition: ifRequestIntersectionInformation.h:85

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)