Die Klasse JsgEleAttr ist ein Bestandteil der Klasse JsgEleData. Sie definiert einige der Attribute der Grafik-Elemente JsgGraphEle wie Farben, Strichdicke, Symbol und Symbolgrösse. Objekte der Klasse JsgEleAttr müssen nicht explizit erzeugt werden, sie werden beim Erzeugen von Objekten der Klasse JsgEleData implizit erzeugt.
Um einzelne Flächen eines Vektor-Gitters JsgVect3Grid individuell einfärben zu können, kann man beim Objekt JsgEleData, welches jedem Grafik-Element zugewiesen wird, eine Callback-Funktion zuweisen, siehe PointAttrFunc, LineAttrFunc und AreaAttrFunc. Diese wird vor dem Zeichnen des Elementes gerufen und ihr wird ein JsgEleAttr Objekt übergeben. Durch Überschreiben der Farbwerte dieses Objektes in der Callback-Funktion kann jeder Fläche oder Flächenumrandung individuell eine eigene Farbe zugewiesen werden. Auf dieselbe Art können auch Linien- und Punkt-Attribute in einer Callback-Funktion gesetzt werden.
}
Flächen haben eine Vorderseite und eine Rückseite. Was vorne und was hinten ist wird durch den Umlaufsinn der Eckpunkte definiert. Von einer Seite betrachtet sind die Eckpunkte einer Fläche im Gegenuhrzeigersinn angeordnet, von der anderen Seite betrachtet im Uhrzeigersinn.
Definition Vorderseite: Wenn man die Vorderseite betrachtet, sind die Eckpunkte im Gegenuhrzeigersinn angeordnet. Der Normalen-Vektor einer Fläche steht auf der Vorderseite und zeigt immer von der Vorderseite weg.
Aus Vektor-Gittern JsgVect3Grid können zusammenhängende Flächen generiert werden, siehe AddAreasFromVectGrid(). Für diese Flächen kann die Farbe der Vorderseite (AreaColor) und der Rückseite (AreaBackColor) separat gesetzt werden. Die Gitter können aber auch als Linien-Gitter gezeichnet werden. In diesem Falle kann mit LineColor die Farbe der Linien auf der Vorderseite, mit AreaBackLineColor die Farbe der Linien auf der Rückseite von Flächen und mit LineWidth die Strichdicke vorgegeben werden. Man kann aber auch nur die Schnittpunkte des Gitters in Form von Symbolen zeichnen lassen. In diesem Fall kann das Symbol mit Symbol, die Grösse des Symbols mit SymbSize und die Farben mit AreaColor und LineColor gesetzt werden.
AreaColor | Farbe der Flächenvorderseite |
AreaBackColor | Farbe der Flächenrückseite |
LineColor | Farbe von Linien-Elementen und Umrissfarbe von Flächenvorderseiten |
AreaBackLineColor | Umrissfarbe von Flächenrückseiten |
LineWidth | Strichdicke der Linien |
Symbol | Punkt-Elemente werden mit diesem Symbol gezeichnet |
SymbSize | Grösse des Symbols in Pixeln |
JsgEleAttr() | Erzeugt ein JsgEleAttr Objekt |
JsgEleAttr.Set() | Ändert die Properties eines bestehenden JsgEleAttr Objektes |
JsgEleAttr.CopyFrom() | Kopiert die Properties von einem anderen JsgEleAttr Objekt |
new JsgEleAttr( Params, CopyColors )
Erzeugt ein JsgEleAttr Objekt und initialisiert es mit Werten, welche in Params übergeben werden oder mit Default-Werten wie unten aufgeführt, wenn Params undefiniert ist.
Wenn in Params ein JsgEleAttr Objekt übergeben wird, wird eine Kopie dieses Objektes zurückgegeben.
In Params müssen nur Properties definiert werden, welche von den Default-Werten abweichen.
}
JsgEleAttr.AreaColor: JsgColor; Init = JsgColor.RGB( 0.8, 0.8, 1 )
Farbe der Vorderseite eines Flächen-Elements und Füllfarbe des Symbols eines Punkt-Elementes. Die Vorderseite ist jene Seite, auf welcher der Normalen-Vektor der Fläche steht.
eleAttr.AreaColor = JsgColor.RGB( r, g, b ); JsgColor.SetRGB( eleAttr.AreaColor, r, g, b );
Der Unterschied zwischen der ersten und zweiten Code-Zeile ist, dass in der ersten Zeile ein neues JsgColor Objekt zugewiesen wird, während in der zweiten Zeile ein bestehendes JsgColor Objekt neue Werte erhält.
Verwende die zweite Variante in den Callback-Funktion AreaAttrFunc und PointAttrFunc.
JsgEleAttr.AreaBackColor: JsgColor; Init = JsgColor.RGB( 1, 0.8, 0.8 )
Farbe der Rückseite eines Flächen-Elements. Die Vorderseite ist jene Seite, auf welcher der Normalen-Vektor der Fläche steht.
eleAttr.AreaBackColor = JsgColor.RGB( r, g, b ); JsgColor.SetRGB( eleAttr.AreaBackColor, r, g, b );
Der Unterschied zwischen der ersten und zweiten Code-Zeile ist, dass in der ersten Zeile ein neues JsgColor Objekt zugewiesen wird, während in der zweiten Zeile ein bestehendes JsgColor Objekt neue Werte erhält.
Verwende die zweite Variante in der Callback-Funktion AreaAttrFunc.
JsgEleAttr.LineColor: JsgColor; Init = JsgColor.RGB( 0, 0, 0.5 )
Farbe der Umrandung der Vorderseite eines Flächen-Elements, Farbe eines Linien-Elementes und Farbe des Umrisses des Symbols eines Punkt-Elementes.
eleAttr.LineColor = JsgColor.RGB( r, g, b ); JsgColor.SetRGB( eleAttr.LineColor, r, g, b );
Der Unterschied zwischen der ersten und zweiten Code-Zeile ist, dass in der ersten Zeile ein neues JsgColor Objekt zugewiesen wird, während in der zweiten Zeile ein bestehendes JsgColor Objekt neue Werte erhält.
Verwende die zweite Variante in den Callback-Funktionen AreaAttrFunc, LineAttrFunc und PointAttrFunc.
JsgEleAttr.AreaBackLineColor: JsgColor; Init = JsgColor.RGB( 0.5, 0, 0 )
Farbe der Umrandung der Rückseite eines Flächen-Elements.
eleAttr.AreaBackLineColor = JsgColor.RGB( r, g, b ); JsgColor.SetRGB( eleAttr.AreaBackLineColor, r, g, b );
Der Unterschied zwischen der ersten und zweiten Code-Zeile ist, dass in der ersten Zeile ein neues JsgColor Objekt zugewiesen wird, während in der zweiten Zeile ein bestehendes JsgColor Objekt neue Werte erhält.
Verwende die zweite Variante in der Callback-Funktion AreaAttrFunc.
JsgEleAttr.LineWidth: Number(>0); Init = 1; Pixel
Strichdicke der Umrandung eines Flächen-Elements, Strichdicke eines Linien-Elementes und Strichdicke des Umrisses des Symbols eines Punkt-Elementes.
JsgEleAttr.Symbol: String; Init = 'Circle'
Symbol, welches beim Zeichnen von Punkt-Elementen verwendet wird (siehe SetMarkerAttr() für eine Liste der Symbole).
JsgEleAttr.SymbSize: Number(>0); Init = 8; Pixel
Symbol-Grösse eines Punkt-Elementes.
JsgEleAttr.Set( Params, CopyColors )
Ändert die Properties dieses JsgEleAttr Objektes entsprechend der Angaben in Params. Die Parameter sind identisch mit jenen des JsgEleAttr Konstruktors, siehe JsgEleAttrDef.
JsgEleAttr.CopyFrom( Src )
Kopiert die Properties des Src JsgEleAttr Objektes in dieses Objekt.