Objekte der Klasse JsgEleData werden in der EleDataList der DisplayList gespeichert. Jedem Grafik-Element wird ein JsgEleData zugewiesen, welches seine Darstellungseigenschaften festlegt.
Wenn einem Grafik-Objekt nicht explizit ein JsgEleData Objekt zugewiesen wird, so wird das DefaultEleData Objekt des JsGraph3D Objektes verwendet.
}
Die Callback-Funktionen müssen wiefolgt definiert werden:
Function( Graph3D, Element, Attr )
Attr | Attribute wie Farben, Strichdicke, Symbol und Symbolgrösse (siehe JsgEleAttr) |
AreaDrawMode | Modus beim Zeichnen von Flächen (Gitter und/oder Flächen) |
PointDrawMode | Modus beim Zeichnen von Punkten (Symbolumriss und/oder -Fläche) |
AreaAttrFunc | Funktion zur Veränderung von Flächen-Attributen beim Zeichnen |
LineAttrFunc | Funtkion zur Veränderung von Linien-Attributen beim Zeichnen |
PointAttrFunc | Funktion zur Veränderung von Symbol-Attributen beim Zeichnen |
Lighting | Beleuchtungs-Attribute für Flächenvorderseiten (siehe JsgEleLighting) |
BackLighting | Beleuchtungs-Attribute für Flächenrückseiten (siehe JsgEleLighting) |
ContourMode | Schaltet den Contour-Mode ein und aus |
ContourSense | Empfindlichkeit des Contour-Modes |
ContourColor | Farbe der Contour |
ContourWidth | Strickdicke der Cintour |
JsgEleData() | Erzeugt ein JsgEleData Objekt |
SetDefaultEleData() | Definiert die Standard-Elementattribute |
AddOrGetDefaultEleData() | Fügt ein JsgEleData Objekt in die EleDataList ein oder gibt eine Referenz auf DefaultEleData zurück |
SaveDefaultEleData() | Speichert DefaultEleData in einem Objekt |
JsgEleData.Attr: JsgEleAttr; Init = new JsgEleAttr()
Attribute wie Farben, Strichdicke, Symbol und Symbolgrösse.
JsgEleData.AreaDrawMode: Integer(1..3); Init = 3
Zeichen-Mode der Flächen-Elemente: 1 → Gitter; 2 → Flächen; 3 → Gitter und Flächen
JsgEleData.PointDrawMode: Integer(1..3); Init = 3
Zeichen-Mode der Punkt-Elemente: 1 → Symbolumriss; 2 → Symbolfläche; 3 → Umriss und Fläche
JsgEleData.DrawBackface: Boolean; Init = true
Wenn true werden auch die Rückseiten von Flächen gezeichnet. Wenn man geschlossene Objekte erzeugt, z.B. eine Kugel, bei welchen alle Innenflächen immer unsichtbar sind, kann DrawBackface = false gesetzt werden. Dies erspart Berechnungen und Grafik-Recourcen.
JsgEleData.AreaAttrFunc: Function( JsGraph3D, JsgGraphEle, JsgEleAttr ); Init = null
Callback-Funktion in welcher die Farbe und Strichdicke eines Flächen-Elementes gesetzt werden können.
JsgEleData.LineAttrFunc: Function( JsGraph3D, JsgGraphEle, JsgEleAttr ); Init = null
Callback-Funktion in welcher Farbe und Strichdicke eines Linien-Elementes gesetzt werden können.
JsgEleData.PointAttrFunc: Function( JsGraph3D, JsgGraphEle, JsgEleAttr ); Init = null
Callback-Funktion in welcher das Symbol, die Symbolgrösse, Füllfarbe und Umrissfarbe eines Punkt-Elementes gesetzt werden können.
JsgEleData.Lighting: JsgEleLighting; Init = new JsgEleLighting()
Beleuchtungsattribute der Flächenvorderseiten.
JsgEleData.BackLighting: JsgEleLighting; Init = new JsgEleLighting()
Beleuchtungsattribute der Flächenrückseiten.
JsgEleData.ContourMode: Boolean; Init = false
Gibt an, ob der Contour-Mode beim Zeichnen von Flächen verwendet werden soll.
JsgEleData.ContourSense: Number(0..1); Init = 0.1
Empfindlichkeit des Contour-Modes.
JsgEleData.ContourColor: JsgColor; Init = JsgColor.Black()
Contour-Farbe.
JsgEleData.ContourWidth: Number(>0); Init = 7
Strichdicke der Contour-Linien in Pixel.
new JsgEleData( Params )
}
Erzeugt ein JsgEleData Objekt und initialisiert es mit Werten, welche in Params übergeben werden oder mit Default-Werten wie oben aufgeführt.
In Params müssen nur Properties definiert werden, welche von den Default-Werten abweichen.
Wenn in Params ein JsgEleData Objekt übergeben wird, wird eine Kopie dieses Objektes zurückgegeben. Objekt-Properties wie Attr, Lighting, BackLighting und ContourColor werden nicht kopiert sondern es wird eine Referenz auf das entsprechende Objekt in Params im neuen JsgEleData Objekt gespeichert.
JsGraph3D.SetDefaultEleData( Params )
Definiert die Standard-Attribute (siehe Property DefaultEleData) für grafische Elemente. Für Params siehe JsgEleData Konstruktor.
Die Standard-Attribute werden allen Flächen zugewiesen, bei welchen nicht explizit eigene JsgEleData Attribute zugewiesen werden (siehe z.B. AddAreasFromVectGrid()).
Hinweis: Mit SetDefaultEleData wird ein bereits bestehendet DefaultEleData Objekt ersetzt. Das neue DefaultEleData Objekt wird nur neuen Grafik-Elementen zugewiesen. Sollen Attribute bestehender Grafik-Elemente geändert werden, muss das bestehende DefaultEleData Objekt mit der Funktion ChangeDefaultEleData() verändert werden.
JsGraph3D.ChangeDefaultEleData( Params )
Ändert die Standard-Attribute (siehe Property DefaultEleData) für grafische Elemente. Für Params siehe JsgEleData Konstruktor.
Die Standard-Attribute werden allen Flächen zugewiesen, bei welchen nicht explizit eigene JsgEleData Attribute zugewiesen werden (siehe z.B. AddAreasFromVectGrid()).
ChangeDefaultEleData kann verwendet werden, um das Aussehen bereits bestehender Grafik zu verändern, sofern diese mit dem DefaultEleData Objekt verknüpft sind. Die Änderungen werden erst beim Aufruf der Funktion DrawDisplayList() sichtbar.
JsGraph3D.AddOrGetDefaultEleData( Params )
Fügt ein neues JsgEleData Objekt am Ende der Liste EleDataList der DisplayList ein und gibt eine Referenz auf das JsgEleData Objekt zurück. Wenn Params = null oder undefiniert ist, wird kein neues JsgEleData Objekt erzeugt und in die Liste eingefügt, sondern eine Referenz auf DefaultEleData zurückgegeben.
Wenn Params ein JsgEleData Objekt ist, wird eine Kopie des Objektes erstellt und in die EleDataList eingefügt. Es wird eine Referenz auf die Kopie zurückgegeben.
Diese Funktion wird intern von einigen JsgDisplayList Funktionen gerufen.
JsGraph3D.SaveDefaultEleData( Params )
Speichert DefaultEleData im Objekt Params im Property DefaultEleData. Wenn Params nicht definiert oder null ist, wird intern ein Objekt erzeugt. Es wird entweder das Objekt Params oder das intern erzeugte Objekt zurückgegeben.
Mit der Funktion AddOrGetDefaultEleData() kann das im Objekt gespeicherte DefaultEleData wieder dem Property JsGraph3D.DefaultEleData zugewiesen werden.
var data = g.SaveDefaultEleData(); : g.AddOrGetDefaultEleData( data.DefaultEleData );