InsertPlotSymbol

| ALPHA-VISION® DCS

## InsertPlotSymbol

### Syntax

Für Plotsymbole, die ohne Verbindungslinie direkt in den Schiffsplan plaziert werden:
`InsertPlotSymbol2D(class, symbol_figure, context_figure, cur_file);`
Für Plotsymbole, die mit Verbindungslinie ober- oder unterhalb des Schiffsplans plaziert werden:
`InsertPlotSymbol3D(class, symbol_figure, context_figure, cur_file);`

### Wirkung

Der Mauszeiger wird in den angegebenen Cursor umgewandelt. Der Bediener kann nun in einen Raum im rechten Fenster der BDCRUN-Applikation klicken. Daraufhin wird in diesem Raum ein Plotsymbol, bestehend aus der Figur `symbol_figure` plaziert und - sofern ein Raumname ermittelt werden konnte - dieser zurückgegeben (via Stack). Das Kontextmenü wird (entsprechende Projektierung vorausgesetzt) ebenfalls umgeschaltet. Wenn der Bediener nicht auf einen Raum klickt, dann passiert nichts.

Wenn in dem Raum bereits ein Plotsymbol mit der gleichen context_figure geplottet ist, dann wird kein neues Symbol geplottet.

### Argumente

class (String)
  Die benutzerdefinierte Datenobjektklasse die die Schadensdaten verwaltet. Beim Plazieren des Plotsymbols wird eine Instanz dieser Klasse angelegt. Eine solche Klasse muß folgende Eingenschaften enthalten:
  ContextFigure (String)
    Der Name der Figur für das Kontextmenü des Schadens. Dieser Wert wird aus dem entsprechenden Argument des InsertPlotSymbol-Jobs entnommen.
  SymbolFigure (String)
    Der Name der Figur für das PlotSymbol des Schadens. Dieser Wert wird aus dem entsprechenden Argument des InsertPlotSymbol-Jobs entnommen.
  Room (String)
    Die Raumbezeichnung des Raumes in dem der Schaden aufgetreten ist. Dieser Wert wird aus der entsprechenden Eigenschaft des Raumpolygons entnommen.
  Section (String)
    Die Bezeichnung der Sektion in welcher der Schaden aufgetreten ist. Dieser Wert wird aus der entsprechenden Eigenschaft des Raumpolygons entnommen.
  Deck (String)
    Die Bezeichnung des Decks in welchem der Schaden aufgetreten ist. Dieser Wert wird aus der entsprechenden Eigenschaft des Raumpolygons entnommen.
  Display (String)
    Der Name des Bildes, in dem das Plotsymbol plaziert wurde.
  RoomPolyName (String)
    Der Name des angewählten Raumpolygons. Dieser Wert wird intern gehandhabt.
  Dimension (Ganzzahl)
    Dieser Wert wird programmintern je nach Insert-Job (InsertPlotSymbol3D oder InsertPlotSymbol2D) gesetzt
  LineStartX und LineStartY (Ganzzahl)
    Die x- bzw. y-Koordinaten des Startpunktes der Verbindungslinie zwischen PlotSymbol und Raum (3D) bzw der Hotspot des Plot-Symbols (2D). Diese Werte werden intern berechnet.
  Created (Zeit)
    Diese Zeit wird beim Einfügen des Symbols automatisch gesetzt.
  Triggered (bool)
    Gibt an, ob der Schaden automatisch geplottet wurde. Wird intern berechnet.
  Soll eine Klasse mit dem InsertPlotSymbol3D-Job verwendet werden, muß sie zusätzlich noch folgend Elemente enthalten:
  LineEndX und LineEndY (Ganzzahl)
    Die x- bzw. y-Koordinaten des Endpunktes der Verbindungslinie zwischen PlotSymbol und Raum. Diese Werte werden intern berechnet.
  DamageType (String, Konstante)
    Der Schadenstyp (Fire, Water, ABC ...) der Plotsymbol-Klasse. Er wird bei der Projektierung als Default-Value festgelegt.
  LineColor (String, Konstante)
    Die Farbe, die diese Plotsymbol-Klasse zum Zeichnen der Verbindungslinie zwischen Symbol und Raum verwendet. Sie wird bei der Projektierung als Default-Value festgelegt.
  Das Datenobjekt des aktuell selektierten Schadens kann über `BDC.ActDamage` angesprochen werden.
symbol_figure (String)
  Die Figur (nur der Name, nicht die Datei) für das Plotsymbol. Innerhelb dieser Datei wird das Schadensobjekt durch den (automatisch angelegten) Formalparameter `Damage` angesprochen.
context_figure (String)
  Die Figur (nur der Name, nicht die Datei) für das Kontextmenü. Dieser Text wird in der Eingenschaft `ContextFigure` des Schadens-Datenobjekts gespeichert und dient zur Umschaltung der Figur für das Kontextmenü.
cur_file (String)
  Der Dateiname des anzuzeigenden Cursors relativ zum Projektverzeichnis. Die Datei muß sich im Projektverzeichis oder einem Unterverzeichnis davon befinden. Animierte Cursor sind ebenfalls möglich.
check_existing_plotsym (bool)
  Wenn dieser Parameter ungleich Null ist, dann wird nichts geplottet, wenn sich in dem Raum bereits ein Plotsymbol mit der gleichen context_figure befindet.

### Beispiel

Icon (Button) in der Iconleiste: (Aktion)

    //Der Cursor befindet sich im Unterverzeichnis Cursors
    InsertPlotSymbol("FireDamage", "FireDamageSymbol", "FireDamageContext", "Cursors\Fire.cur");

Plazierte Figur für das Kontextmenü: (Refresh)

    SetVal(Figure, BDC.ActDamage.ContextFigure);

Grafikobjekte innerhalb der Kontextmenü-Figur: z.B. Anzeige des Raumes in einem Text: (Refresh)

    SetVal(Text, BDC.ActDamage.Room);

Grafikobjekte innerhalb der Plotsymbol-Figur: z.B. Anzeige des aktuellen Schadens durch ein Rechteck: (Refresh)