VR-Engage  2.2
Loading...
Searching...
No Matches
vreEntityVisualizer.h
Go to the documentation of this file.
1#pragma once
2/*******************************************************************************
3** Copyright (c) 2024 MAK Technologies, Inc.
4** All rights reserved.
5*******************************************************************************/
6
7#include <vrfobjcore/simComponent.h>
8#include <vrfobjcore/portConnection.h>
9#include <vrfobjcore/portGroupConnection.h>
10#include <vrfobjcore/inputPort.h>
11#include <vrfobjcore/outputPort.h>
12#include <vrfobjcore/inputPortGroup.h>
13#include <vrfobjcore/outputPortGroup.h>
14#include <vrfcgf/cgf.h>
15
16namespace makVre
17{
19{
20public:
22
23 class HackPortConnection : public DtPortConnection
24 {
25 public:
26 HackPortConnection(DtOutputPort* source, DtInputPort* destination, int priority)
27 : DtPortConnection(source, destination, priority)
28 {
29 }
30 virtual ~HackPortConnection() override {}
31
32 DtOutputPort* outputPort() { return myOutputPort; }
33 DtInputPort* inputPort() { return myInputPort; }
34 };
35
36 class HackPortGroupConnection : public DtPortGroupConnection
37 {
38 public:
39 HackPortGroupConnection(DtOutputPortGroup* sourceGroup, DtInputPortGroup* destGroup, int priority)
40 : DtPortGroupConnection(sourceGroup, destGroup, priority)
41 {
42 }
43 virtual ~HackPortGroupConnection() override {}
44
45 DtOutputPortGroup* outputPortGroup() { return mySourceGroup; }
46 DtInputPortGroup* inputPortGroup() { return myDestGroup; }
47 };
48
49 void dumpEntity(DtCgf* cgf, DtString smsName, DtString entityString, DtString outputFile);
50
51protected:
52 void printEntity(DtLocalObject* ent);
53 void printSystem(DtComponentSystem* system);
54 void printPorts(DtSimComponent* cmp);
55 void printPortGroups(DtSimComponent* cmp);
56 void printConnections(DtList* connList);
57 void printGroupConnections(DtList* connList);
58
59 // Helper function for string filtering
60 void replaceAll(std::string& source, const std::string& from, const std::string& to);
61 void indent();
62 void unindent();
63
64 std::string mySmsName;
65 std::string myEntityType;
66 std::string myOutputFile;
67 using OutputPortGroupNameMap = std::map<DtOutputPortGroup*, std::string>;
68 using InputPortGroupNameMap = std::map<DtInputPortGroup*, std::string>;
69 using OutputPortNameMap = std::map<DtOutputPort*, std::string>;
70 using InputPortNameMap = std::map<DtInputPort*, std::string>;
71
80
81 std::stringstream myOutputStringStream;
83 std::string myIndentString = "";
84};
85} // namespace makVre
HackPortConnection(DtOutputPort *source, DtInputPort *destination, int priority)
Definition vreEntityVisualizer.h:26
virtual ~HackPortConnection() override
Definition vreEntityVisualizer.h:30
DtOutputPort * outputPort()
Definition vreEntityVisualizer.h:32
DtInputPort * inputPort()
Definition vreEntityVisualizer.h:33
virtual ~HackPortGroupConnection() override
Definition vreEntityVisualizer.h:43
DtOutputPortGroup * outputPortGroup()
Definition vreEntityVisualizer.h:45
DtInputPortGroup * inputPortGroup()
Definition vreEntityVisualizer.h:46
HackPortGroupConnection(DtOutputPortGroup *sourceGroup, DtInputPortGroup *destGroup, int priority)
Definition vreEntityVisualizer.h:39
OutputPortNameMap myPrintOutputPorts
Definition vreEntityVisualizer.h:77
std::string myEntityType
Definition vreEntityVisualizer.h:65
void printConnections(DtList *connList)
void printSystem(DtComponentSystem *system)
InputPortNameMap myInputPorts
Definition vreEntityVisualizer.h:78
void replaceAll(std::string &source, const std::string &from, const std::string &to)
OutputPortGroupNameMap myOutputPortGroups
Definition vreEntityVisualizer.h:72
OutputPortNameMap myOutputPorts
Definition vreEntityVisualizer.h:76
std::map< DtOutputPortGroup *, std::string > OutputPortGroupNameMap
Definition vreEntityVisualizer.h:67
std::map< DtInputPort *, std::string > InputPortNameMap
Definition vreEntityVisualizer.h:70
void printGroupConnections(DtList *connList)
void printEntity(DtLocalObject *ent)
InputPortNameMap myPrintInputPorts
Definition vreEntityVisualizer.h:79
std::string myOutputFile
Definition vreEntityVisualizer.h:66
void dumpEntity(DtCgf *cgf, DtString smsName, DtString entityString, DtString outputFile)
std::string mySmsName
Definition vreEntityVisualizer.h:64
std::string myIndentString
Definition vreEntityVisualizer.h:83
int myIndentLevel
Definition vreEntityVisualizer.h:82
std::map< DtOutputPort *, std::string > OutputPortNameMap
Definition vreEntityVisualizer.h:69
void printPorts(DtSimComponent *cmp)
void printPortGroups(DtSimComponent *cmp)
std::map< DtInputPortGroup *, std::string > InputPortGroupNameMap
Definition vreEntityVisualizer.h:68
OutputPortGroupNameMap myPrintOutputPortGroups
Definition vreEntityVisualizer.h:73
std::stringstream myOutputStringStream
Definition vreEntityVisualizer.h:81
InputPortGroupNameMap myPrintInputPortGroups
Definition vreEntityVisualizer.h:75
InputPortGroupNameMap myInputPortGroups
Definition vreEntityVisualizer.h:74
Include export definitions for this library.
Definition glsVreMessageUtil.h:49