LitDev 1.2.15.0 DE Extension API

LD3DView LDArray LDBits LDBlueTooth LDCall
LDChart LDClient LDClipboard LDColours LDCommPort
LDController LDControls LDCursors LDDataBase LDDateTime
LDDebug LDDialogs LDDictionary LDEffect LDEmail
LDEncryption LDEvents LDFastArray LDFastShapes LDFigures
LDFile LDFocus LDftp LDGraph LDGraphicsWindow
LDHID LDImage LDInline LDIOWarrior LDList
LDLogic LDMath LDMathX LDMatrix LDMusic
LDNetwork LDPhysics LDProcess LDQueue LDRegex
LDResources LDScrollBars LDSearch LDServer LDSettings
LDShapes LDShell LDSort LDSound LDSpeech
LDStatistics LDStopwatch LDText LDTextWindow LDTimer
LDTranslate LDUnits LDUtilities LDWaveForm LDWebCam
LDWindows LDxml LDZip

LD3DView
3D Visualisierung im GraphicsWindow.

Standardkoordinaten haben folgende Richtungen und keinen Bezug zu GraphicsWindow Koordinaten:
x - Links | Rechts +
y - Unten | Oben +
z - Rein | Raus +

Weitere Details zu untergeordneten Methoden s. http://msdn.microsoft.com/library/ms747437.aspx (Übersicht zu 3D-Grafiken).
Einige Add...-Methoden verwenden HelixToolkit (rekompiliert und angepasst für SB, http://www.helix-toolkit.org).

example 3D-samples\*.sb
http://blogs.msdn.microsoft.com/smallbasic/2016/06/19/3d-visualisation/
http://msdn.microsoft.com/library/system.windows.controls.viewport3d.aspx
http://msdn.microsoft.com/library/system.windows.media.media3d.viewport3dvisual.aspx
http://csharphelper.com/blog/2014/10/understand-three-dimensional-drawing-with-wpf-xaml-and-c


AddAmbientLight AddArrow AddCone
AddCube AddDirectionalLight AddGeometry
AddIcosahedron AddImage AddPipe
AddPointLight AddPyramid AddRectangle
AddRevolute AddSphere AddSpotLight
AddTube AddView AnimateRotation
AnimateRotation2 AnimateTranslation AutoControl
BoundingBox CameraProperties CloneObject
Freeze GetCameraDirection GetCameraPosition
GetCameraUpDirection GetPosition HitTest
LastRotationCompleted LastTranslationCompleted LoadModel
ModifyObject MoveCamera QueuedRotationCompleted
QueuedTranslationCompleted ResetCamera ResetMateral
ReverseNormals RotateGeometry RotateGeometry2
RotateGeometry3 RotationCompleted ScaleGeometry
SetBillBoard SetCentre SpecularExponent
TranslateGeometry TranslationCompleted

AddAmbientLight(shapeName,colour)
Fügt eine umgebende Lichtquelle hinzu, für gleichmäßige Beleuchtung aller Objekte. Oft mit Farbe geringer Helligkeit zB. (Light)Gray. Ungeeignet für spiegelnde Materialien "S" (Intern: Light#).
shapeName Der Name der 3DView Shape.
colour Die Lichtfarbe (zB. "#808040").
returns Der 3DView Lichtname.

AddArrow(shapeName,length,diameter,arrowLength,arrowDiameter,divisions,colour,materialType)
Fügt ein Pfeil Geometrieobjekt hinzu, aufwärts gerichtet beginnend an (0,0,0) (Intern: Geometry#).
shapeName Der Name der 3DView Shape.
length Die Gesamtlänge des Pfeils.
diameter Der Schaftdurchmesser des Pfeils.
arrowLength Die Länge der Pfeilspitze.
arrowDiameter Der untere Durchmesser der Pfeilspitze.
divisions Die Anzahl radialer Teilbereiche für den Pfeil (>3, Standard: 18, nicht "").
colour Die Farbe oder ein Gradientpinsel (Brush) für das Objekt.
materialType Der Materialtyp:
"E" Emissiv, konstante Helligkeit
"D" Diffus, beeinflusst durch Licht
"S" Spiegelnd, zusätzliche Glanzpunkte

returns Der Name des Geometrieobjekts in der 3DView.

AddCone(shapeName,baseRadius,topRadius,height,divisions,colour,materialType)
Fügt ein Kegel(stumpf) Geometrieobjekt hinzu, aufrecht mit der Basis zentriert in (0,0,0) (Intern: Geometry#).
Info: Ein Zylinder entspricht einem Konus mit baseRadius = topRadius.

shapeName Der Name der 3DView Shape.
baseRadius Der Radius der Grundfläche.
topRadius Der obere Radius (Standard: 0, Kegel),
> 0 Kegelstumpf
= baseRadius Zylinder

height Die Höhe des Konus.
divisions Die Anzahl radialer Teilbereiche für den Konus (Standard: 18).
colour Die Farbe oder ein Gradientpinsel (Brush) für das Objekt.
materialType Der Materialtyp:
"E" Emissiv, konstante Helligkeit
"D" Diffus, beeinflusst durch Licht
"S" Spiegelnd, zusätzliche Glanzpunkte

returns Der Name des Geometrieobjekts in der 3DView.

AddCube(shapeName,sideLength,colour,materialType)
Fügt ein Würfel Geometrieobjekt hinzu, zentriert in (0,0,0) (Intern: Geometry#).
shapeName Der Name der 3DView Shape.
sideLength Die Seitenlänge für den Würfel.
colour Die Farbe oder ein Gradientpinsel (Brush) für das Objekt.
materialType Der Materialtyp:
"E" Emissiv, konstante Helligkeit
"D" Diffus, beeinflusst durch Licht
"S" Spiegelnd, zusätzliche Glanzpunkte

returns Der Name des Geometrieobjekts in der 3DView.

AddDirectionalLight(shapeName,colour,xDir,yDir,zDir)
Fügt eine gerichtete Lichtquelle hinzu, zur Beleuchtung aus einer Richtung zB. Sonnenlicht (Intern: Light#).
shapeName Der Name der 3DView Shape.
colour Die Lichtfarbe (zB. "#FFFF80").
xDir Der x-Richtungsvektor [-1,1] entlang dem der Lichteffekt wirkt (Standard: 0).
yDir Der y-Richtungsvektor [-1,1] entlang dem der Lichteffekt wirkt (Standard: 0).
zDir Der z-Richtungsvektor [-1,1] entlang dem der Lichteffekt wirkt (Standard: -1).
returns Der 3DView Lichtname.

AddGeometry(shapeName,points,indices,normals,colour,materialType)
Fügt ein mathematisches Geometrieobjekt hinzu. Position und Dimension entsprechend 'points' Definition. (Intern: Geometry#).
s. http://sol.gfxile.net/sphere/index.html (Sphere Mesh Creation).

shapeName Der Name der 3DView Shape.
points Eine Leerzeichen- oder Doppelpunkt- begrenzte Liste aller Eckpunkt-Koordinaten (zB. "x1 y1 z1:x2 y2 z2: ..").
indices Eine Leerzeichen- oder Doppelpunkt- begrenzte Liste von Eckpunkt-Indizes für jedes Dreieck (ab 0, im Gegenuhrzeigersinn je Außenfläche).
normals Optionale Leerzeichen- oder Doppelpunkt- begrenzte Liste von Auswärts-Normalen für jeden Knoten oder "".
colour Die Farbe oder ein Gradientpinsel (Brush) für das Objekt.
materialType Der Materialtyp:
"E" Emissiv, konstante Helligkeit
"D" Diffus, beeinflusst vom Licht
"S" Spiegelnd, zusätzliche Glanzpunkte

returns Der Name des neuen Geometrieobjekts in der 3DView bei Erfolg, sonst "" und Fehlermeldung.
example 'Tetraeder
pts= "1:0:-.707 -1:0:-.707 0:1:.707 0:-1:.707"
pts= "1:1:1 1:-1:-1 -1:1:-1 -1:-1:1" 'od. schräg
idcs= "0:1:2 0:2:3 0:3:1 1:3:2"


AddIcosahedron(shapeName,radius,colour,materialType)
Fügt ein regelmäßiges Ikosaeder (20Flächner) Geometrieobjekt hinzu, zentriert in (0,0,0) (Intern: Geometry#).
shapeName Der Name der 3DView Shape.
radius Der Radius des Ikosaeder.
colour Die Farbe oder ein Gradientpinsel (Brush) für das Objekt.
materialType Der Materialtyp:
"E" Emissiv, konstante Helligkeit
"D" Diffus, beeinflusst durch Licht
"S" Spiegelnd, zusätzliche Glanzpunkte

returns Der Name des Geometrieobjekts in der 3DView.

AddImage(shapeName,geometryName,textures,imageName,materialType)
Fügt ein Bild zu einem Geometrieobjekt hinzu.
Eine geometrische 'Ansicht' kann verschiedene Segmentbilder in einem Bild beinhalten.

shapeName Der Name der 3DView Shape.
geometryName Der Name des Geometrieobjekts, zB. model[1].
textures Eine Leerzeichen- oder Doppelpunkt- begrenzte Liste der Texturkoordinaten für jeden Knoten.
Jeder Knoten hat 2 Werte zwischen 0 und 1 welche die x,y Abbildung des Bildes zum Knoten bestimmen (zB. "0:0 1:0 0:1 1:1" für Gesamtbild auf 4eck).
Kann "" (Standard) sein, wenn die Textur zuvor bereits gesetzt wurde.

imageName Das im Geometrieobjekt zu ladende Bild oder ein Gradientpinsel (Brush).
Rückgabewert von ImageList.LoadImage, lokale oder Netzwerk- Bilddatei bzw. Brushname.

materialType Der Materialtyp:
"E" Emissiv, konstante Helligkeit
"D" Diffus, beeinflusst vom Licht
"S" Spiegelnd, zusätzliche Glanzpunkte


AddPipe(shapeName,length,innerDiameter,outerDiameter,divisions,colour,materialType)
Fügt ein Rohr Geometrieobjekt hinzu, aufrecht mit der Basis zentriert in (0,0,0) (Intern: Geometry#).
shapeName Der Name der 3DView Shape.
length Die Länge des Rohres.
innerDiameter Der innere Rohrdurchmesser.
outerDiameter Der äußere Rohrdurchmesser.
divisions Die Anzahl radialer Teilbereiche für das Rohr (Standard: 18).
colour Die Farbe oder ein Gradientpinsel (Brush) für das Objekt.
materialType Der Materialtyp:
"E" Emissiv, konstante Helligkeit
"D" Diffus, beeinflusst durch Licht
"S" Spiegelnd, zusätzliche Glanzpunkte

returns Der Name des Geometrieobjekts in der 3DView.

AddPointLight(shapeName,colour,xPos,yPos,zPos,range)
Fügt eine nicht gerichtete Punktlichtquelle hinzu, mit begrenzter Reichweite (Intern: Light#).
shapeName Der Name der 3DView Shape.
colour Die Lichtfarbe.
xPos Die x-Position des Lichtes.
yPos Die y-Position des Lichtes.
zPos Die z-Position des Lichtes.
range Der Lichtwirkungsbereich (Entfernung bis zu welcher der Lichteffekt wirkt).
returns Der 3DView Lichtname.

AddPyramid(shapeName,sideLength,height,colour,materialType)
Fügt ein Pyramide Geometrieobjekt hinzu, aufrecht mit der Basis zentriert in (0,0,0) (Intern: Geometry#).
shapeName Der Name der 3DView Shape.
sideLength Die Seitenlänge an der Basis.
height Die Höhe.
colour Die Farbe oder ein Gradientpinsel (Brush) für das Objekt.
materialType Der Materialtyp:
"E" Emissiv, konstante Helligkeit
"D" Diffus, beeinflusst durch Licht
"S" Spiegelnd, zusätzliche Glanzpunkte

returns Der Name des Geometrieobjekts in der 3DView.

AddRectangle(shapeName,width,height,colour,materialType)
Fügt ein Rechteck Geometrieobjekt hinzu, zentriert in (0,0,0), liegt in x,y Ebene mit Höhe z=0 (Intern: Geometry#).
shapeName Der Name der 3DView Shape.
width Die Breite des Rechtecks.
height Die Höhe des Rechtecks.
colour Die Farbe oder ein Gradientpinsel (Brush) für das Objekt.
materialType Der Materialtyp:
"E" Emissiv, konstante Helligkeit
"D" Diffus, beeinflusst durch Licht
"S" Spiegelnd, zusätzliche Glanzpunkte

returns Der Name des Geometrieobjekts in der 3DView.

AddRevolute(shapeName,path,divisions,colour,materialType)
Fügt ein Revolute Geometrieobjekt hinzu. Dies ist eine (offene/geschlossene) Oberfläche beginnend an (0,0,0) und aufwärts gerichtet.
Die Form ist definiert durch eine Punktemenge (Y,Z), wobei Y die vertikale Distanz entlang der Oberfläche ab 0 beschreibt, Z ist der Mantelradius.

shapeName Der Name der 3DView Shape.
path Eine Leerzeichen- oder Doppelpunkt- begrenzte Liste von 2D Punktkoordinaten zur Beschreibung der Revolutenform, zB. "y1:r1 y2:r2 ...".
divisions Die Anzahl radialer Teilbereiche (>1, Standard: 10, beeinflusst Anzahl der Dreiecke und Glattheit).
colour Die Farbe oder ein Gradientpinsel (Brush) für das Objekt.
materialType Der Materialtyp:
"E" Emissiv, konstante Helligkeit
"D" Diffus, beeinflusst durch Licht
"S" Spiegelnd, zusätzliche Glanzpunkte

returns Der Name des Geometrieobjekts in der 3DView.
example '3-teiliger Baum
path = "0:0 0:0.5 1:0.5 1:3 3:1 3:2.5 5:1 5:2 8:0"


AddSphere(shapeName,radius,divisions,colour,materialType)
Fügt ein Kugel Geometrieobjekt zentriert in (0,0,0) hinzu (Intern: Geometry#).
shapeName Der Name der 3DView Shape.
radius Der Kugelradius.
divisions Die Anzahl der Raumbereiche (>1, Standard: 10, beeinflusst Anzahl der Dreiecke und Glattheit).
colour Die Farbe oder ein Gradientpinsel (Brush) für das Objekt.
materialType Der Materialtyp:
"E" Emissiv, konstante Helligkeit
"D" Diffus, beeinflusst durch Licht
"S" Spiegelnd, zusätzliche Glanzpunkte

returns Der Name des Geometrieobjekts in der 3DView.

AddSpotLight(shapeName,colour,xPos,yPos,zPos,xDir,yDir,zDir,angle,range)
Fügt eine gerichtete Punktlichtquelle hinzu, mit begrenztem Lichtkegel und Reichweite (Intern: Light#).
shapeName Der Name der 3DView Shape.
colour Die Lichtfarbe.
xPos Die x-Position des Lichtes.
yPos Die y-Position des Lichtes.
zPos Die z-Position des Lichtes.
xDir Der x-Richtungsvektor [-1,1] der Lichtprojektion (Standard: 0).
yDir Der y-Richtungsvektor [-1,1] der Lichtprojektion (Standard: 0).
zDir Der z-Richtungsvektor [-1,1] der Lichtprojektion (Standard: -1).
angle Der Lichtkegel des Strahls [Grad].
range Der Lichtwirkungsbereich (Entfernung bis zu welcher der Lichteffekt wirkt).
returns Der 3DView Lichtname.

AddTube(shapeName,path,diameter,divisions,colour,materialType)
Fügt ein rohr-/schlauchförmiges Geometrieobjekt hinzu (Intern: Geometry#).
shapeName Der Name der 3DView Shape.
path Eine Leerzeichen- oder Doppelpunkt- begrenzte Liste von 3D Punktkoordinaten, zB. "x1:y1:z1 x2:y2:z2 ...".
diameter Der Rohr-/Schlauchdurchmesser.
divisions Die Anzahl radialer Rohrbereiche (>1, Standard: 10, beeinflusst Anzahl der Dreiecke und Glattheit).
colour Die Farbe oder ein Gradientpinsel (Brush) für das Objekt.
materialType Der Materialtyp:
"E" Emissiv, konstante Helligkeit
"D" Diffus, beeinflusst durch Licht
"S" Spiegelnd, zusätzliche Glanzpunkte

returns Der Name des Geometrieobjekts in der 3DView.

AddView(width,height,performance)
Fügt eine 3DView Shape im GraphicsWindow hinzu, worin 3D Geometrieobjekte eingebunden und animiert werden können (Intern: View3D#).
width Die Breite der 3DView Shape.
height Die Höhe der 3DView Shape.
performance Vorzug von Schnelligkeit über Qualität? "True" oder "False" (Standard, 3DView fixiert auf definierte Breite/Höhe).
"True" entfernt visuelles Clipping (-> Größenänderung mit GW), 'HitTest' (nicht verwendet) und Antialias (nicht benötigt).

returns Der Name der 3DView Shape Ansicht.

AnimateRotation(shapeName,geometryName,xDir,yDir,zDir,startAngle,endAngle,duration,repeats)
Setzt ein Geometrieobjekt auf animierte 3D-Rotation um einen Achsenvektor (asynchron, s. 'RotationCompleted' Ereignis).
Verwendet die zweite Rotation. Die erste ist weiterhin verfügbar für eine andere Achsrotation.

shapeName Der Name der 3DView Shape.
geometryName Der Name des zu drehenden Geometrieobjekts, zB. model[1].
xDir Der x-Richtungsvektor [-1,1] der Drehachse.
yDir Der y-Richtungsvektor [-1,1] der Drehachse.
zDir Der z-Richtungsvektor [-1,1] der Drehachse.
startAngle Der Startwinkel [Grad] vom Grundzustand (Standard: 0).
endAngle Der Endwinkel [Grad] vom Grundzustand, zB. 360 (Standard: 0).
duration Die Dauer für einen Rotationszyklus [sec].
repeats Die Anzahl der Rotationszyklen (-1 für stetig).

AnimateRotation2(shapeName,geometryName,xDir,yDir,zDir,startAngle,endAngle,duration,repeats)
Setzt ein Geometrieobjekt auf animierte 3D-Rotation um einen Achsenvektor (asynchron, s. 'RotationCompleted' Ereignis).
Verwendet die dritte Rotation. Die erste ist weiterhin verfügbar für eine andere Achsrotation.

shapeName Der Name der 3DView Shape.
geometryName Der Name des zu drehenden Geometrieobjekts, zB. model[1].
xDir Der x-Richtungsvektor [-1,1] der Drehachse.
yDir Der y-Richtungsvektor [-1,1] der Drehachse.
zDir Der z-Richtungsvektor [-1,1] der Drehachse.
startAngle Der Startwinkel [Grad] vom Grundzustand (Standard: 0).
endAngle Der Endwinkel [Grad] vom Grundzustand (Standard: 0), zB. 360.
duration Die Dauer für einen Rotationszyklus [sec].
repeats Die Anzahl der Rotationszyklen (-1 für stetig).

AnimateTranslation(shapeName,geometryName,x,y,z,duration)
Setzt ein Geometrieobjekt auf animierte geradlinige 3D-Bewegung (asynchron, s. 'TranslationCompleted' Ereignis).
shapeName Der Name der 3DView Shape.
geometryName Der Name des zu bewegenden Geometrieobjekts, zB. model[1].
x Die x-Koordinate des Zielpunktes.
y Die y-Koordinate des Zielpunktes.
z Die z-Koordinate des Zielpunktes.
duration Die Dauer der Animation [sec].

AutoControl(pitchRoll,shift,keyDistance,speed)
Setzt automatische Steuerung für die Kamera.
Vor-|Rückwärtsbewegung per Mausrad (+Umschalt/Strg Taste für 5x schneller/langsamer).
L|R Gieren (Yaw) und Auf|Ab Neigen (Pitch) Kamerabewegung mit L-Maus.
L|R Gieren mit A,D oder Links,Rechts Taste.
Vor-|Rückwärtsbewegung mit W,S oder Auf,Ab Taste.
Rollen (Drehen) Kamerabewegung mit R-Maus.
L-Doppelklick auf Objekt zur Zentrierung/Auswahl.
R-Doppelklick zum Zurücksetzen der Aufwärts-Richtung zu y (yUp=1).
L|R Gieren (Yaw) und Auf-Ab Neigen (Pitch) Szenenbewegung mit Umschalt+LMaus (nach Objektwahl) zur Rotation um die Szene.
X,Y,Z Taste setzt diese Aufwärts-Richtung (Blick nach 0,0,0); +Umschalt in die Gegenrichtung.

pitchRoll Auf|Ab Neigen und Rollen Bewegung erlauben? "True" oder "False" (Standard).
shift Umschalt/Strg Tasten zur Maussteuerung erlauben? "True" oder "False" (Standard).
keyDistance Kameraabstand und Tastensteuerung:
>0 Kameraabstand zum Ursprung bei X,Y,Z Taste
0 verhindert X,Y,Z Tasten (Standard, "")
-1 verhindert auch A,D,W,S und Pfeiltasten

speed Vor-/Rückwärts Schrittfaktor (Standard: 1; 0.833=1/1.2=5/6 für dStep=1).

BoundingBox(shapeName,geometryName)
Ermittelt Abmessungen und Position des umgebenden Hüllkörpers für ein einzelnes Geometrieobjekt (s. GetPosition).
Dies sind die aktuellen Werte/Koordinaten (nach allen Transformationen).

shapeName Der Name der 3DView Shape.
geometryName Der Name des Geometrieobjekts.
returns Ein 6-elementiger Array (ab 1) folgender Dimensionen/Position bei Erfolg, sonst "FAILED":

dimX = box[1] (Breite)
dimY = box[2] (Höhe)
dimZ = box[3] (Tiefe)
minX = box[4]
minY = box[5]
minZ = box[6]


CameraProperties(shapeName,nearDistance,farDistance,angle)
Setzt den horizontalen Blickwinkel der Kamera, sowie Clipping Abstände (Entfernung zur nahen/fernen Ausschneideebene).
Die fundamentalen Eigenschaften für perspektivische Kamerasicht.

shapeName Der Name der 3DView Shape.
nearDistance Der nahe Clipping Abstand (kann nahes Objekt verbessern zB. Maueraufprall Erkennung).
Ein negativer Wert ist 0.001 (Standard: 0.125).

farDistance Der ferne Clipping Abstand (kann Leistung verbessern).
Ein negativer Wert ist unendlich (Standard).

angle Der Sichtkegel der Kamera [Grad]. Beeinflusst den perspektivischen Fluchtpunkt (Standard: 60).
Falls negativ, wird eine orthographische Kamera (Parallelprojektion mit Sichtbreite -angle) verwendet (statt perspektivische Zentralprojektion).


CloneObject(shapeName,geometryName)
Erstellt eine komplette Kopie eines einzelnen Geometrieobjekts mit all seinen Eigenschaften (Intern: Geometry#+1).
shapeName Der Name der 3DView Shape.
geometryName Der Name des zu kopierenden Geometrieobjekts, zB. model[1].
returns Der Name des neuen kopierten Geometrieobjekts in der 3DView bei Erfolg, sonst "".

Freeze(shapeName,geometryName)
Einfrieren eines Geometrieobjekts zur kleinen Leistungsverbesserung. Dieses kann danach in keiner Weise modifiziert werden.
shapeName Der Name der 3DView Shape.
geometryName Der Name des einzufrierenden Geometrieobjekts, zB. model[1].
returns Nichts (Fehlermeldung bei Mißerfolg)

GetCameraDirection(shapeName)
Ermittelt die Blickrichtung der Kamera (Richtungsvektor) als Array der Komponenten "1=xDir;2=yDir;3=zDir;".
xDir*xDir + yDir*yDir + zDir*zDir = 1 (Einheitsvektor)

shapeName Der Name der 3DView Shape.
returns Ein 3-elementiger Array mit dem Richtungsvektor der Kamerasicht (Standard: "1=0;2=0;3=-1;").

GetCameraPosition(shapeName)
Ermittelt die Kameraposition als Array der Koordinaten "1=xPos;2=yPos;3=zPos;".
shapeName Der Name der 3DView Shape.
returns Ein 3-elementiger Array mit den Positionskoordinaten der Kamera (Standard: "1=0;2=0;3=10;").
example 'Radius zum Ursprung (0,0,0)
P = LD3DView.GetCameraPosition(view)
r = Math.SquareRoot(P[1]*P[1] + P[2]*P[2] + P[3]*P[3])

'Abstand 2er Punkte (Vektorlänge)
a = Math.SquareRoot(dx*dx + dy*dy + dz*dz)

'Koord. von P2 ab pos,r,dir (Vektorverschiebung)
x2 = Pos[1] + r * Dir[1]
y2 = Pos[2] + r * Dir[2]
z2 = Pos[3] + r * Dir[3]


GetCameraUpDirection(shapeName)
Ermittelt den Aufwärts-Richtungsvektor in der Szenenprojektion als Array der Komponenten "1=xUp;2=yUp;3=zUp;".
xUp*xUp + yUp*yUp + zUp*zUp = 1 (Einheitsvektor)

shapeName Der Name der 3DView Shape.
returns Ein 3-elementiger Array mit dem Aufwärts Richtungsvektor der 3DView (Standard: "1=0;2=1;3=0;").

GetPosition(shapeName,geometryName)
Ermittelt die transformierte (aktuelle) Zentrumsposition für ein bestehendes Geometrieobjekt (s. BoundingBox).
shapeName Der Name der 3DView Shape.
geometryName Der Name des Geometrieobjekts.
returns Ein 3-elementiger Array (ab 1) der transformierten Position bei Erfolg, sonst "FAILED":

centX = pos[1]
centY = pos[2]
centZ = pos[3]


HitTest(shapeName,x,y)
Ermittelt ein Auftreffen auf ein Geometrieobjekt in der 3DView. s. LD3DView.AddView(w,h, "").
Ein negativer Wert für eine Koordinate bezieht sich auf die Mitte der 3DView (Kameraansicht).

shapeName Der Name der 3DView Shape.
x Die x-Koordinate im GraphicsWindow (innerhalb der 3DView).
y Die y-Koordinate im GraphicsWindow (innerhalb der 3DView).
returns Ein 2-elementiger Array mit dem Name des Zielobjekts und seiner Entfernung (zB. "1=Geometry#;2=dist;") oder "" für keinen Treffer.

LastRotationCompleted
Ermittelt den Name des Geometrieobjekts welches zuletzt eine animierte Volldrehung beendete.

LastTranslationCompleted
Ermittelt den Name des Geometrieobjekts welches zuletzt eine animierte Vollbewegung beendete.

LoadModel(shapeName,fileName)
Lädt ein geometrisches Modell von einer Datei und fügt dieses an (0,0,0) in der 3DView hinzu (Intern: Geometry#+1).
Unterstützte Formate: 3ds, lwo, obj, (obj.gz ->)objz, off, stl. Position und Dimension entsprechend vorgegebener Geometrieeigenschaften.

shapeName Der Name der 3DView Shape.
fileName Der volle Pfad der zu ladenden Modelldatei.
Oft sind auch (gleichnamige) Bilddateien usw. im selben Ordner erforderlich.

returns Ein Array mit den Namen der hinzugefügten Geometrieobjekte bzw. Teilobjekte.
example http://archive3d.net

ModifyObject(shapeName,geometryName,action)
Durchführen einer Aktion an einem Geometrie- oder Lichtobjekt.
shapeName Der Name der 3DView Shape.
geometryName Der Name des Geometrie- oder Lichtobjekts, zB. model[1].
action Die durchzuführende Aktion:
"H" Verbergen
"S" Anzeigen
"X" Entfernen


MoveCamera(shapeName,yaw,pitch,roll,move)
Ändert die Blickrichtung und Position der Kamera relativ zur aktuellen Ausrichtung/Position.
Winkelangaben im Bereich [0,-/+180] oder [0,-/+360], zB. 10|-350 bzw. -10|350.

shapeName Der Name der 3DView Shape.
yaw Die Links/Rechts ↔ Schwenkung [Grad] ab aktueller Ausrichtung (Gierung, Standard: 0).
+ Kamera rechts, Szene links
- Kamera links, Szene rechts

pitch Die Rauf/Runter ↕ Neigung [Grad] ab aktueller Ausrichtung (Standard: 0).
+ Kamera rauf, Szene runter
- Kamera runter, Szene rauf

roll Die Verdrehung in Blickrichtung [Grad] ab aktueller Ausrichtung (Standard: 0).
+ Kamera/Szene im/gegen Uhrzeigersinn
- Kamera/Szene gegen/im Uhrzeigersinn

move Die Vor-/Rückwärts Bewegung [Pxl] in Kamerakoordinaten (entlang Blickrichtung) ab aktueller Position.
+ Kamera vorwärts
- Kamera rückwärts


QueuedRotationCompleted
Ermittelt die Anzahl der aktuell abgeschlossenen animierten Volldrehungen.

QueuedTranslationCompleted
Ermittelt die Anzahl der aktuell abgeschlossenen animierten Vollbewegungen.

ResetCamera(shapeName,xPos,yPos,zPos,xDir,yDir,zDir,xUp,yUp,zUp)
Setzt die Position und Blickrichtung der Kamera, sowie (optional) die Aufwärtsrichtung der Ansicht.
Standard: Position in (0,0,10), zentrierte Ansicht entlang -z Achse abwärts, +y oben und +x rechts.
Mindestens ein Dir Vektor muß <>0 sein, alle anderen Pos/Dir Werte können dann "" sein.

shapeName Der Name der 3DView Shape.
xPos Die x-Position der Kamera (Standard: 0).
yPos Die y-Position der Kamera (Standard: 0).
zPos Die z-Position der Kamera (Standard: 10).
xDir Der x-Richtungsvektor [-1,1] der Kamerasicht (-/+ Links/Rechts, Standard: 0).
yDir Der y-Richtungsvektor [-1,1] der Kamerasicht (-/+ Runter/Rauf, Standard: 0).
zDir Der z-Richtungsvektor [-1,1] der Kamerasicht (-/+ Rein/Raus, Standard: -1).
xUp Optionaler x-Richtungsvektor [-1,1], definiert Aufwärts-Richtung der Szenenprojektion (Standard: 0).
yUp Optionaler y-Richtungsvektor [-1,1], definiert Aufwärts-Richtung der Szenenprojektion (Standard: 1).
zUp Optionaler z-Richtungsvektor [-1,1], definiert Aufwärts-Richtung der Szenenprojektion (Standard: 0).
example 'Standard
LD3DView.ResetCamera(view, 0,0,10, 0,0,-1, 0,1,0)
LD3DView.ResetCamera(view, "","",10, "","",-1, "",1,"")


ResetMateral(shapeName,geometryName,colour,materialType)
(Er)Setzt das Material/Farbe für ein bestehendes Geometrieobjekt.
shapeName Der Name der 3DView Shape.
geometryName Der Name des Geometrieobjekts.
colour Die neue Farbe oder ein Gradientpinsel (Brush) für das Objekt.
materialType Der neue Materialtyp:
"E" Emissiv, konstante Helligkeit
"D" Diffus, beeinflusst durch Licht
"S" Spiegelnd, zusätzliche Glanzpunkte


ReverseNormals(shapeName,geometryName)
Umkehren der Auswärtsnormalen für ein Geometrieobjekt.
Macht zB. die Innenoberfläche einer Sphäre anstatt der Außenoberfläche sichtbar (SkyDome).

shapeName Der Name der 3DView Shape.
geometryName Der Name des Geometrieobjekts dessen Auswärtsnormale umgekehrt werden.

RotateGeometry(shapeName,geometryName,x,y,z,angle)
Rotiert ein Geometrieobjekt um dessen Zentrum (erste Rotation, relativ ab Originalposition).
shapeName Der Name der 3DView Shape.
geometryName Der Name des Geometrieobjekts, zB. model[1].
x Der x-Richtungsvektor [-1,1] der Drehachse.
y Der y-Richtungsvektor [-1,1] der Drehachse.
z Der z-Richtungsvektor [-1,1] der Drehachse.
angle Der Drehwinkel vom Grundzustand [Grad] ab Originalposition.
Blick entlang +/- Drehachse -> im/gegen Uhrzeigersinn


RotateGeometry2(shapeName,geometryName,x,y,z,angle)
Rotiert ein Geometrieobjekt um dessen Zentrum (zweite Rotation, relativ ab aktueller Position).
shapeName Der Name der 3DView Shape.
geometryName Der Name des Geometrieobjekts, zB. model[1].
x Der x-Richtungsvektor [-1,1] der Drehachse.
y Der y-Richtungsvektor [-1,1] der Drehachse.
z Der z-Richtungsvektor [-1,1] der Drehachse.
angle Der Drehwinkel [Grad] ab aktueller Position.
Blick entlang +/- Drehachse -> im/gegen Uhrzeigersinn


RotateGeometry3(shapeName,geometryName,x,y,z,angle)
Rotiert ein Geometrieobjekt um dessen Zentrum (dritte Rotation, relativ ab aktueller Position).
shapeName Der Name der 3DView Shape.
geometryName Der Name des Geometrieobjekts, zB. model[1].
x Der x-Richtungsvektor [-1,1] der Drehachse.
y Der y-Richtungsvektor [-1,1] der Drehachse.
z Der y-Richtungsvektor [-1,1] der Drehachse.
angle Der Drehwinkel [Grad] ab aktueller Position.
Blick entlang +/- Drehachse -> im/gegen Uhrzeigersinn


RotationCompleted
Ereignisaufruf bei Beendigung einer Drehanimation (AnimateRotation(2)).

ScaleGeometry(shapeName,geometryName,scaleX,scaleY,scaleZ)
Skaliert (zoomt) ein Geometrieobjekt an dessen Zentrum.
shapeName Der Name der 3DView Shape.
geometryName Der Name des Geometrieobjekts, zB. model[1].
scaleX Der x-Skalierungsfaktor (Standard: 1).
scaleY Der y-Skalierungsfaktor (Standard: 1).
scaleZ Der z-Skalierungsfaktor (Standard: 1).

SetBillBoard(shapeName,geometryName)
Setzt ein Geometrieobjekt auf kontinuierliche Rotation zur Kameraverfolgung.
Verwendet die zweite und dritte Rotation.

shapeName Der Name der 3DView Shape.
geometryName Der Name des Geometrieobjekts in der 3DView.

SetCentre(shapeName,geometryName,x,y,z,options)
Setzt das Zentrum von Rotate- und ScaleGeometry Transformationen für ein Geometrieobjekt.
Standardmäßig ist dies das Zentrum des Hüllkörpers für das Geometrieobjekt (meist 0,0,0).
Das Zentrum wird mittels der Koordinaten bei Erstellung des Geometrieobjekts definiert und kann auch außerhalb des Geometrieobjekts liegen.
Ist ein Koordinatenwert auf "" gesetzt, wird dafür der Standardwert für das Zentrum verwendet.

shapeName Der Name der 3DView Shape.
geometryName Der Name des zu transformierenden Geometrieobjekts.
x Die x-Koordinate des Zentrums.
y Die y-Koordinate des Zentrums.
z Die z-Koordinate des Zentrums.
options Optionen zur Steuerung der Zentrierung (auch Mehrfachwerte, zB. "R1R2R3" zum Setzen für alle drei Rotationen):
"R1" RotateGeometry
"R2" RotateGeometry2
"R3" RotateGeometry3
"S" ScaleGeometry


SpecularExponent
Ermittelt oder setzt den Spiegelungsexponent bei Verwendung von spiegelndem Material "S" für Geometrieobjekte (Standard: 5).
Dieser Exponent definiert den relativen Anteil der Glanzkomponente des Beleuchtungsmodells für ein Material.
Ist zu setzen bevor ein neues Geometrieobjekt mit dieser Eigenschaft erstellt wird, danach unveränderbar.


TranslateGeometry(shapeName,geometryName,dX,dY,dZ)
Verschiebt ein Geometrieobjekt geradlinig an dessen Zentrum, relativ ab Originalposition.
shapeName Der Name der 3DView Shape.
geometryName Der Name des Geometrieobjekts, zB. model[1].
dX Der Versatz in x-Richtung ab Originalposition.
dY Der Versatz in y-Richtung ab Originalposition.
dZ Der Versatz in z-Richtung ab Originalposition.

TranslationCompleted
Ereignisaufruf bei Beendigung einer geradlinigen Bewegungsanimation (AnimateTranslation).