Entities
Die Grundklasse Entity
kapselt die wichtigsten Methoden für ein Zeichnen.
Es besitzt folgenden Felder und Methoden:
1.
Parent : Ein übergeordnetes Entity.
2.
Name : Ist der Name des Entities E z.B.: "Entity1" und Parent1, der Parent von E (Es wird einfach die Egenschaft E.Parent=Parent1 gesetzt),
so liefert Parent1.find("Entity1") das Entity E.
3.
Find : Siehe 2.
4.
Invalid : wird das Entity verändert, so muss Invalid= true gesetzt werden, damit eine neue Compilation erfolg.
5.
Transformation: Ist eine Matrix, die das Entity transformiert.
z.B.: Entity1.Tranfromation= Matrix.Scale(new xyz(2,2,2)); verdoppelt die Größe des Entities.
6.
Material: Es kapselt das Material, mit dem das Entity gezeichnet wird.
7.
Translucent: Setzt die Durchsichtigkeit des Entities.
8.
Texture: Jedem Entity kann eine Textur zugeordnet werden, mit der es gezeichnet wird.
9.
Visible: Es kann die Sichtbarkeit ein und ausgeschaltet werden.
10.
Ein Event Draw: Damit kann die Zeichenmethode des Entity E gesetzt werden:
z.B.:
function DrawEntity(entity, device) {
WebDevicedrawSphere(new xyz(5, 0, 0),3);}
E.Draw = DrawEntity;
und in
function draw(){
E.Paint(WebDevice);
}
11.
CompileEnable: Ist diese Feld gesetzt, so erzeugt die Device automatisch eine Liste von
Meshes. Default ist true. Dies beschleunigt den Zeichenvorgang. Wird das Entity allerdings oft verändert, dann ist es besser CompileEnable = false zu setzen.
12.
MeshList : Sie enhält eine List bestehend aus Meshes. Sie sind für beim Zeichnen das Schhellste.
Folgende Entities sind vordefiniert:
Mesh in WebGL
Besitzt die Felder
1.Indices
2.Position
3.Colors
4.Normals
5.TextureCoords
und
wird direkt als VAO (Vertex Array Objekt) gezeichnent. Deshalb ist es die
schnellste Art ein zu zeichnen.
Dies schaut dann so aus:
TextEntity
Besitzt die Felder
1.
Text: ist der Text, der ausgegeben wird.
2.
Font: der Font, der verwendet wird.
3.
Position: die Position, wo der Text ausgegeben wird.
4.
Size: die Größe der Schrift.
5.
Extrusion: gibt an um wieviel der Text extrudiert wird.
6.
Italic: kann gesetzt werden, um einen italic Style für die Schrift zu erreichen.
Dies schaut dann so aus (gedreht ):