VR-Forces 5.0.2 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;
55  };
57 
58  typedef std::vector<IntersectionInformation> IntersectionRequest;
59 
62 
65 
68 
70 
71  virtual int type() const;
72 
73  virtual DtSimInterfaceContent* clone() const;
74 
75  virtual int netRepSize() const;
76  virtual bool setFromNet(const char* contentBuffer,
77  unsigned contentSize);
78  virtual bool setToNet();
79 
80  virtual void printDataToString(DtString& str);
81 
82  static DtSimInterfaceContent* creator();
83 
85  virtual void setRequestId(unsigned long);
86  unsigned long requestId() const
87  {
88  return myRequestId;
89  }
90 
94  virtual void addIntersectionRequest(const DtVector& from, const DtVector& to, const DtString& userData = "");
95  virtual void clearIntersectionRequests();
97  {
98  return myIntersectionRequests;
99  }
100 
103  virtual void setRequestFlags(int);
105  {
106  return (IntersectionRequestFlag)myRequestFlag;
107  }
108 
109 protected:
110  DtU32 myRequestId;
111 
114 };
115 
116 namespace DtBufferSerialize
117 {
120 
125 
129  DT_DLL_vrfmsgs const char *decode(DtIfRequestIntersectionInformation::IntersectionInformation& messagePtr, const char *buffer);
130 }
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:113
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:104
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:110
IntersectionInformation()
Definition: ifRequestIntersectionInformation.h:47
IntersectionRequest myIntersectionRequests
Definition: ifRequestIntersectionInformation.h:112
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:96
unsigned long requestId() const
Definition: ifRequestIntersectionInformation.h:86

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)