WaBis

walter.bislins.ch

JSG3D: JsgEleAttr

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.

JsgEleAttr Klasse

JsgEleAttr = {
AreaColor: JsgColor; Init = JsgColor.RGB( 0.8, 0.8, 1 )
Farbe der Vorderseite von Flächen.
AreaBackColor: JsgColor; Init = JsgColor.RGB( 1, 0.8, 0.8 )
Farbe der Rückseite von Flächen.
LineColor: JsgColor; Init = JsgColor.RGB( 0, 0, 0.5 )
Farbe von Linien und Flächenkanten.
AreaBackLineColor: JsgColor; Init = JsgColor.RGB( 0.5, 0, 0 )
Farbe von Kanten von Flächenrückseiten.
LineWidth: Number(>0); Init = 1
Strichdicke von Linien und Flächenkanten in Pixel.
Symbol: String; Init = 'Circle'
Marker-Symbol, welches beim Zeichnen von Punkten verwendet werden soll.
SymbSize: Number(>0); Init = 8
Symbolgrösse von Punkten in Pixel.
}

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.

JsgEleAttr Properties

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 Funktionen

JsgEleAttr() Erzeugt ein JsgEleAttr Objekt
JsgEleAttr.Set() Ändert die Properties eines bestehenden JsgEleAttr Objektes
JsgEleAttr.CopyFrom() Kopiert die Properties von einem anderen JsgEleAttr Objekt

JsgEleAttr()

new JsgEleAttr( Params, CopyColors )

Params: JsgEleAttrDef or JsgEleAttr; Optional
CopyColors: Boolean; Optional; Default = false
Wenn CopyColors = true ist, werden Faben in Params kopiert, sonst werden nur Referenzen auf die Farben im zurückgegebenen JsgEleAttr Objekt gespeichert.
Return: JsgEleAttr

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.

JsgEleAttrDef

JsgEleAttrDef = {
AreaColor: JsgColor; Optional; Default = JsgColor.RGB(0.8,0.8,1)
Farbe der Flächenoberseiten (hellblau).
AreaBackColor: JsgColor; Optional; Default = JsgColor.RGB(1,0.8,0.8)
Farbe der Flächenunterseiten (hellrot).
LineColor: JsgColor; Optional; Default = JsgColor.RGB(0,0,0.5)
Farbe der Flächenränder (dunkelblau).
AreaBackLineColor: JsgColor; Optional; Default = JsgColor.RGB(0.5,0,0)
Farbe der Flächenränder (dunkelrot).
LineWidth: Number(>=0); Optional; Default = 1
Strichdicke der Flächenränder in Pixel.
Symbol: String; Optional; Default = 'Circle'
Punkt-Elemente werden mit diesem Symbol gezeichnet.
SymbSize: Number(>=0); Optional; Default = 8
Grösse der Punkt-Symbole in Pixel.
}

JsgEleAttr.AreaColor

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

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

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

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

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

JsgEleAttr.Symbol: String; Init = 'Circle' 

Symbol, welches beim Zeichnen von Punkt-Elementen verwendet wird (siehe SetMarkerAttr() für eine Liste der Symbole).

JsgEleAttr.SymbSize

JsgEleAttr.SymbSize: Number(>0); Init = 8; Pixel

Symbol-Grösse eines Punkt-Elementes.

JsgEleAttr.Set()

JsgEleAttr.Set( Params, CopyColors )

Params: JsgEleAttrDef or JsgEleAttr; Optional; Default = undefined
CopyColors: Boolean; Optional; Default = false
Wenn CopyColors = true ist, werden Faben in Params kopiert, sonst werden nur Referenzen auf die Farben im zurückgegebenen JsgEleAttr Objekt gespeichert.

Ändert die Properties dieses JsgEleAttr Objektes entsprechend der Angaben in Params. Die Parameter sind identisch mit jenen des JsgEleAttr Konstruktors, siehe JsgEleAttrDef.

JsgEleAttr.CopyFrom()

JsgEleAttr.CopyFrom( Src )

Src: JsgEleAttr

Kopiert die Properties des Src JsgEleAttr Objektes in dieses Objekt.

Weitere Infos zur Seite
Erzeugt Mittwoch, 27. Januar 2016
von wabis
Zum Seitenanfang
Geändert Freitag, 5. Februar 2016
von wabis