Einleitung

Der O2C-Player für Programmierer
Eigenschaften Funktionen Ereignisse Symbolische Werte Anhang
Einleitung

Diese Referenz beschreibt die Möglichkeiten, den O2C-Player als ActiveX-Control in eigenen Programmen zu verwenden. Dazu gehören auch Java-Applets in Internetseiten, so daß die Grenze zwischen der Anwendung des O2C-Players in HTML-Seiten (die in der Anleitung Der O2C-Player für HTML-Autoren gesondert dokumentiert ist) und der in dieser Hilfedatei beschriebenen programmatischen Verwendung fließend ist.

Alle Eigenschaften, die Sie für die Verwendung des O2C-Players in statischen HTML-Seiten (also Internetseiten ohne Verwendung von JavaScript, VB-Script oder Java Applets) benötigen, sind aus Sicht eines HTML-Autors in der o.g. Dokumentation beschrieben. Für diesen Anwendungsfall genügt also die Teilmenge der Beschreibung in der HTML-Dokumentation. In dieser Hilfedatei hingegen finden Sie die vollständige Dokumentation aller Eigenschaften, Funktionen, Ereignisse und Datentypen des O2C-Players.

Wie Sie den O2C-Player in Ihre Programmierumgebung integrieren, wird hier nicht ausführlicher beschrieben. Es handelt sich um ein ActiveX-Control, und als solches ist die Einbettung in Ihre Umgebung standardisiert und in der Regel sehr einfach. Durch die Unterschiedliche Einbindungstechnik des O2C-Players in Navigator und Internet Explorer nehmen JavaScript und Java Programmierer eine Sonderstellung ein. Bitte beachten Sie daher die Hinweise für JavaScript Programmierer sowie die Hinweise für Java-Programmierer.

Die Benutzeroberfläche des O2C-Players ist weitgehend konfigurierbar. Alle Aktionen und Eigenschaften, die interaktiv geändert werden können, sind auch programmatisch änderbar. Eine Zuordnung der Oberflächenelemente zu Konfiguration und Programmierschnittstelle finden Sie im Anhang.


Hinweise für JavaScript Programmierer

Hinweise für JavaScript Programmierer

Die Einbindung des O2C-Players in HTML-Seiten ist bereits in der Dokumentation für HTML-Autoren ausführlich erläutert. Möchten Sie den Player aber darüber hinaus auf einer Webseite aktiv steuern, müssen Sie zusätzlichen HTML Code schreiben, damit Ihre JavaScript-Funktionen von Ereignissen des Players angesprochen werden.

Auch hier gibt es (wie schon bei der HTML-Einbindung) große Unterschiede zwischen Netscape Navigator und Microsoft Internet Explorer. Dies betrifft insbesondere die Verbindung von JavaScript-Funktionen mit Ereignissen des O2C-Players. Es ist aber möglich, eine HTML Seite so zu schreiben, das die gleichen JavaScript Funktionen in beiden Browsern aufgerufen werden (mit vereinzelten Ausnahmen).

Neben der Einbindung ist allerdings auch der JavaScript-Code selbst unterschiedlich. Netscape verwendet eine reine Java Syntax, das Plugin liefert eine Java-Klasse, die von einer allgemeinen Plugin Oberklasse abgeleitet wurde. Es gibt keinen Unterschied zwischen Attributen und Funktionen, alle Zugriffe erfolgen über Funktionsaufrufe (z.B. setAnimPlaying(true)).

Microsoft hingegen verwendet eine JavaScript-basierte (generische) Einbindung für ActiveX Controls, die Stark an Visual Basic orientiert ist (und darüber hinaus stilistisch in das JavaScript Objektmodell paßt). Funktionen und Eigenschaften werden unterschieden, an Eigenschaften sind Zuweisungen möglich (z.B. AnimPlaying = true).

Sie können diese Unterschiede vor großen Teilen Ihrer Scripte verbergen, in dem Sie alle Zugriffe auf Eigenschaften durch eine Setze/Lese-Funktion vornehmen, die als Parameter den Player, den Namen der Eigenschaft und (beim Setzen) den neuen Wert übergeben bekommt. Diese Funktion erstellt daraus einen String mit der richtigen Anweisung (abhängig vom verwendeten Browser) und führt diesen mit Hilfe der JavaScript-Funktion eval aus.

Grundlegendes Hilfsmittel für alle folgenden Schritte ist eine Möglichkeit, den Browser des Betrachters zu untersuchen und abhängig vom Ergebnis verschiedenen JavaScript-Code auszuführen. Je nach Komplexität des Script-Codes und der benötigten Kompatibilität für alte Browser-Version kann diese Untersuchung aufwändig sein und als Ergebnis zum Beispiel eine Reihe von globalen Variablen setzen (isIE, isIE4plus, ...). Ein Beispiel für eine solche Untersuchung finden Sie in "The Ultimate JavaScript Client Sniffer" (siehe auch hier). In den folgenden Beispielen verwenden wir eine sehr einfache Version dieser Untersuchung, die lediglich zwischen Navigator und Internet Explorer unterscheidet. Der Internetexplorer liefert als navigator.userAgent Texte wie

Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)

während der Navigator Texte wie diesen liefert:

Mozilla/4.7 [de] (WinNT; U)

Eine Funktion, die diesen Text untersucht und true liefert, wenn sie von einem Navigator ausgeführt wird, ist die folgende:

function IsNetscape() {
  var agt = navigator.userAgent.toLowerCase();
  return (agt.indexOf("msie") == -1);
}

Der Unterschied zwischen den beiden Browsern ist wichtig bei Zugriffen auf Attribute (siehe oben) und bei Script-Fragmenten für ActiveX-Control Events: der Navigator erkennt die besondere Syntax zur Event-Zuordnung nicht und führt diese Scripte (einmalig beim Laden der Seite) sofort aus.

Bevor wir die Details einzeln erläutern, hier zunächst der gesamte Code eines Beispiels zur Einbindung des ActiveX-Controls/Plugins mit Events für beide Browser-Typen:

<!-- Beginn des eingebetteten Objektes. Zunächst die Daten für den
     Internet Explorer: //-->
<object classid="CLSID:BF3CD111-6278-11D2-9EA3-00A0C9251384"
        codebase="http://www.o2c.de/download/o2cplayer.cab#version=1,9,9,135"
        width="400"
        height="300"
        name="derStuhl">
        <param name="ObjectURL" value="stuhl.o2c">
        <param name="BorderStyle" value=1>
        <param name="Appearance" value=1>
        <param name="AnimPlaying" value=true>
        <param name="BackColor" value=16777215>
        <!-- Innerhalb des zwischen <object> und </object>
             geklammerten Bereiches nun die Daten für den
             Navigator //-->
        <embed codebase="http://www.o2c.de/dl_plugin.htm"
               type="application/x-o2c-object"
               width="400"
               height="300"
               name="derStuhl"
               src="stuhl.o2c"
               PARAM_BorderStyle=1
               PARAM_Appearance=1
               PARAM_AnimPlaying=true
               PARAM_BackColor=#ffffff>
        <!-- Jetzt noch ein kleines Java-Applet, das die Ereignisse
             des O2C-Players an unsere Java-Script Funktionen
             weitergibt. //-->
        <applet code="o2cProxyApplet.class"
                name=ProxyAp
                mayscript
                width=1
                height=1>
                <param name="Player" value="derStuhl">
                <param name="Click" value="onClick">
        </applet>
</object>
<!-- Ende des Objektes //-->

Gegenüber der Standard-Einbindung, wie sie zum Beispiel vom O2C-Player beim Aufruf des Menüpunktes "HTML Quelltext kopieren..." erstellt wird, ist hier zusätzlich ein Java-Applet integriert; allerdings nur in den Zweig des <object> Elementes, der nicht ausgewertet wird, wenn das ActiveX-Control benutzt wird (also nur für Netscape Navigator). Das hier verwendete Applet wird vom O2C-Player Installationsprogramm (sowohl den manuellen Installationsprogrammen als auch der automatischen Installation aus dem Internet) zusammen mit dem O2C-Plugin und den Java-Class-Dateien der Plugin-Schnittstelle installiert, es ist also immer verfügbar, wenn ein O2C-Player Plugin verfügbar ist.

Das Applet selbst ist nicht sichtbar und bekommt daher nur eine Größe von 1x1 Pixel. Es muß in der Lage sein, JavaScript Funktionen aufzurufen, daher wird der Tag mayscript benötigt.

Dieses Applet erhält als Parameter Player (<param name="Player" value="derStuhl">) den Namen des von ihm kontrollierten O2C-Players übergeben. Wenn Sie mehrere Player einbinden, von denen Sie Ereignisse auswerten möchten, brauchen Sie eine Instanz des Applets pro Player.

Im Beispiel wurde ein einziger Event verbunden (<param name="Click" value="onClick">): Click, der an die JavaScript Funktion onClick weitergeleitet wird. Für weitere Events müssen Sie zusätzliche Funktionsnamen für andere Ereignisse übergeben, eine Liste finden Sie weiter unten.

Um die Event-Verbindung auch für den Internet-Explorer (der die im Applet-Element enthaltenen Parameter nicht beachtet, da dort auch das Applet nicht geladen wird) herzustellen, folgt ein <script> Element mit for="" und event="" Tag. Dieser wiederum wird von Navigator nicht (beziehungsweise nicht richtig) interpretiert, daher muß der Inhalt dieses Script-Elementes mit if (!IsNetscape()) vor der (einmaligen) Ausführung durch den Navigator beim Laden der Seite geschützt werden.

<!-- Internet-Explorer Event-Handler (Inhalt muß vor Netscape
     geschützt werden, da dort diese Scripte einmal beim Lesen
     der Seite ausgeführt werden; Netscape ignoriert den
     "event=" Paramter //-->
<script for="derStuhl"
        event="Click(autoAnimIndex)"
        Language="JavaScript">
  if (!IsNetscape())
    onClick(autoAnimIndex);
</script>

Da das Java Applet nicht wissen kann, wann das O2C-Player Plugin geladen ist, führt es in seiner Initialisierung keinerlei Zugriffe auf den Player aus; dies würde zu Fehlermeldungen führen. Zu einem geeigneten späteren Zeitpunkt, z.B. in der HTML Seite nach Abschluß des kompletten <object> Elementes, muß durch Aufruf der Funktion Activate() die Verbindung der Events aktiviert werden:

<!-- So, alles bereit: Weiterleitung der Events durch das Applet
     für Netscape aktivieren //-->
<script Language="JavaScript">
  if (IsNetscape()) {
    document.ProxyAp.Activate();
}
</script>

Das Java-Applett o2cProxyApplet stellt folgende Ereignisse zur Verfügung:

Name für das <param> Tag bzw. Ereignis | Parameter der aufgerufenen JavaScript Funktion
AnimationDone | -
AnimationStarted | AnimationNo, Name, autoRepeat
ChunkDataAvailable | objID, chunkID, chunkData, Length
Click | autoAnimIndex
ClickWithKeys | flags, SubAnimIndex
MaterialChanged | SubObjectIndex, MaterialIndex, loadingFilename
MouseDown | objID, whichMouseButton, flags
MouseReleased | event
ObjectLoaded | -
ObjectMove | objOrGrpID, startsMoving, x, y, z
ObjectMoving | objOrGrpID, mouseX, mouseY, mouseZ, centerX, centerY, centerZ
SubObjectPicked | Index, LocalName, DatabaseName, DisplayName
TextureChanged | SubObjectIndex, TextureIndex, TextureName
ThumbnailDone | -

Die im obigen Beispiel benutzte JavaScript Funktion onClick könnte also folgendermaßen deklariert sein:

<script Language="JavaScript">
function onClick(AutoAnimIndex)
{
  if (AutoAnimIndex == 5)
    document.derStuhl.StartSubAnimation(2, true);
}
</script>

Hierdurch würde beim Anklicken des Subobjektes mit der zugeordneten Autoanimation 5 statt dieser die Animation 2 (mit Endloswiederholung) gestartet.


Hinweise für Java Programmierer

Hinweise für Java Programmierer

Während ActiveX Controls im Internet Explorer genau wie in allen anderen Programmiersprachen (ähnliche wie in Visual Basic) generisch eingebunden sind (Quasi mit der Fähigkeit, die Sprache zu erweitern), können Plugins im Navigator eine spezielle Schnittstelle zum jeweiligen Plugin zur Verfügung stellen, die allerdings streng an die Java-Sprachdefinition gebunden ist. Der Quelltext für dieses Schnittstelle des O2C-Players liegt dieser Hilfedatei bei ("o2cPlayer.java"). Für die Behandlung von Events ist (Java-typisch) die Implementierung eines Observer-Interface nötig, dessen Definition Sie in der beiliegenden Datei "o2cObserver.java" finden. Ein Beispiel für die Implementierung eines Applets, das dieses Interface nutzt, ist das generische JavaScript-Proxy Applet, das zusammen mit dem O2C-Plugin installiert wird. Den Quelltext dieses Applets ("o2cProxyApplet.java") finden Sie ebenfalls beiliegend.

Leider bedeutet dies: Sie können kein Applet schreiben, das sowohl im Internet Explorer als auch im Navigator läuft und den O2C-Player verwendet.

Wenn Sie das Plugin oder das ActiveX Control in Ihr Java Programm eingebunden haben, werden Sie die Programmierschnittstelle weitgehend analog zu den in dieser Dokumentation aufgeführten VisualBasic oder C/C++ Deklarationen nutzen können wobei natürlich die Datentypen entsprechend ersetzt werden müssen (Hinweis: Referenz-Parameter werden als einelementiges Array übergeben).

Falls Sie das Plugin verwenden, gelten die unter Hinweise für JavaScript Programmierer aufgeführten Regeln für Zugriffe auf Attribute (also setAnimPlaying(true) statt AnimPlaying = true)


Eigenschaften

Eigenschaften

Eigenschaften sind einfache (skalare) Werte, die mit einem Schreibzugriff geändert und mit einem Lesezugriff abgefragt werden können. Einige wenige Eigenschaften unterstützen keinen Schreibzugriff, z.B. die Eigenschaft ObjectHasAnimation, die angibt, ob das derzeit geladene Objekt über Animationen verfügt. Eine Zuweisung an diese Eigenschaft könnte das Objekt auch nicht mit Animationsdaten versehen, daher ist diese Eigenschaft nur lesbar.

Ob eine Eigenschaft sich von einer (gleichnamigen) Funktion unterscheidet, hängt von der Entwicklungsumgebung ab. In Visual Basic z.B. ist es am Programmcode nicht zu unterscheiden, ob eine Funktion aufgerufen wird, die einen Wert zurückliefert, oder ob ein Lesezugriff auf eine Eigenschaft durchgeführt wurde. In C++ hingegen wird beim Lesezugriff tatsächlich eine Funktion aufgerufen, im obigen Beispiel etwa die Funktion get_ObjectHasAnimation (bzw. auch GetObjectHasAnimation, wenn die MFC-Wrapper-Klassen verwendet werden). Insofern ist es für einige Programmierer wichtig zu wissen, ob es sich um eine Funktion oder eine Eigenschaft handelt.

Für alle Eigenschaften wird in der Beschreibung ein Standardwert angegeben. Diesen Wert nimmt die Eigenschaft an, wenn eine Instanz des O2C-Players neu erzeugt wird. In vielen Entwicklungsumgebungen (z.B. in Visual Basic) können Sie bereits im Entwurfsmodus die Eigenschaften der verwendeten Steuerelemente ändern. Wenn Ihr Programm gestartet wird, werden die Eigenschaften dann auf den von Ihnen eingestellten Wert gesetzt der eventuell vom Standardwert abweicht. In solchen Umgebungen ist der Standardwert also nur der ursprünglich gesetzte Wert, wenn Sie das Steuerelement erstmalig in Ihre Umgebung einfügen.

Einige Eigenschaften sind nur in der erweiterten Version des O2C-Players verfügbar bzw. werden in der Internet-Version ignoriert. Die erweiterte Version des O2C-Players wird innerhalb von ArCon-Produkten eingesetzt. Sie verwendet zusätzliche DLLs, die in der Internetversion nicht zur Verfügung stehen.

Alphabetische Liste der Eigenschaften
Name der Eigenschaft | Beschreibung
AnimateOnClick | Steuert die automatische Animation beim Anklicken eines Teilobjektes
AnimPlaying | Setzen Sie diese Eigenschaft auf True, um nach dem Laden des Objektes sofort die Gesamtanimation zu starten
AnimSpeed | Beeinflußt die Abspielgeschwindigkeit von Animationen
Appearance | Nur wirksam, wenn das Objekt mit Rahmen angezeigt wird (siehe BorderStyle). 0 = flach, 1 = 3D
BackColor | Die Hintergrundfarbe (als RGB-Wert)
BackPicMode | Art der Hintergrunddarstellung: konstante Farbe, Bild, gekacheltes Bild...
BackPicOffsetX | Versatz des gekachelten Hintergrundbildes in X-Richtung
BackPicOffsetY | Versatz des gekachelten Hintergrundbildes in Y-Richtung
BackPictureURL | URL zum Download eines Hintergrundbildes
BackStyle | Art der Hintergrunddarstellung: 0 = transparent, 1 = verdeckend (z.Zt. wird dieser Parameter nicht ausgewertet)
BorderStyle | Art des Rahmens: 0 = keiner, 1 = einfacher Rahmen (evtl. 3D, siehe Appearance)
ButtonRayTraceEnabled | Steuert die Verfügbarkeit des "R"-Buttons zum Raytracen
ButtonVREnabled | Steuert die Anzeige der V-Schaltfläche in der erweiterten Version
CurrentObject | Falls mehrere Objekte angezeigt werden: das aktuell (vom Programm) bearbeitete Objekt
CurrentTime | Die aktuelle Animationszeit
DelayAfterPreview | Wartet nach der Anzeige der Vorschaugrafik
DelayBeforeLoad | Wartet nach der erstmaligen Anzeige vor dem Start des Internet-Downloads
DisplayMode | Darstellungsqualität
DragDropEnabled | Bitmaske zur Steuerung der Drag & Drop Funktionen
Enabled | Steuert die Aktivierbarkeit des Controls
EnabledMenus | Bitmaske der zur Verfügung stehenden Menüeinträge
EventObject | Falls mehrere Objekte angezeigt werden: das Objekt, welches den aktuellen Event auslöst
EyeX | X-Koordinate des Betrachterstandpunktes
EyeY | Y-Koordinate des Betrachterstandpunktes
EyeZ | Z-Koordinate des Betrachterstandpunktes
Filter | Antialiasing (Kantenfilter) an- oder ausschalten
FlatTexturePath | Schaltet die Verwendung von Unterverzeichnissen bei der Suche nach Texturen aus dem Web ab
HasThumbnail | Wird gerade ein Vorschau-Bild angezeigt?
HideControls | Schaltet die Anzeige von Steuerelementen (Rollbalken, Schaltflächen) ab
HideScrollBars | Schaltet die Anzeige von Rollbalken ab
IncrementalDisplay | Aktiviert die inkrementelle Anzeige von Objekten bereits während des Downloads
InhibitLocalTextures | Verbietet die Benutzung von externen Texturen
KeepSpinning | Schaltet die automatische Rotation ein (das Objekt behält eine Drehbewegung bei, wenn der Benutzer es "anschubst").
Language | Steuert die Sprache der Anzeige (z.B. von Tooltips)
LastPickedMaterial | Index (Null-basiert) des Materials, auf das die Maus gerade zeigt (nicht immer gültig!).
LastPickedTexture | Index (Null-basiert) der Textur, auf die die Maus gerade zeigt (nicht immer gültig!).
Lights | Bitmaske zum Ein- bzw. Ausschalten der Lichter einer Szene
LoadObjectMenuEnabled | Erlaubt oder verbietet das Laden anderer (lokaler) Objekte per Kontextmenü
LocalSaveAllowed | Erlaubt das lokale Speichern des heruntergeladenen Objektes und seiner Texturen
MenuNameFor3D | Name des Menüpunktes zum Umschalten in die 3D-Ansicht
MenuNameForPreview | Name des Menüpunktes zum Umschalten auf die Vorschau-Ansicht (2D-Skizze)
ObjectHasAnimation | Gibt an, ob das Objekt animiert ist
ObjectUID | Eindeutige Kennung des Objektes
ObjectURL | URL des herunterzuladenden Objektes
PanX | Verschiebung des Objektes nach links (negativ) oder rechts (positiv)
PanY | Verschiebung des Objektes nach oben (positiv) oder unten (negativ)
Phi | Drehung des Objektes um die Z-Achse
PopupMenuEnabled | Erlaubt bzw. verbietet das Anzeigen des Kontextmenüs
PreviewMode | Bestimmt, wann (und ob) ein Vorschaubild in einem O2C-Objekt ausgeblendet werden soll
Psi | Drehung des Objektes um die X-Achse
SaveFilesWithDocument | Objekt und Texturen in OLE-Dokumenten speichern oder nur Dateinamen speichern
SpinPhi | Auto-Rotationsgeschwindigkeit in Phi-Richtung
SpinPsi | Auto-Rotationsgeschwindigkeit in Psi-Richtung
TextureBaseURL | Basispfad zum Abrufen der benötigten Texturen aus dem Web
TexturePath | Suchpfad für lokale Texturen
TooltipTimeout | Verzögerung (in Millisekunden) bevor ein Tooltip mit Subobjekt-Namen angezeigt wird. Mit -1 schalten Sie Tooltips aus.
VisuDLL | In der erweiterten Version der Pfad zur Visualisierungs-DLL
VRDeviceAvailable | Gibt in der erweiterten Version an, ob VR-Hardware installiert ist
VRPx | X-Koordinate des Blickpunktes
VRPy | Y-Koordinate des Blickpunktes
VRPz | Z-Koordinate des Blickpunktes
Walkthrough | Das Objekt wird durchwandert
Zoom | Vergrößerung der Darstellung (z.B. 1.0 = Originalgröße, 2.0 = doppelte Größe)


AnimateOnClick

Eigenschaften

AnimateOnClick

Wenn Sie diesen Parameter auf False setzen, werden beim Anklicken eines Teilobjektes die damit verknüpften Animationen nicht mehr ausgeführt.

Für nicht animierte Objekte und Objekte ohne Verknüpfung zwischen Animation und Teilobjekt hat dieser Parameter keine Bedeutung.

Typ:
Basic | Boolean
C/C++ | VARIANT_BOOL

Standardwert: True


AnimPlaying

Eigenschaften

AnimPlaying

Diese Eigenschaft bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Wenn Sie diesen Parameter auf True setzen, und das geladene Objekt Animationsdaten enthält, wird der O2C-Player direkt nach dem Laden der Geometrieinformation die Gesamtanimation des Objektes starten. Diese Animation wiederholt sich automatisch.

Sie können diesen Wert jederzeit abfragen, um festzustellen, ob derzeit eine Animation läuft. Wenn der Wert sich ändert, teilt der O2C-Player Ihnen dies durch die Ereignisse AnimationStarted und AnimationDone mit.

Für nicht animierte Objekte hat dieser Parameter keine Bedeutung.

Typ:
Basic | Boolean
C/C++ | VARIANT_BOOL

Standardwert: False


AnimSpeed

Eigenschaften

AnimSpeed

Diese Eigenschaft bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Gibt einen Faktor an, um den Animationen beschleunigt (AnimSpeed > 1.0) oder verlangsamt (AnimSpeed < 1.0) werden.

Erlaubt sind nur Werte > 0.

Für nicht animierte Objekte hat dieser Parameter keine Bedeutung.

Typ:
Basic | Single
C/C++ | float

Standardwert: 1.0


Appearance

Eigenschaften

Appearance

Gibt an, ob die Darstellungsweise flach (Wert = 0) oder dreidimensional (Wert = 1) ist. Dies bezieht sich nicht auf die dargestellten Objekte, sondern nur auf die Integration des O2C-Players in ihr Programm oder HTML-Seite. Wenn Sie die Eigenschaft BorderStyle auf 0 (keine Umrandung) gesetzt haben, hat eine Änderung dieser Eigenschaft keine Auswirkungen.

Typ:
Basic | o2cAppearance
C/C++ | enum o2cAppearance

Standardwert: o2cAppearanceFlat (0)


BackColor

Eigenschaften

BackColor

Die Hintergrundfarbe als RGB-Wert. Falls Sie keine BackPictureURL angegeben haben, wird der O2C-Player den Hintergrund hinter dem geladenen Objekt als einheitlich gefärbte Fläche in der hier angegebenen Farbe darstellen.

Sie können den Wert dieser Eigenschaft lesen, um die vom Benutzer eingestellte Hintergrundfarbe zu ermitteln.

Typ:
Basic | StdColor
C/C++ | COLORREF

Standardwert: Hintergrundfarbe ihres Programms


BackPicMode

Eigenschaften

BackPicMode

Die Art der Aufbereitung des Hintergrundes. Mit dieser Eigenschaft können Sie zwischen konstantem Hintergrund und verschiedenen Arten der Darstellung eines Hintergrundbildes wählen.

Typ:
Basic | o2cBackPicModes
C/C++ | enum o2cBackPicModes

Standardwert: o2cBackPicModeConstant (0)


BackPicOffsetX

Eigenschaften

BackPicOffsetX

Der Versatz des Hintergrundbildes in X-Richtung. Bei wiederholter Darstellung eines Hintergrundbildes (gekachelt) bestimmt diese Eigenschaft den Versatz der ersten Kachel zum linken Rand.

Typ:
Basic | Long
C/C++ | long

Standardwert: 0


BackPicOffsetY

Eigenschaften

BackPicOffsetY

Der Versatz des Hintergrundbildes in Y-Richtung. Bei wiederholter Darstellung eines Hintergrundbildes (gekachelt) bestimmt diese Eigenschaft den Versatz der ersten Kachel zum oberen Rand.

Typ:
Basic | Long
C/C++ | long

Standardwert: 0


BackPictureURL

Eigenschaften

BackPictureURL

Wenn Sie diese Eigenschaft setzen, wird von der angegebenen URL eine Bitmap-Datei (im JPG, BMP- oder BMS-Format) geladen und hinter Ihrem Objekt angezeigt. Diese Hintergrunddarstellung hat Vorrang vor der Angabe einer Hintergrundfarbe mittels BackColor. Um Hintergrundbilder aus einer Datei zu laden, benutzen Sie eine URL in der Form file:// gefolgt vom Dateinamen.

Falls das geladene O2C-Objekt ein Hintergrundbild enthält, wird diese Einstellung ignoriert.

Typ:
Basic | String
C/C++ | BSTR

Standardwert: Keiner


BackStyle

Eigenschaften

BackStyle

(Dieser Parameter wird derzeit ignoriert!)

Setzen Sie diesen Wert auf 0, um den O2C-Player durchsichtig zu machen hinter Ihrem 3D-Objekt erscheint der Hintergrund Ihres Programmes. Diese Einstellung hat negative Auswirkungen auf die Performance, daher sollten Sie in der Regel die Standardeinstellung (1 = verdeckt) beibehalten bzw. mit Hilfe eines Hintergrundbilds (siehe BackPictureURL) ähnliche Effekte erzielen.

Typ:
Basic | o2cBackStyle
C/C++ | enum o2cBackStyle

Standardwert: o2cBackStyleOpaque (1)


BorderStyle

Eigenschaften

BorderStyle

Dieser Parameter stellt die Umrandung des O2C-Players an bzw. aus. Setzen Sie ihn auf den Wert 0, wird kein Rahmen gezeichnet, beim Wert 1 wird ein Rand angezeigt. Die Art der Randdarstellung steuern Sie mit dem Parameter Appearance.

Typ:
Basic | o2cBorderStyle
C/C++ | enum o2cBorderStyle

Standardwert: o2cBorderStyleNone (0)


ButtonRayTraceEnabled

Eigenschaften

ButtonRayTraceEnabled

Wenn Sie dem Benutzer nicht die Möglichkeit geben wollen, ein fotorealistisches Standbild Ihres Objektes per Raytracing zu erzeugen, setzen Sie diesen Parameter auf False. Der O2C-Player entfernt daraufhin den "R"-Button in der Steuerleiste (falls diese angezeigt wird, siehe HideControls) und den zugehörigen Menüeintrag im Kontextmenü (das Sie mit PopupMenuEnabled ebenfalls vollständig unterdrücken können).

Typ:
Basic | Boolean
C/C++ | VARIANT_BOOL

Standardwert: True


ButtonVREnabled

Eigenschaften

ButtonVREnabled

Falls ein unterstütztes Gerät für die VR-Ausgabe vorhanden ist und es sich um die erweiterte Version des O2C-Players handelt, kann der Benutzer auf VR-Anzeige umschalten, wenn diese Eigenschaft True ist. Um dies explizit zu verbieten, setzen Sie diese Eigenschaft auf False.

Typ:
Basic | Boolean
C/C++ | VARIANT_BOOL

Standardwert: True


CurrentObject

Eigenschaften

CurrentObject

Diese Eigenschaft legt fest, welches Objekt Sie mit vielen Funktionen und Eigenschaften ansprechen, falls Sie mehrere Objekte mit AddObject geladen haben.

Um ein anderes Objekt zu manipulieren, setzen Sie diese Eigenschaft auf den neuen Objektindex.

Typ:
Basic | Long
C/C++ | long

Standardwert: 0 (oder, falls noch kein Objekt geladen wurde, -1)


CurrentTime

Eigenschaften

CurrentTime

Diese Eigenschaft bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Während eine Animation läuft, gibt dieser Wert die aktuelle Animationszeit in Sekunden an. Ihr Programm kann die Animation zurücksetzen oder Teile überspringen, indem dieser Eigenschaft ein neuer, gültiger Wert zugewiesen wird. Den möglichen Wertebereich für das aktuelle Objekt können Sie mit Hilfe der Funktion GetAnimationParameters ermitteln.

Sie können diesen Wert lesen, um den aktuellen Fortschritt der Animation zu ermitteln.

Alle Zeitangaben in Animationen erfolgen in virtuellen Einheiten (Frames). Wie diese Einheiten in Realzeit umgerechnet wird, hängt von den Animationsdaten ab, die eine Standardgeschwindigkeit der Animation (Frames pro Sekunde) vorschlagen. Mit Hilfe der Funktion GetAnimationParameters können Sie diesen Wert ermitteln. Die vom O2C-Player tatsächlich verwendete Geschwindigkeit erhalten Sie aus der Multiplikation dieses Wertes mit der Eigenschaft AnimSpeed.

Die Einheit dieser Eigenschaft ist Frames, nicht Sekunden!

Typ:
Basic | Single
C/C++ | float

Standardwert: 0.0


DelayAfterPreview

Eigenschaften

DelayAfterPreview

Dieser Wert gibt die Wartezeit in Millisekunden an, die der O2C-Player nach dem Anzeigen des Vorschaubildes aus einer O2C-Datei minimal wartet, bevor er beginnt, das Objekt selbst anzuzeigen. Die Wartezeit kann effektiv länger sein, falls noch nicht genügend 3D-Daten vom Netz empfangen wurden, um mit der initialen 3D-Objekt-Anzeige zu beginnen. Ist nach Ablauf der eingestellten Wartezeit der O2C-Player selbst nicht (mehr) sichtbar, zum Beispiel weil der Betrachter auf der HTML-Seite weitergescrollt hat, wird der laufende Download abgebrochen.

Ist dieser Wert 0 (Standard), beginnt der Player mit der 3D-Anzeige, sobald ausreichend Objektdaten empfangen wurden.

Ist dieser Wert negativ, wird die Vorschaugrafik permanent angezeigt, bis der Benutzer darauf klickt. Der Download der 3D-Daten erfolgt davon unabhängig im Hintergrund.

Typ:
Basic | Long
C/C++ | long

Standardwert: 0


DelayBeforeLoad

Eigenschaften

DelayBeforeLoad

Ist dieser Wert 0 (Standard), beginnt der O2C-Player mit dem Download der Objektdaten aus dem Internet, sobald das Control das erste Mal angezeigt wird.

Mit dieser Eigenschaft können Sie den Beginn des Ladevorgangs verzögern. Ist der Wert nicht 0, wartet der Player die angegebene Zeit in Millisekunden und beginnt mit dem Download nur, wenn das Control in diesem Moment noch sichtbar ist.

Wenn Sie eine Seite mit sehr vielen 3D-Objekten anzeigen wollen (z.B. in einer Katalog-Anwendung), geben Sie dem Benutzer so die Chance, über einige Objekte hinwegzuscrollen, ohne alle laden zu müssen.

Typ:
Basic | Long
C/C++ | long

Standardwert: 0


DisplayMode

Eigenschaften

DisplayMode

Steuert denn Darstellungsmodus des O2C-Players. Nähere Informationen entnehmen Sie bitte den Beschreibungen der einzelnen Modi unter o2cDisplayMode.

Wenn Sie die Anzeige des Kontextmenü erlaubt haben, können Sie dort mit einigen der Modi zur Laufzeit experimentieren und so den geeigneten Wert für Ihre Darstellung ermitteln. Für realistische Darstellung ist der Standardwert (o2cDispGTEX) der geeignete, für technische Skizzen die Drahtgitterdarstellung (o2cDispWIRE) bzw. Drahtgitter mit verdeckten Linien (o2cDispHIDDENWIRE).

Wenn Sie einen der Modi mit verdeckten Linien benutzen, sollten Sie die Hintergrundfarbe auf weiß stellen.

Typ:
Basic | o2cDisplayMode
C/C++ | enum o2cDisplayMode

Standardwert: o2cDispGTEX (3)


DragDropEnabled

Eigenschaften

DragDropEnabled

Diese Eigenschaft legt fest, ob der O2C-Player auf Drag & Drop Ereignisse reagiert. Verwenden Sie Bits aus dem Aufzählungstyp o2cDragDropFlags, um den Drag & Drop Support für einzelne Dateiarten einzuschalten.

Achtung: Drag & Drop ist Aufgabe der Applikation; je nach Art der Drag & Drop Implementierung im Hauptfenster der Applikation ist es dem O2C-Player möglich, diese Operation automatisch zu übernehmen oder nicht.

Typ:
Basic | Long (o2cDragDropFlags)
C/C++ | long (enum o2cDragDropFlags)

Standardwert: o2cDragDropDisabled (0) (kein Drag & Drop


Enabled

Eigenschaften

Enabled

Diese Eigenschaft legt fest, ob der O2C-Player "aktivierbar" ist. Setzen Sie sie auf False, um das Control zur rein passivien Anzeige zu nutzen. Animationen (sofern sie von Ihrem Programm aktiviert wurden) laufen weiterhin ab, aber der Benutzer kann nicht eingreifen. In diesem Modus bleibt der Mauszeiger der Standard-Pfeil, die Rotations-Pfeile und andere Zeiger des O2C-Players werden nicht angezeigt, da jede Benutzerinteraktion gesperrt ist.

Eine etwas weniger drastische Einschränkung der Interaktionsmöglichkeiten bietet der Parameter PopupMenuEnabled, setzen Sie diesen auf False, um dem Benutzer alle Funktionen des Kontextmenüs zu nehmen, aber weiterhin die Navigations- und Betrachtungsfunktionen (zoomen, verschieben, drehen) zu lassen.

Typ:
Basic | Boolean
C/C++ | VARIANT_BOOL

Standardwert: True


EnabledMenus

Eigenschaften

EnabledMenus

Sie können (fast) alle Menüpunkte des Kontextmenüs im O2C-Player einzeln an- oder abschalten und so das Menü an die Bedürfnisse Ihrer Anwendung anpassen. Verwenden Sie dazu die Bits des Aufzählungstypes o2cMenuItems.

Typ:
Basic | Long (o2cMenuItems)
C/C++ | long (enum o2cMenuItems)

Standardwert: alle definierten Bits gesetzt


EventObject

Eigenschaften

EventObject

Diese Eigenschaft ist nur innerhalb von Ereignisprozeduren gültig. Er gibt den Index des Objektes an, das das aktuelle Ereignis ausgelöst hat.

Typ:
Basic | Long
C/C++ | long

Standardwert: -1


EyeX

Eigenschaften

EyeX

X-Komponente der 3D Koordinaten des Augpunktes (der Betrachterstandpunkt). Beim Durchwandern ändern sich dieser Wert.

Typ:
Basic | Single
C/C++ | float

Standardwert: abhängig vom geladenen Objekt


EyeY

Eigenschaften

EyeY

Y-Komponente der 3D Koordinaten des Augpunktes (der Betrachterstandpunkt). Beim Durchwandern ändern sich dieser Wert.

Typ:
Basic | Single
C/C++ | float

Standardwert: abhängig vom geladenen Objekt


EyeZ

Eigenschaften

EyeZ

Z-Komponente der 3D Koordinaten des Augpunktes (der Betrachterstandpunkt). Beim Durchwandern ändern sich dieser Wert.

Typ:
Basic | Single
C/C++ | float

Standardwert: abhängig vom geladenen Objekt


Filter

Eigenschaften

Filter

Der O2C-Player verwendet einen effizienten Kantenfilter, um Stufeneffekte bei geraden Kanten zu mindern (sofern nicht gerade eine Animation läuft oder Sie eine Drahtgitterdarstellung verwenden). In Einzelfällen kann dieser Filter die gewünschte Darstellung aber verschlechtern, weshalb Sie ihn mit Hilfe dieses Parameters ausschalten können (indem Sie den Wert auf False setzen).

Der Kantenfilter ist bei eingeschalteter Hardware-Beschleunigung aus technischen Gründen nicht verfügbar. Dieser Parameter wird in diesem Fall ignoriert.

Typ:
Basic | Boolean
C/C++ | VARIANT_BOOL

Standardwert: True


FlatTexturePath

Eigenschaften

FlatTexturePath

Dieser Parameter ist obsolet und wird nur noch zur Kompatibilität mit älteren Internetseiten unterstützt! Wenn Sie Objekte im O2C-Format verwenden, sollten Sie diesen Parameter nicht benutzen.

Die 3D Objekte im (nicht mehr verwendeten) ASO-Format erhalten bei ihrer Modellierung in der Regel relative Texturpfade zu einem Ausgangsverzeichnis, z.B. "moebel/flaechen/grau02.bms". In den meisten Fällen ist es zur Erhöhung der Übersichtlichkeit sinnvoll, diese Struktur auch in Ihrer Applikation beizubehalten. In Einzelfällen (z.B. abgeschlossenen Einheiten mit nur einem oder wenigen Objekten) ist es aber gewünscht, die Texturen direkt bei den Objekten abzulegen. Setzen Sie dann diesen Parameter auf True; der O2C-Player würde dann bei dem genannten Texturpfad nach der relativen URL "grau02.bms" suchen. In der Regel werden Sie in solchen Fällen den Wert für TextureBaseURL auf "." setzen, um HTML-Seiten, Objekte und Texturen in einem gemeinsamen Verzeichnis unterzubringen.

Eine detaillierte Erläuterung der Textursuche finden Sie unter TextureBaseURL.

Wenn Ihre Applikation Objekte aus Dateien lädt, ist dieser Parameter nicht so wichtig wie bei Web-Zugriffen. Der O2C-Player testet immer zuerst einige Dateien, bevor erstmalig ein Web-Zugriff erfolgt. Per Dateizugriff werden Texturen sowohl in der flachen als auch in der Unterverzeichnis-Variante gefunden, bevor der erste Web-Zugriff erfolgt, unabhängig vom Wert dieses Parameters.

Dieser Parameter hat beim Speichern von Objekten KEINE Wirkung!

Typ:
Basic | Boolean
C/C++ | VARIANT_BOOL

Standardwert: False


HasThumbnail

Eigenschaften

HasThumbnail

Nachdem ein O2C-Objekt vollständig geladen wurde, oder der Download aus dem Internet weit genug vorangeschritten ist, oder die Funktion DisplayThumbnail ihre Hintergrundbearbeitung abgeschlossen hat, gibt dieses Attribut an, ob das geladene O2C-Objekt ein Vorschaubild hat.

Diese Eigenschaft ist nur lesbar

Typ:
Basic | Boolean
C/C++ | VARIANT_BOOL

Standardwert: Objektabhängig


HideControls

Eigenschaften

HideControls

In der Standarddarstellung (dieser Parameter hat den Wert False) sieht der O2C-Player abhängig von der Gestaltung Ihrer Applikation eventuell wie ein Fremdkörper aus, da er nicht nur Ihr Objekt, sondern zusätzlich Rollbalken und Schaltflächen zur Manipulation der Anzeige enthält. Alle Operationen dieser Steuerelemente können auch per Tastatur, Mausklick bzw. Kontextmenü ausgeführt werden, so daß der Anwender, falls er den O2C-Player bereits kennt, nicht auf diese Controls angewiesen ist. Sie können daher die Anzeige der Steuerelemente unterbinden, indem Sie diesen Parameter auf True setzen, und somit lediglich Ihr Objekt anzeigen als integralen Bestandteil Ihrer Applikation.

Falls Sie nicht gleichzeitig PopupMenuEnabled auf False gesetzt haben, um das Kontextmenü zu verbieten, kann der Benutzer die Steuerelemente nachträglich aktivieren, wenn er sie benötigt.

Natürlich können Sie auch eigene Steuerelemente mit äquivalenter Funktionalität einsetzen, deren Aussehen dem Erscheinungsbild Ihrer Applikation eher entspricht. Alle benötigten Zugriffsfunktionen sind vorhanden. Siehe auch die Grafik zur Zuordnung der Steuerelemente zu Programmbefehlen.

Typ:
Basic | Boolean
C/C++ | VARIANT_BOOL

Standardwert: True


HideScrollBars

Eigenschaften

HideScrollBars

Ähnlich wie HideControls wird durch diesen Parameter die Anzeige der Rollbalken unterdrückt. Für nicht animierte Objekte ist die Wirkung identisch mit HideControls, bei animierten Objekten wird aber dennoch der Regler für die Animationszeit sowie Start- und Stop-Schaltfläche angezeigt.

Da die Verschiebung des Objektes mit Hilfe der Rollbalken genauso gut über die Maus (mit gedrückter Umschalttaste) erreicht werden kann, behindern deaktivierte Rollbalken den versierten Benutzer in keiner Weise.

Typ:
Basic | Boolean
C/C++ | VARIANT_BOOL

Standardwert: False


IncrementalDisplay

Eigenschaften

IncrementalDisplay

Wenn Sie diesen Wert auf False setzen, wird ein 3D-Objekt erst angezeigt, nachdem es vollständig aus dem Internet geladen wurde. Ansonsten beginnt der Player bereits mit der Anzeige, sobald erste Teilobjekte vorhanden sind und verbessert die Darstellung fortwährend, sobald neue Daten eintreffen.

Typ:
Basic | Boolean
C/C++ | VARIANT_BOOL

Standardwert: True


InhibitLocalTextures

Eigenschaften

InhibitLocalTextures

Wenn Sie diesen Wert auf True setzen, benutzt der O2C-Player beim Laden eines O2C-Objektes niemals die im lokalen System gespeicherten Texturen. Es werden dann ausschließlich die im O2C-Objekt enthaltenen Texturen verwendet.

Lokale Texturen sind bei den meisten Anwendern nicht vorhanden, so daß die Suche nach diesen Dateien verschwendete Zeit ist. Wenn Sie z.B. eine CD Applikation entwickeln und davon ausgehen, das diese Texturen nicht lokal vorhanden sind, setzten Sie diese Eigenschaft auf True.

Falls lokale Texturen vorhanden sind, können sie eventuell sehr viel schneller geladen werden als die Texturen aus dem O2C-Objekt, da diese eventuell noch nicht vollständig aus dem Internet übertragen wurden.

Typ:
Basic | Boolean
C/C++ | VARIANT_BOOL

Standardwert: False


KeepSpinning

Eigenschaften

KeepSpinning

Wenn diese Eigenschaft auf True steht, behält das dargestellte Objekt seinen Schwung bei, wenn es vom Benuzter "angeschubst" wird.

Typ:
Basic | Boolean
C/C++ | VARIANT_BOOL

Standardwert: False


Language

Eigenschaften

Language

O2C-Objekte enthalten Texte, z.B. die Namen der Teilobjekte, die als Tooltip angezeigt werden (siehe TooltipTimeout). Diese Texte können in mehreren Sprachen im Objekt enthalten sein. Durch Setzen dieses Wertes erzwingen Sie die Wahl einer Sprache. Wenn dieser Wert nicht gesetzt ist, ermittelt der O2C-Player ihn aus den Spracheinstellungen des Betriebssystems. Falls diese Sprache nicht vorhanden ist, wird die "neutrale" Sprache benutzt.

Gültige Sprachkennungen sind zwei Zeichen lang und großgeschrieben. Die Kennungen "XX" für neutral und "XY" für Datenbank sind reserviert.

Texte in O2C-Objekten können Sie mit Hilfe des Programmes ACOTranslator erfassen bzw. übersetzen.

Typ:
Basic | String
C/C++ | BSTR

Standardwert: Abhängig von der Betriebssystem-Konfiguration (deutsche Installation: "DE")


LastPickedMaterial

Eigenschaften

LastPickedMaterial

Diese Eigenschaft ist nur abfragbar und nicht immer gültig.

Sie kann während eines SubObjectPicked Ereignisses benutzt werden, um Details über die Mausposition zu ermitteln.

Wenn die Maus auf ein Objekt zeigt, gibt diese Eigenschaft den Materialindex des von der Fläche unter der Maus benutzten Materials an. Zeigt die Maus nicht auf eine Objektfläche, liefert die LastPickedMaterial den Wert -1 (gültige Materialindizes beginnen bei 0).

Typ:
Basic | Long
C/C++ | long

Standardwert: -1


LastPickedTexture

Eigenschaften

LastPickedTexture

Diese Eigenschaft ist nur abfragbar und nicht immer gültig.

Sie kann während eines SubObjectPicked Ereignisses benutzt werden, um Details über die Mausposition zu ermitteln.

Wenn die Maus auf ein Objekt zeigt, gibt diese Eigenschaft den Texturindex der von der Fläche unter der Maus benutzten Textur an. Zeigt die Maus nicht auf eine Objektfläche, liefert die LastPickedTexture den Wert -1 (gültige Texturindizes beginnen bei 0).

Typ:
Basic | Long
C/C++ | long

Standardwert: -1


Lights

Eigenschaften

Lights

Der O2C-Player beleuchtet die dargestellte Szene mit bis zu vier Lampen. Die niederwertigsten Bits dieser Eigenschaft geben an, welche dieser Lampen eingeschaltet sind. Sie können durch drücken der Tasten "1" bis "4" auf der normalen Tastatur (nicht im Ziffernblock) diese Lampen zur Laufzeit umschalten, die Taste "5" schaltet alle Lampen an oder aus.

Typ:
Basic | Long
C/C++ | long

Standardwert: 15 (vier Lampen an)


LoadObjectMenuEnabled

Eigenschaften

LoadObjectMenuEnabled

Das Kontextmenü bietet, falls PopupMenuEnabled auf True gesetzt ist, dem Benutzer die Möglichkeit, andere, lokal auf seinem PC gespeicherte Objekte zu laden und statt des von Ihrem Programm ausgewählten Objektes zu betrachten. Setzen Sie diesen Parameter auf False, um diesen Menüeintrag zu entfernen.

Typ:
Basic | Boolean
C/C++ | VARIANT_BOOL

Standardwert: True


LocalSaveAllowed

Eigenschaften

LocalSaveAllowed

Der Benutzer kann das von Ihrem Programm angezeigte Objekt als nicht komprimierte ACO-Datei speichern. Dabei werden auch alle verwendeten Texturen im BMP-Format gespeichert. Wenn Sie dies verbieten möchten, setzen Sie diesen Parameter auf False.

Typ:
Basic | Boolean
C/C++ | VARIANT_BOOL

Standardwert: True


MenuNameFor3D

Eigenschaften

MenuNameFor3D

Die Verwendung der 2D-Ansicht (Vorschau-Bild) in O2C-Objekten ist nicht einheitlich, daher kann der O2C-Player den Menüpunkt zum Umschalten zwischen Objektansicht und 2D-Ansicht nicht generell sinnvoll benennen. Sie können den Namen dieses Menüpunktes selbst bestimmen, indem Sie diese Eigenschaft setzen.

Siehe auch: MenuNameForPreview

Typ:
Basic | String
C/C++ | BSTR

Standardwert: "Zur 3D-Ansicht wechseln"


MenuNameForPreview

Eigenschaften

MenuNameForPreview

Die Verwendung der 2D-Ansicht (Vorschau-Bild) in O2C-Objekten ist nicht einheitlich, daher kann der O2C-Player den Menüpunkt zum Umschalten zwischen Objektansicht und 2D-Ansicht nicht generell sinnvoll benennen. Sie können den Namen dieses Menüpunktes selbst bestimmen, indem Sie diese Eigenschaft setzen.

Siehe auch: MenuNameFor3D

Typ:
Basic | String
C/C++ | BSTR

Standardwert: "Zur Vorschauansicht wechseln"


ObjectHasAnimation

Eigenschaften

ObjectHasAnimation

Diese nur lesbare Eigenschaft gibt an, ob das derzeit geladene Objekt über Animationen verfügt. Wenn der Wert True ist, können Sie Details über die Animationsdaten mit Hilfe der Funktion GetAnimationParameters erfragen.

Typ:
Basic | Boolean
C/C++ | VARIANT_BOOL

Standardwert: Objektabhängig


ObjectUID

Eigenschaften

ObjectUID

Mit Hilfe eindeutige Objektkennungen können Objekte unter dem richtigen Schlüssel in lokalen Datenbanken abgelegt werden.

O2C-Objekte können mit einer eindeutigen ID versehen sein (der Objekt-UID, nicht zu verwechseln mit der immer vorhandenen Hersteller-GUID). Diese UID wird nicht im Objekt selbst gespeichert und kann daher (optional) als Textparameter angegeben werden. Beispiel für eine UID: "{0C9F5A8D-FC88-11d2-ADD4-00A0C9251384}"

Beim Einsatz in eigenen Applikationen macht dieser Parameter (im Gegensatz zum Einsatz auf Internet-Seiten) meist keinen Sinn.

Typ:
Basic | String
C/C++ | BSTR

Standardwert: Keiner


ObjectURL

Eigenschaften

ObjectURL

Der URL, von der das anzuzeigende Objekt geladen werden soll. Sie können hier z.B. eine file://-URL verwenden, um ein Objekt aus einer Datei zu laden oder Sie laden das Objekt aus dem Internet mit einer http://-URL. Um eine Objekt-Datei zu öffnen, können Sie auch die Funktion LoadObject verwenden, die zusätzlich noch die Möglichkeit bietet, mit Hilfe eines Dialoges das zu ladende Objekt auszuwählen.

Typ:
Basic | String
C/C++ | BSTR

Standardwert: Keiner


PanX

Eigenschaften

PanX

Die Verschiebung des Objektes nach rechts oder links. Bei negativen Werten wird das Objekt nach links verschoben, bei positiven Werten nach rechts. Der Betrag des Wertes richtet sich nach der Vergrößerung (siehe Zoom).

Konkret wird aus der Größe des geladenen Objektes (genauer: dem Verhältnis der Diagonalen der Boundingbox zur Größe des sichtbaren Fensters) ein Faktor ermittelt, der mit diesem Wert multipliziert wird und den sichtbaren Ausschnitt in Weltkoordinaten nach links verschiebt. Ein Wert von 0.5 schiebt das Objekt also (bei Zoom = 1.0) ungefähr um die Hälfte seiner Größe nach rechts.

Typ:
Basic | Single
C/C++ | float

Standardwert: 0.0


PanY

Eigenschaften

PanY

Die Verschiebung des Objektes nach oben oder unten. Bei negativen Werten wird das Objekt nach unten verschoben, bei positiven Werten nach oben. Der Betrag des Wertes richtet sich nach der Vergrößerung (siehe Zoom).

Konkret wird aus der Größe des geladenen Objektes (genauer: dem Verhältnis der Diagonalen der Boundingbox zur Größe des sichtbaren Fensters) ein Faktor ermittelt, der mit diesem Wert multipliziert wird und den sichtbaren Ausschnitt in Weltkoordinaten nach unten verschiebt. Ein Wert von 0.5 schiebt das Objekt also (bei Zoom = 1.0) ungefähr um die Hälfte seiner Größe nach oben.

Typ:
Basic | Single
C/C++ | float

Standardwert: 0.0


Phi

Eigenschaften

Phi

Die Drehung des Objektes um seine Z-Achse (in Grad). Die Drehung erfolgt im mathematischen Drehsinn, d.h. positive Werte drehen das Objekt gegen den Uhrzeigersinn.

Typ:
Basic | Single
C/C++ | float

Standardwert: 225.0


PopupMenuEnabled

Eigenschaften

PopupMenuEnabled

Viele Zusatzfunktionen des O2C-Players können nicht durch direkte Tastaturkommandos oder Mausklicks ausgelöst werden; speziell, wenn Sie mit HideControls = True die Steuerelemente ausgeschaltet haben. Der Benutzer muß durch Klicken mit der rechten Maustaste das Kontextmenü aktivieren und kann dort diverse Funktionen und Einstellmöglichkeiten wählen. Wenn Sie dem Benutzer diese Möglichkeit nicht geben wollen, setzen Sie diese Eigenschaft auf False.

Noch weitgehender können Sie die Benutzeroberfläche deaktivieren, indem Sie die Eigenschaft Enabled auf False setzen. In diesem Zustand kann der Benutzer nicht mehr zoomen, drehen und verschieben, er kann lediglich das Ablaufen einer eventuellen Animation anschauen (wenn diese von Ihrem Programm gestartet wurde). Es ist ihm aber z.B. nicht möglich, hinter das Objekt zu schauen, wenn dies nicht Bestandteil der ablaufenden Animation ist.

Sie können eine eigene Benutzeroberfläche erstellen und alle Funktionalitäten, die über das Kontextmenü verfügbar wären, programmgesteuert aktivieren, die nötigen Zugriffsfunktionen sind vorhanden. Siehe auch die Grafik zur Zuordnung der Steuerelemente zu Programmbefehlen.

Typ:
Basic | Boolean
C/C++ | VARIANT_BOOL

Standardwert: True


PreviewMode

Eigenschaften

PreviewMode

Eine Bitmaske die angibt, unter welchen Umständen ein Vorschaubild beim Download eines O2C-Objektes ausgeblendet werden soll. Wenn Sie diesen Wert auf 0 setzen, bleibt das Vorschaubild immer im Hintergrund (während das 3D-Objekt vor dem Vorschaubild angezeigt wird). Dadurch wird das Vorschaubild eigentlich zu einer Hintergrundgrafik.

Mit den folgenden Bitwerten können Sie unterschiedliche Anlässe zum Ausblenden der Vorschauanzeige aktivieren:

Wert: | Ereigniss zum Ausblenden der Vorschau:
1 | Bei der ersten Aktion des Benutzers (klicken, drehen oder ähnliches)
2 | Beim ersten Anzeigen des Objektes (bzw. eines Teils des Objektes, wenn der inkrementelle Download aktiv ist)
4 | Sobald der Downloadvorgang mit dem Erstellen des echten Hintergrundbildes beginnt

Typ:
Basic | Long
C/C++ | long

Standardwert: 3 (nach Benutzeraktionen und erstem Anzeigen des Objektes)


Psi

Eigenschaften

Psi

Die Drehung des Objektes um seine X-Achse in Grad. Positive Werte neigen das Objekt nach unten.

Typ:
Basic | Single
C/C++ | float

Standardwert: 30


SaveFilesWithDocument

Eigenschaften

SaveFilesWithDocument

Wenn Sie den O2C-Player in OLE-Dokumenten verwenden (z.B. in MS Word) ist es möglich, alle benötigten Texturen und Objekte vollständig in das Dokument zu kopieren (anstatt nur Verweise auf die Dateinamen außerhalb des Dokumentes zu speichern). Die Kopien der Objekte und Texturen benötigen natürlich Speicherplatz, so daß das Dokument größer wird. Andererseits funktionieren diese Dokumente dann auch auf anderen Computern, auf denen die Objekte und/oder Texturen nicht installiert sind.

Der Benutzer entscheidet dies in der Regel, in dem er den Dialog Allgemeine Einstellungen im Kontextmenü benutzt.

Außer in äußerst unwahrscheinlichen Ausnahmefällen macht es keinen Sinn, wenn Ihr Programm diesen Wert verändert!

Technisch ist Ihr Programm in der Lage, diese Einstellung temporär zu überschreiben, indem es dieser Eigenschaft einen Wert zuweist. Wenn Ihr Programm einen OLE-Dokumenten-Container implementiert, gleichzeitig programmgesteuert Objekte in diese Dokumente einsetzt und verhindern möchte, daß diese Objekte mitsamt aller Daten (redundant) in das Dokument gespeichert werden und in ähnlich extravaganten Situationen könnte es sinnvoll sein, diesen Wert auf False zu setzen.

Typ:
Basic | Boolean
C/C++ | VARIANT_BOOL

Standardwert: Abhängig von der Benutzerinstallation


SpinPhi

Eigenschaften

SpinPhi

Falls Auto-Rotation aktiviert ist (siehe KeepSpinning) gibt dieser Wert die Änderung von Phi pro Sekunde an (also die Winkelgeschwindigkeit der Rotation in Grad pro Sekunde).

Typ:
Basic | Single
C/C++ | float

Standardwert: 0.0


SpinPsi

Eigenschaften

SpinPsi

Falls Auto-Rotation aktiviert ist (siehe KeepSpinning) gibt dieser Wert die Änderung von Psi pro Sekunde an (also die Winkelgeschwindigkeit der Rotation in Grad pro Sekunde).

Typ:
Basic | Single
C/C++ | float

Standardwert: 0.0


TextureBaseURL

Eigenschaften

TextureBaseURL

Dieser Parameter ist obsolet und wird nur noch zur Kompatibilität mit älteren Internetseiten unterstützt! Wenn Sie Objekte im O2C-Format verwenden, sollten Sie diesen Parameter nicht benutzen.

Der URL-Präfix für die Suche von Texturen auf dem Web. Wenn dieser Parameter nicht gesetzt ist, werden keinerlei Texturen per Internet geladen!

Wenn der O2C-Player eine Textur sucht, wird an verschiedenen Orten nach der Datei gesucht. Nehmen Sie z.B. an, der Name der Textur im Objekt lautet "moebel/flaechen/grau02", der lokale Texturpfad (TexturePath) auf dem PC des Benutzers Ihrer Applikation ist auf "D:\ArCon\Texturen" gestellt und Ihre Seite definiert "http://www.ich-selbst.de/katalog/texturen" als TextureBaseURL.

In diesem Beispiel ergibt sich folgender Suchpfad:

  1. der relative Pfad der Textur (wie er im Objekt gespeichert ist) ab dem eingestellten TexturePath, also im Beispiel: "D:\ArCon\Texturen\moebel\flaechen\grau02.bmp"
  2. der Dateiname der der Texture direkt im eingestellten TexturePath Verzeichnis, also im Beispiel: "D:\ArCon\Texturen\grau02.bmp"
  3. falls das Objekt aus einer Datei geladen wurde: der Name der Textur im gleichen Verzeichnis wie das Objekt, also z.B. "D:\ArCon\Objekete\grau02.bmp"
  4. der relative Pfad der Textur ab TextureBaseURL, also im Beispiel "http://www.ich-selbst.de/katalog/texturen/moebel/flaechen/grau02.bms"
  5. der lokale Dateiname an der TextureBaseURL, also "http://www.ich-selbst.de/katalog/texturen/grau02.bms"
  6. der lokale Dateiname an der Position, von der das Objekt geladen wurde (ObjectURL), also z.B. "http://www.ich-selbst.de/katalog/objekte/grau02.bms"

Die ersten drei Versuche sind lokale Dateizugriffe und können daher sehr schnell durchgeführt werden. Die letzten drei sind Internetzugriffe und dauern auch im Mißerfolgsfall deutlich länger. Wenn kein lokaler Texturpfad eingestellt ist, werden die ersten beiden Versuche übersprungen. Wenn keine TextureBaseURL eingestellt ist, werden Schritt vier und fünf übersprungen.

Falls Sie keine relativen Pfade für Texturen verwenden (FlatTexturePath=True), werden die Schritte eins und drei ausgelassen.

Um unnötige (und langsame) Internetzugriffe zu vermeiden, sollten die Texturen möglichst im Schritt vier gefunden werden (die vorhergehenden Schritte sind lokal und damit sehr schnell). Der ACO Internet Publisher erstellt die Dateien automatisch in den richtigen Verzeichnissen.

Typ:
Basic | String
C/C++ | BSTR

Standardwert: Keiner


TexturePath

Eigenschaften

TexturePath

Gibt den lokalen Pfad an, unter dem Texturen zu finden sind. Wenn Sie mit der Installation Ihrer Applikation eigene Texturen installieren, stellen Sie hier diesen Pfad ein.

Eine detaillierte Erläuterung der Textursuche finden Sie unter TextureBaseURL.

Dieser Wert ist unabhängig von der betrachteten Web-Seite und beschreibt lediglich die lokale Installation des Betrachters. Er sollte niemals von einem Programm überschrieben werden!

Typ:
Basic | String
C/C++ | BSTR

Standardwert: Das ArCon-Texturverzeichnis, wenn vorhanden, ansonsten die letzte Einstellung des Benutzers im "Allgemeine Einstellungen"-Dialog des O2C-Players.


TooltipTimeout

Eigenschaften

TooltipTimeout

Wenn die Maus über einem benannten Teilobjekt verweilt, kann der O2C-Player ein Tooltip mit dem Namen dieses Teilobjektes anzeigen. Dieser Parameter legt fest, nach wieviel Millisekunden über dem gleichen Teilobjekt dieser Tooltip erscheinen soll.

Setzen Sie diesen Parameter auf -1, um Tooltips generell abzuschalten.

Typ:
Basic | Long
C/C++ | long

Standardwert: 750


VisuDLL

Eigenschaften

VisuDLL

Gibt in der erweiterten Version des O2C-Players den Pfad zur benötigten Visualisierungs-DLL an.

Typ:
Basic | String
C/C++ | BSTR

Standardwert: Keiner


VRDeviceAvailable

Eigenschaften

VRDeviceAvailable

Diese nur lesbare Eigenschaft gibt an, ob ein unterstütztes Ausgabegerät für die VR-Darstellung vorhanden ist. Nur in der erweiterten Version des O2C-Players liefert diese Funktion sinnvolle Werte.

Typ:
Basic | Boolean
C/C++ | VARIANT_BOOL

Standardwert: Keiner


VRPx

Eigenschaften

VRPx

X-Komponente des Punktes, auf den der Betrachter schaut (VRP = View Reference Point).

Typ:
Basic | Single
C/C++ | float

Standardwert: 0.0


VRPy

Eigenschaften

VRPy

Y-Komponente des Punktes, auf den der Betrachter schaut (VRP = View Reference Point).

Typ:
Basic | Single
C/C++ | float

Standardwert: 0.0


VRPz

Eigenschaften

VRPz

Z-Komponente des Punktes, auf den der Betrachter schaut (VRP = View Reference Point).

Typ:
Basic | Single
C/C++ | float

Standardwert: 0.0


Walkthrough

Eigenschaften

Walkthrough

Setzen Sie diesen Wert auf True, um den Durchwander-Modus zu aktivieren. In diesem Modus bewegt sich der Betrachter durch das Objekt, während im Normalmodus das Objekt bei festem Betrachterstandpunkt rotiert und bewegt wird.

Typ:
Basic | Boolean
C/C++ | VARIANT_BOOL

Standardwert: False


Zoom

Eigenschaften

Zoom

Der Vergrößerungsfaktor der Anzeige. Nach dem Laden eines Objektes initialisiert der O2C-Player die Anzeige so, daß das Objekt im wesentlichen in allen Drehwinkeln vollständig zu sehen ist. Diese Ansicht (die der Benutzer später jederzeit durch Drücken der Pos1 Taste wieder herstellen kann) entspricht dem Wert 1.0. Um das Objekt doppelt so groß zu zeigen, setzen Sie Zoom=2.0, für die Darstellung in halber Größe benutzen Sie Zoom=0.5.

Typ:
Basic | Single
C/C++ | float

Standardwert: 1.0


Funktionen

Funktionen

Funktionen sind Aufrufe, die das Programm im O2C-Player durchführt und dabei beliebig komplexe Aufrufparameter mitgibt (im Gegensatz zu Eigenschaften, die genau einen einzelnen Wert darstellen können).

Alphabetische Liste der Funktionen
Name der Funktion | Beschreibung
AddObject | Lädt ein zusätzliches Objekt
BrowseForTexturePath | Wählt einen lokalen Texturpfad aus
ConfigureCache | Setzt Parameter für die Cache-Nutzung
ConfigureCache2 | Setzt Parameter für die Cache-Nutzung
CopyHtmlCode | Kopiert den aktuellen Anzeigezustand als HTML-Code in die Zwischenablage
DisableBackgroundLogo | Unterdrückt die Anzeige des Hintergrund-Logos
DisableUserMovements | Verhindert bestimmte Bewegungsmöglichkeiten des Benutzers (z.B. Rotieren)
DisplayThumbnail | Lädt ein Vorschaubild aus einer O2C Datei
DragAndDropMaterial | Startet einen simulierten Drag & Drop Vorgang für ein Material
DragAndDropMaterialFromURL | Startet einen simulierten Drag & Drop Vorgang für ein Material, das aus einer Material Datei per URL Zugriff geladen wird
DragAndDropObject | Startet einen simulierten Drag & Drop Vorgang für ein Objekt
DragAndDropObjectWithDefault | Startet einen simulierten Drag & Drop Vorgang für ein Objekt mit einem Platzhalterobjekt
DragAndDropTexture | Startet einen simulierten Drag & Drop Vorgang für eine Textur
EnableUpdate | Schaltet das Neuzeichnen nach Änderungen ein oder aus
FlushCaches | Löscht die Pufferspeicher im O2C-Player
GetAnimationParameters | Liefert die Gesamt-Animations-Parameter
GetAnimationParametersAsString | Liefert die Gesamt-Animations-Parameter zusammengefaßt als String (für JavaScript)
GetCollidingObjects | Liefert ein Array der ID's der Objekte, die mit einem Objekt kollidieren
GetCollidingObjectsAsString | Liefert einen String mit den ID's der Objekte, die mit einem Objekt kollidieren, durch Kommas getrennt
GetLastPickedPosition | Liefert die Koordinaten der letzten Mausposition
GetLastPickedPositionX | Liefert die X-Koordinate der letzten Mausposition (für JavaScript)
GetLastPickedPositionY | Liefert die Y-Koordinate der letzten Mausposition (für JavaScript)
GetLastPickedPositionZ | Liefert die Z-Koordinate der letzten Mausposition (für JavaScript)
GetMaterial | Liefert die Daten eines Materials
GetMaterialAsString | Liefert die Daten eines Materials zusammengefaßt als String (für JavaScript)
GetMaterialCount | Liefert die Anzahl der im Objekt verwendeten Materialien
GetPredefinedViewing | Liefert die Daten eines vordefinierten Betrachterstandpunktes
GetPredefinedViewingAsString | Liefert die Daten eines vordefinierten Betrachterstandpunktes zusammengefaßt als String (für JavaScript)
GetSubAnimationInfo | Liefert Detailinformationen über eine Teilanimation
GetSubAnimationInfoAsString | Liefert Detailinformationen über eine Teilanimation zusammengefaßt als String (für JavaScript)
GetSubObjectName | Liefert den Namen eines Teilobjektes
GetTexture | Liefert den Namen einer Textur
GetTextureCount | Liefert die Anzahl der im Objekt verwendeten Texturen
GetViewing3D | Liefert die Parameter einer Betrachterposition
GetViewing3DEx | Liefert erweiterte Parameter der Betrachterposition
GetViewing3DExAsString | Liefert erweiterte Parameter der Betrachterposition zusammengefaßt als String (für JavaScript)
LoadMaterial | Lädt ein Material aus einer Datei
LoadObject | Lädt ein Objekt aus einer Datei
NameOfPredefinedViewing | Liefert den Namen eines vordefinierten Betrachterstandpunktes
NewGroup | Erzeugt eine neue Objektgruppe
NumberOfPredefinedViewings | Anzahl der vordefinierten Betrachterstandpunkte
ObjectAddChild | Fügt ein Objekt in eine Gruppe ein
ObjectAddChildKeepPos | Fügt ein Objekt unter Beibehaltung seiner absoluten Weltkoordinaten in eine Gruppe ein
ObjectDelete | Löscht ein zusätzlich geladenes Objekt
ObjectDrop | Läßt ein Objekt fallen
ObjectForceLoad | Aktiviert den Internet-Download eines Objektes, auch wenn dieses bisher noch nicht sichtbar geschaltet wurde
ObjectGetChild | Liefert ein Subobjekt aus einer Gruppe
ObjectGetChildCount | Liefert die Anzahl der Subobjekte einer Gruppe
ObjectGetCurPos | Liefert die aktuelle Position eines Objektes oder einer Gruppe
ObjectGetCurPosX | Liefert den X-Anteil der aktuellen Position (für JavaScript)
ObjectGetCurPosY | Liefert den Y-Anteil der aktuellen Position (für JavaScript)
ObjectGetCurPosZ | Liefert den Z-Anteil der aktuellen Position (für JavaScript)
ObjectGetExtend | Liefert die Größe des Objektes
ObjectGetExtendX | Liefert die X-Komponente der Größe des Objektes (für JavaScript)
ObjectGetExtendY | Liefert die Y-Komponente der Größe des Objektes (für JavaScript)
ObjectGetExtendZ | Liefert die Z-Komponente der Größe des Objektes (für JavaScript)
ObjectGetParent | Liefert die nächst übergeordnete Gruppe, zu der ein Objekt gehört
ObjectGetPositionAsString | Liefert die gesamte Objektposition zusammengefaßt als String (für JavaScript)
ObjectGetRealPos | Liefert die Position des Mittelpunktes eines Objektes oder einer Gruppe
ObjectGetRealPositionAsString | Liefert die Position des Mittelpunktes eines Objektes oder einer Gruppe zusammengefaßt als String (für JavaScript)
ObjectGetRealPosX | Liefert die X-Komponente der Position des Mittelpunktes eines Objektes oder einer Gruppe (für JavaScript)
ObjectGetRealPosY | Liefert die Y-Komponente der Position des Mittelpunktes eines Objektes oder einer Gruppe (für JavaScript)
ObjectGetRealPosZ | Liefert die Z-Komponente der Position des Mittelpunktes eines Objektes oder einer Gruppe (für JavaScript)
ObjectGetUserData | Liefert benutzerdefinierte Daten, die zu einem Objekt gespeichert wurden
ObjectIsGroup | Testet, ob eine ID zu einem Objekt oder einer Gruppe gehört
ObjectIsLoaded | Testet, ob ein Objekt bereits aus dem Internet geladen wurde
ObjectMayMove | Steuert die Verschiebbarkeit eines Objektes oder einer Gruppe
ObjectRemoveChild | Entfernt ein Subobjekt aus einer Gruppe
ObjectRemoveChildKeepPos | Entfernt ein Subobjekt unter Beibehaltung seiner absoluten Weltkoordinaten aus einer Gruppe
ObjectResetPosition | Setzt die Position eines Objektes oder einer Gruppe zurück
ObjectRotate | Dreht ein Objekt um eine beliebiege Achse
ObjectScale | Vergrößert oder verkleinert ein Objekt
ObjectSetHighlightedSubObject | Wählt das hervorzuhebende SubObjekt aus (nur falls DisplayMode den Wert o2cDispFlagAlltrans enthält)
ObjectSetPositionFromString | Setzt die gesamte Objektposition zusammengefaßt als String (für JavaScript)
ObjectSetUserData | Speichert benutzerdefinierte Daten zu einem Objekt oder einer Gruppe
ObjectShow | Macht ein Objekt sichtbar oder unsichtbar
ObjectSwitchLight | Schaltet Lampen in einem Objekt an oder aus
ObjectTranslate | Verschiebt ein Objekt
ObjectTranslate2 | Verschiebt ein Objekt
ObjectTurn | Dreht ein Objekt an seiner aktuellen Position
OneTimeRaytrace | Führt einmalig eine Raytrace-Berechnung durch
Refresh | Erzwingt ein Neuzeichnen des O2C-Players
RegisterChunkNotify | Schaltet die Benachrichtigung über das Eintreffen bekannter Chunks ein oder aus
ReplaceMaterial | Ersetzt ein Material
ReplaceMaterialEx | Ersetzt ein Material (erweiterte Version)
ReplaceTexture | Ersetzt eine Textur
SaveACOObject | Speichert alle dargestellten Objekte im ACO Format ab
SaveACOObject2 | Speichert alle dargestellten Objekte im ACO Format ab, erweiterte Version
SaveBitmap | Speichert die aktuelle Ansicht als Bitmap
SaveMiniBitmap | Speichert ein Vorschaubild. Nur in der erweiterten Version verfügbar
SaveObject | Speichert das aktuelle Objekt als ACO oder O2C Datei
SaveTextureToLocalFile | Speichert eine Textur aus dem Texturcache als Bitmap Datei
SetCursorMode | Erzwingt die Anzeige besonderer Mauszeiger
SetPhiPsiRanges | Phi und Psi beschränken
SetPredefinedViewing | Auswählen eines vordefinierten Betrachterstandpunktes
SetViewing3D | Setzt mit einem Aufruf (atomar) eine komplette Betrachterposition
SetViewing3DEx | Setzt mit einem Aufruf eine erweiterte Betrachterposition
Show2DView | Schaltet zwischen Vorschau (2D Ansicht) und 3D-Objekt um
ShowAll | Macht das gesamte Objekt sichtbar
StartAnimation | Aktiviert die Gesamtanimation
StartSubAnimation | Startet eine Teilanimation
StopAnimation | Beendet eine gerade laufende Animation
SubObjectCount | Liefert die Anzahl der Subobjekte
WalkThroughStep | Macht einen Schritt in die angegebene Richtung


AddObject

Funktionen

AddObject

Diese Funktion lädt ein zusätzliches Objekt, entfernt aber anders als LoadObject oder Zuweisungen an ObjectURL nicht alle bisher geladenen Objekte. Dadurch können mehrere Objekte gleichzeitig dargestellt werden.

Die Funktion liefert einen Objekt-Index zurück, der später zur Manipulation dieses Objektes der Eigenschaft CurrentObject zugewiesen werden kann.

Der Download- oder Nachladevorgang für das neue Objekt wird nicht sofort aktiviert, sondern erst, wenn das Objekt sichtbar geschaltet wird (durch Aufruf der Funktion ObjectShow). Vorher kann das Objekt positioniert werden (mit den Funktionen ObjectScale, ObjectRotate und ObjectTranslate), so daß es beim Download gleich an der gewünschten Stelle erscheint.

Deklaration:
Basic | Function AddObject(ByVal urlOrFile As String) As Long
C/C++ | HRESULT AddObject(BSTR urlOrFile, long *pResult)

Parameter:
urlOrFile Dateiname des nachzuladenden Objektes oder eine URL

Rückgabewert (in C/C++ über pResult): Index des hinzugefügten Objektes.


BrowseForTexturePath

Funktionen

BrowseForTexturePath

Diese Funktion aktiviert einen Verzeichnis-Auswahl-Dialog, mit dem der Benutzer ein Verzeichnis für lokale Texturdateien auswählen kann. Sie können das Ergebnis anschließend als Wert der Eigenschaft TexturePath abfragen.

Deklaration:
Basic | Sub BrowseForTexturePath()
C/C++ | HRESULT BrowseForTexturePath()


ConfigureCache

Funktionen

ConfigureCache

Diese Funktion steuert die maximale Größe der internen Caches für verschiedene Objekte. Beachten Sie, das die Caches nicht Instanz-lokal zum ActiveX Control sind, sondern für jeden Prozeß, in dem das Control eingebunden ist, nur einmal existieren. Wenn Sie also z.B. im Internet Explorer eine Seite mit fünf O2C-Objekten betrachten, gibt es jeden der Caches dennoch nur einmal.

Siehe auch: ConfigureCache2

Deklaration:
Basic | Function ConfigureCache(ByVal cachedObjects As Long, ByVal cachedTextures As Long, ByVal cachedBackgroundPictures As Long) As Boolean
C/C++ | HRESULT ConfigureCache (long cachedObject, long cachedTextures, long cachedBackgroundPictures, VARIANT_BOOL *pResult)

Parameter:
cachedObjects | Anzahl der O2C/ACO Objekte, die zwischengespeichert werden. Standard: 30, Minimum: 2
cachedTextures | Anzahl der Texturen, die zwischengespeichert werden. Standard: 200, Minimum: 10
cachedBackgroundPictures | Anzahl der Hintergrundbilder im Zwischenspeicher. Standard: 5, Minimum: 2

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


ConfigureCache2

Funktionen

ConfigureCache2

Diese Funktion steuert die maximale Größe der internen Caches für verschiedene Objekte. Beachten Sie, das die Caches nicht Instanz-lokal zum ActiveX Control sind, sondern für jeden Prozeß, in dem das Control eingebunden ist, nur einmal existieren. Wenn Sie also z.B. im Internet Explorer eine Seite mit fünf O2C-Objekten betrachten, gibt es jeden der Caches dennoch nur einmal.

Siehe auch: ConfigureCache

Deklaration:
Basic | Function ConfigureCache2(ByVal cachedObjects As Long, ByVal cachedTextures As Long, ByVal cachedMaterials, ByVal cachedBackgroundPictures As Long) As Boolean
C/C++ | HRESULT ConfigureCache2(long cachedObject, long cachedTextures, long cachedMaterials, long cachedBackgroundPictures, VARIANT_BOOL *pResult)

Parameter:
cachedObjects | Anzahl der O2C/ACO Objekte, die zwischengespeichert werden. Standard: 30, Minimum: 2
cachedTextures | Anzahl der Texturen, die zwischengespeichert werden. Standard: 200, Minimum: 10
cachedMaterials | Anzahl der Materialien, die gepuffert werden. Standard: 300, Minimum: 10
cachedBackgroundPictures | Anzahl der Hintergrundbilder im Zwischenspeicher. Standard: 5, Minimum: 2

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


CopyHtmlCode

Funktionen

CopyHtmlCode

Kopiert (M)-HTML Code in die Zwischenablage, der eine Anzeige des aktuellen Zustandes des Controls erzeugen würde.

Deklaration:
Basic | Sub CopyHtmlCode(ByVal htmlStyle As o2cHtmlType, ByVal realObjectUrl As String)
C/C++ | HRESULT CopyHtmlCode(o2cHtmlType htmlStyle, BSTR realOBjectUrl)

Parameter:
htmlStyle | Einer der unter o2cHtmlType aufgeführten Werte für die Art des zu erzeugenden HTML Codes
realObjectUrl | Die URL des angezeigten Objektes. Falls hier ein Leerstring übergeben wird, erscheint ein Dialog, der die tatsächliche URL erfragt.


DisableBackgroundLogo

Funktionen

DisableBackgroundLogo

Wenn der O2C-Player sichtbar ist, bevor ein Objekt geladen wurde, zeigt er das O2C-Logo im Hintergrund und verweist auf die O2C-Player Web Site.

Es gibt eine Möglichkeit, diese Anzeige zu unterbinden indem Sie die Funktion mit dem richtigen Parameter aufrufen. Um welchen Wert es sich dabei handelt, möchten wir hier nicht dokumentieren.

Deklaration:
Basic | Sub DisableBackgroundLogo(ByVal PassCode As Long)
C/C++ | HRESULT DisableBackgroundLogo(long PassCode)

Parameter:
PassCode Wert zum Deaktivieren des Logos


DisableUserMovements

Funktionen

DisableUserMovements

Mit Hilfe dieser Funktionen können Sie den Benutzer in der Bedienung des O2C-Players einschränken. Welche Aktionen Sie deaktivieren können, entnehmen Sie bitte den Werten unter o2cUserMovementTypes.

Deklaration:
Basic | Funktion DisableUserMovements(ByVal newMask As Long) As Long
C/C++ | HRESULT DisableUserMovements(long newMask, long *pResult)

Parameter:
newMask Bitmaske, mit den einzuschränkenden Aktionen, mögliche Werte siehe o2cUserMovementTypes

Rückgabewert (in C/C++ über pResult): Der vorherige Wert


DisplayThumbnail

Funktionen

DisplayThumbnail

Lädt eine O2C Datei und stellt das Vorschau-Bild aus dieser Datei dar.

Der Ladevorgang erfolgt im Hintergrund, die Funktion kehrt sofort zurück. Falls die Datei nicht geöffnet werden kann, liefert die Funktion False und es erfolgt keine weitere Hintergrundbearbeitung.

Wenn das Vorschaubild geladen wurde oder keines gefunden wurde, wird das Ereignis ThumbnailDone ausgelöst.

Deklaration:
Basic | Function DisplayThumbnail(ByVal fileName As String) As Boolean
C/C++ | HRESULT DisplayThumbnail(BSTR fileName, VARIANT_BOOL *pResult)

Parameter:
fileName Name der zu ladenden Datei

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


DragAndDropMaterial

Funktionen

DragAndDropMaterial

Startet einen simulierten Drag & Drop Vorgang für ein Material.

Deklaration:
Basic | Sub DragAndDropMaterial(ByVal colDifuse As Long, ByVal colSpecular As Long, ByVal alpha As Single, ByVal coDifuse As Single, ByVal coAmbient As Single, ByVal coSpecular As Single, ByVal flags As Long, ByVal refractionCoef As Single)
C/C++ | HRESULT DragAndDropMaterial(long colDifuse, long colSpecular, float alpha, float coDifuse, float coAmbient, float coSpecular, long flags, float refractionCoef)

Parameter:
colDifuse | Farbe (RGB), in der Licht diffus reflektiert wird
colSpecular | Farbe (RGB), in der das Licht spiegelnd/glänzend reflektiert wird
alpha | Faktor der Durchsichtigkeit des Materials
coDifuse | Koeffizient (zwischen 0 und 1) zur Bestimmung der Stärke der diffusen Reflektion
coAmbient | Koeffizient (zwischen 0 und 1) zur Bestimmung der Stärke der Reflektion von ambientem Licht
coSpecular | Koeffizient (zwischen 0 und 1) zur Bestimmung der Stärke der glänzenden Reflektion.
flags | Bits zur Bestimmung spezieller Materialeigenschaften
refractionCoef | Koeffizient (zwischen 0 und 1) zur Bestimmung der Stärke der Refraktion.


DragAndDropMaterialFromURL

Funktionen

DragAndDropMaterialFromURL

Startet einen simulierten Drag & Drop Vorgang für ein Material, wobei die Daten des Materials aus einer URL stammen.

Deklaration:
Basic | Sub DragAndDropMaterialFromURL(ByVal url As String)
C/C++ | HRESULT DragAndDropMaterialFromURL(BSTR url)

Parameter:
url URL oder Dateiname der Materialdatei


DragAndDropObject

Funktionen

DragAndDropObject

Startet einen simulierten Drag & Drop Vorgang für ein Objekt. Dieser Vorgang entspricht dem Laden eines Objektes per AddObject mit einem anschließenden ObjectShow.

Deklaration:
Basic | Function DragAndDropObject(ByVal url As String, ByVal moveFlags As Long) As Long
C/C++ | HRESULT DragAndDropObject(BSTR url, long moveFlags, long *pResult)

Parameter:
url | URL oder Dateiname des Objektes
moveFlags | Bitmaske zur Steuerung der Bewegung. Mögliche Werte finden Sie unter o2cMoveFlags

Rückgabewert (in C/C++ über pResult): Die ID des hinzugefügten Objektes


DragAndDropObjectWithDefault

Funktionen

DragAndDropObjectWithDefault

Startet einen simulierten Drag & Drop Vorgang für ein Objekt. Dieser Vorgang entspricht dem Laden eines Objektes per AddObject mit einem anschließenden ObjectShow.

Da der Download aus dem Internet eine Weile dauern kann, können Sie bei dieser Funktion ein Objekt angeben, welches angezeigt wird, während das Zielobjekt im Hintergrund heruntergeladen wird (z.B. eine Sanduhr o.ä.). Die Objekte werden nach Abschluß des Downloads automatisch ausgetauscht.

Deklaration:
Basic | Function DragAndDropObjectWithDefault(ByVal url As String, ByVal moveFlags As Long, DefaultObjectID As Long) As Long
C/C++ | HRESULT DragAndDropObjectWithDefault(BSTR url, long moveFlags, long DefaultObjectID, long *pResult)

Parameter:
url | URL oder Dateiname des Objektes
DefaultObjectID | ID des Platzhalter-Objektes
moveFlags | Bitmaske zur Steuerung der Bewegung. Mögliche Werte finden Sie unter o2cMoveFlags

Rückgabewert (in C/C++ über pResult): Die ID des hinzugefügten Objektes


DragAndDropTexture

Funktionen

DragAndDropTexture

Startet einen simulierten Drag & Drop Vorgang für eine Textur.

Deklaration:
Basic | Sub DragAndDropTexture(ByVal url As String)
C/C++ | HRESULT DragAndDropTexture(BSTR url)

Parameter:
url URL oder Dateiname der Textur-Datei


EnableUpdate

Funktionen

EnableUpdate

Ermöglicht das automatische Neuzeichnen nach jeder Änderung abzuschalten. Wenn Sie zum Beispiel fünf Texturen austauschen möchten, ist es nicht sinnvoll, nach jedem Austausch das unfertige Bild neu anzuzeigen. Schalten Sie daher vor der ersten Änderung die Aktualisierung aus und nach der letzten wieder an.

Diese Funktion kann mehrfach aufgerufen werden, allerdings muß für jedes EnableUpdate(false) auch das entsprechende EnableUpdate(true) aufgerufen werden. Dies macht die Gestaltung von Funktionen einfacher, die unabhängig vom aktuellen Status selbst das Aktualisieren ausschalten und vor Rückkehr aus der Funktion wieder anschalten können. Falls der Aufrufer vorher auch die Aktualisierung unterbunden hat, ist sie nun immer noch unterbunden. Erst wenn alle EnableUpdate(false) durch ein EnableUpdate(true) beendet wurden, wird wieder automatisch neu gezeichnet.

Auch bei abgeschalteter Aktualisierung kann es in Einzelfällen (aus technischen Gründen) dazu kommen, daß neu gezeichnet wird.

Deklaration:
Basic | Sub EnableUpdate(ByVal updateEnabled As Boolean)
C/C++ | HRESULT EnableUpdate(VARIANT_BOOL updateEnabled)

Parameter:
updateEnabled Gibt an, ob Neuzeichnen erlaubt (True) oder verboten (False) ist


FlushCaches

Funktionen

FlushCaches

Löscht Pufferspeicher im O2C-Player.

Dies gibt zum einen den von den verschiedenen Puffern belegten Speicher frei, zum anderen verhindert es aber auch falsche Zugriffe auf gepufferte Objekte. Dies kann z.B. geschehen, wenn Sie Texturen- oder Materialien mit relativen URLs austauschen und anschließend zu einer anderen Basis-URL wechseln und dort mit den gleichen relativen URLs Texturen oder Materialien referenzieren. Hier könnten Sie beim Wechsel der Basis-URL die Caches löschen.

Vergleiche auch ConfigureCache und ConfigureCache2

Deklaration:
Basic | Sub FlushCaches(ByVal flushObjectCache As Boolean, ByVal flushTextureCache As Boolean, ByVal flushMaterialCache As Boolean, ByVal flushBackPicCache As Boolean)
C/C++ | HRESULT FlushCaches(VARIANT_BOOL flushObjectCache, VARIANT_BOOL flushTextureCache, VARIANT_BOOL flushMaterialCache, VARIANT_BOOL flushBackPicCache)

Parameter:
flushObjectCache | Gibt an, ob der Objekt-Cache gelöscht werden soll. Objekte, die noch benutzt werden, können dabei nicht gelöscht werden
flushTextureCache | Gibt an, ob der Textur-Cache gelöscht werden soll.
flushMaterialCache | Gibt an, ob der Material-Cache gelöscht werden soll
flushBackPicCache | Gibt an, ob der Puffer für Hintergrundbilder gelöscht werden soll.


GetAnimationParameters

Funktionen

GetAnimationParameters

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Ermittelt die Parameter der Animationsdaten, falls das aktuelle Objekt solche Informationen enthält. Andernfalls liefert die Funktion False. Im Erfolgsfall werden die übergebenen Referenzparameter auf die unten stehenden Werte gesetzt.

Deklaration:
Basic | Function GetAnimationParameters(ByRef Length As Single, ByRef FramesPerSecond As Single, ByRef SubAnimCount As Long) As Boolean
C/C++ | HRESULT GetAnimationParameters(float *Length, float *FramesPerSecond, long *SubAnimCount, VARIANT_BOOL *pResult)

Parameter:
Length | Länge der Gesamtanimation in Sekunden
FramesPerSecond | Anzahl der Bilder pro Sekunde beim Abspielen der Animation
SubAnimCount | Anzahl der Teilanimationen

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


GetAnimationParametersAsString

Funktionen

GetAnimationParametersAsString

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Liefert die Werte der Funktion GetAnimationParameters zusammengefasst als String. Diese Variante wird im Zusammenhang mit JavaScript genutzt.

Deklaration:
Basic | Function GetAnimationParametersAsString() As String
C/C++ | HRESULT GetAnimationParametersAsString(BSTR *pResult)

Rückgabewert (in C/C++ über pResult): Der zusammengefasste String


GetCollidingObjects

Funktionen

GetCollidingObjects

Wenn sie ein Objekt innerhalb eines O2C-Players mittels Drag & Drop oder per ObjectTranslate verschieben, können Sie mit dieser Funktion ermitteln, mit welchen anderen Objekten ein Objekt kollidiert.

Deklaration:
Basic | Function GetCollidingObjects(ByVal objOrGroupID As Long) As Variant
C/C++ | HRESULT GetCollidingObjects(long objOrGroupID, VARIANT *pResult)

Parameter:
objOrGroupID ID der Gruppe oder des Objektes, welches getestet werden soll

Rückgabewert (in C/C++ über pResult): Array mit den IDs der Objekte, mit denen das Objekt kollidiert


GetCollidingObjectsAsString

Funktionen

GetCollidingObjectsAsString

Liefert die Werte der Funktion GetCollidingObjects zusammengefasst als String. Diese Variante wird im Zusammenhang mit JavaScript genutzt.

Deklaration:
Basic | Function GetCollidingObjectsAsString(ByVal objOrGroupID As Long) As String
C/C++ | HRESULT GetCollidingObjectsAsString(long objOrGroupID, BSTR *pResult)

Parameter:
objOrGroupID ID der Gruppe oder des Objektes

Rückgabewert (in C/C++ über pResult): Der zusammengefasste String


GetLastPickedPosition

Funktionen

GetLastPickedPosition

Liefert die aktuelle Mausposition in verschiedenen Koordinatensystemen. Diese Funktion liefert nur innerhalb eines SubObjectPicked Ereignisses gültige Werte.

JavaScript-Programmierer können diese Werte mit Hilfe der Funktionen GetLastPickedPositionX, GetLastPickedPositionY und GetLastPickedPositionZ ermitteln.

Deklaration:
Basic | Sub GetLastPickedPosition(ByVal whichCoordinateSystem As o2cCoordinateTypes, ByRef x As Single, ByRef y As Single, ByRef z As Single)
C/C++ | HRESULT GetLastPickedPosition(enum o2cCoordinateTypes whichCoordinateSystem, float *x, float *y, float *z)

Parameter:
whichCoordinateSystem | Koordinatensystem, auf das sich die Position beziehen soll. Mögliche Werte siehe o2cCoordinateTypes
x, y, z | Koordinaten der Mausposition


GetLastPickedPositionX

Funktionen

GetLastPickedPositionX

Liefert die X-Komponente der aktuellen Mausposition in verschiedenen Koordinatensystemen. Diese Funktion liefert nur innerhalb eines SubObjectPicked Ereignisses gültige Werte und ist primär für JavaScript-Programmierer gedacht.

Um an die anderen Dimensionen zu gelangen benutzen Sie bitte die Funktionen GetLastPickedPositionY und GetLastPickedPositionZ.

Deklaration:
Basic | Function GetLastPickedPositionX(ByVal whichCoordinateSystem As o2cCoordinateTypes) As Single
C/C++ | HRESULT GetLastPickedPositionX(enum o2cCoordinateTypes whichCoordinateSystem, float *pResult)

Parameter:
whichCoordinateSystem Koordinatensystem, auf das sich die Position beziehen soll. Mögliche Werte siehe o2cCoordinateTypes

Rückgabewert (in C/C++ über pResult): Die X-Komponente der Position


GetLastPickedPositionY

Funktionen

GetLastPickedPositionY

Liefert die Y-Komponente der aktuellen Mausposition in verschiedenen Koordinatensystemen. Diese Funktion liefert nur innerhalb eines SubObjectPicked Ereignisses gültige Werte und ist primär für JavaScript-Programmierer gedacht.

Um an die anderen Dimensionen zu gelangen benutzen Sie bitte die Funktionen GetLastPickedPositionX und GetLastPickedPositionZ.

Deklaration:
Basic | Function GetLastPickedPositionY(ByVal whichCoordinateSystem As o2cCoordinateTypes) As Single
C/C++ | HRESULT GetLastPickedPositionY(enum o2cCoordinateTypes whichCoordinateSystem, float *pResult)

Parameter:
whichCoordinateSystem Koordinatensystem, auf das sich die Position beziehen soll. Mögliche Werte siehe o2cCoordinateTypes

Rückgabewert (in C/C++ über pResult): Die Y-Komponente der Position


GetLastPickedPositionZ

Funktionen

GetLastPickedPositionZ

Liefert die Z-Komponente der aktuellen Mausposition in verschiedenen Koordinatensystemen. Diese Funktion liefert nur innerhalb eines SubObjectPicked Ereignisses gültige Werte und ist primär für JavaScript-Programmierer gedacht.

Um an die anderen Dimensionen zu gelangen benutzen Sie bitte die Funktionen GetLastPickedPositionX und GetLastPickedPositionY.

Deklaration:
Basic | Function GetLastPickedPositionZ(ByVal whichCoordinateSystem As o2cCoordinateTypes) As Single
C/C++ | HRESULT GetLastPickedPositionZ(enum o2cCoordinateTypes whichCoordinateSystem, float *pResult)

Parameter:
whichCoordinateSystem Koordinatensystem, auf das sich die Position beziehen soll. Mögliche Werte siehe o2cCoordinateTypes

Rückgabewert (in C/C++ über pResult): Die Z-Komponente der Position


GetMaterial

Funktionen

GetMaterial

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Liefert die Daten eines Materials. Um festzustellen, wieviele Materialien im aktuell geladenen Objekt verwendet werden, benutzen Sie die Funktion GetMaterialCount.

Deklaration:
Basic | Function GetMaterial(ByVal Index As Long, ByRef colDifuse As Long, ByRef colSpecular As Long, ByRef alpha As Single, ByRef coDifuse As Single, ByRef coAmbient As Single, ByRef coSpecular As Single, ByRef flags As Long) As Boolean
C/C++ | HRESULT GetMaterial(long Index, long *colDifus, long *colSpecular, float *alpha, float *coDifus, float *coAmbient, float *coSpecular, long *flags, VARIANT_BOOL *pResult)

Parameter:
Index | Nummer des Materials (beginnend bei 0)
colDifuse | Farbe (RGB), in der Licht diffus reflektiert wird
colSpecular | Farbe (RGB), in der das Licht spiegelnd/glänzend reflektiert wird
alpha | Faktor der Durchsichtigkeit des Materials
coDifuse | Koeffizient (zwischen 0 und 1) zur Bestimmung der Stärke der diffusen Reflektion
coAmbient | Koeffizient (zwischen 0 und 1) zur Bestimmung der Stärke der Reflektion von ambientem Licht
coSpecular | Koeffizient (zwischen 0 und 1) zur Bestimmung der Stärke der glänzenden Reflektion
flags | Bits zur Bestimmung spezieller Materialeigenschaften

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


GetMaterialAsString

Funktionen

GetMaterialAsString

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Liefert die Werte der Funktion GetMaterial zusammengefasst als String. Diese Variante wird im Zusammenhang mit JavaScript genutzt.

Deklaration:
Basic | Function GetMaterialAsString(ByVal Index As Long) As String
C/C++ | HRESULT GetMaterialAsString(long Index, BSTR *pResult)

Parameter:
Index Nummer des Materials (beginnend bei 0)

Rückgabewert (in C/C++ über pResult): Der zusammengefasste String


GetMaterialCount

Funktionen

GetMaterialCount

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Liefert die Anzahl der vom aktuellen Objekt verwendeten Materialien.

Deklaration:
Basic | Function GetMaterialCount() As Long
C/C++ | HRESULT GetMaterialCount(long *pResult)

Rückgabewert (in C/C++ über pResult): Anzahl der vom aktuellen Objekt verwendeten Materialien


GetPredefinedViewing

Funktionen

GetPredefinedViewing

Objekte können vordefinierte Betrachterstandpunkte enthalten. Mit dieser Funktion können Sie deren Daten ermitteln. Die Anzahl der vordefinierten Betrachterstandpunkte erhalten Sie mit der Funktion NumberOfPredefinedViewings.

Deklaration:
Basic | Function GetPredefinedViewing(ByVal viewingID As Long, ByRef VRPx As Single, ByRef VRPy As Single, ByRef VRPz As Single, ByRef EyeX As Single, ByRef EyeY As Single, ByRef EyeZ As Single, ByRef tanViewAngleHalf As Single, ByRef parallel As Boolean) As Boolean
C/C++ | HRESULT GetPredefinedViewing(long viewingID, float *VRPx, float *VRPy, float *VRPz, float *EyeX, float *EyeY, float *EyeZ, float *tanViewAngleHalf, VARIANT_BOOL *parallel, VARIANT_BOOL *pResult)

Parameter:
viewingID | Index des Standpunktes (bei 0 beginnend)
VRPx, VRPy, VRPz | Weltkoordinaten des View Reference Points (des Punktes, auf den der Betrachter blickt)
EyeX, EyeY, EyeZ | Weltkoordinaten des Augpunktes (des Punktes, von dem aus der Betrachter blickt)
tanViewAngleHalf | Der Tangens des Winkels zwischen dem Strahl vom Augpunkt durch den VRP und dem Strahl zwischen dem Augpunkt und einem Punkt am äußersten Rand der Projektionsfläche. Anders ausgedrückt: die Hälfte der Breite der (sichtbaren) Projektionsfläche geteilt durch den Abstand des Betrachters von dieser Fläche.
parallel | Perspektivisch korrekte Ansicht oder parallele Ansicht

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


GetPredefinedViewingAsString

Funktionen

GetPredefinedViewingAsString

Liefert die Werte der Funktion GetPredefinedViewing zusammengefasst als String. Diese Variante wird im Zusammenhang mit JavaScript genutzt.

Deklaration:
Basic | Function GetPredefinedViewingAsString(ByVal viewingID As Long) As String
C/C++ | HRESULT GetPredefinedViewingAsString(long viewingID, BSTR *pResult)

Parameter:
viewingID ID des Betrachterstandpunktes

Rückgabewert (in C/C++ über pResult): Der zusammengefasste String


GetSubAnimationInfo

Funktionen

GetSubAnimationInfo

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Liefert die Daten einer Teilanimation. Um festzustellen, wieviele Teilanimationen vorhanden sind, benutzen Sie die Funktion GetAnimationParameters. Falls das Objekt keine Animationen unterstützt oder der Parameter Index einen ungültigen Wert hat, liefert die Funktion False.

Deklaration:
Basic | Function GetSubAnimationInfo(ByVal Index As Long, ByRef Name As String, ByRef StartTime As Single, ByRef EndTime As Single) As Boolean
C/C++ | HRESULT GetSubAnimationInfo(long Index, BSTR *Name, float *StartTime, float *EndTime, VARIANT_BOOL *pResult)

Parameter:
Index | Nummer der Teilanimation (beginnend bei 0)
Name | Name der Teilanimation. Falls das Objekt mehrere Sprachen unterstützt, können Sie die Sprache, in der dieser Name geliefert wird, mit Hilfe der Eigenschaft Language einstellen.
StartTime | Zeitpunkt (in Sekunden) der Startzeit dieser Teilanimation
EndTime | Zeitpunkt (in Sekunden) der Endzeit dieser Teilanimation

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


GetSubAnimationInfoAsString

Funktionen

GetSubAnimationInfoAsString

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Liefert die Werte der Funktion GetSubAnimationInfo zusammengefasst als String. Diese Variante wird im Zusammenhang mit JavaScript genutzt.

Deklaration:
Basic | Function GetSubAnimationInfoAsString(ByVal Index As Long) As String
C/C++ | HRESULT GetSubAnimationInfoAsString(long Index, BSTR *pResult)

Parameter:
Index Nummer der Teilanimation (beginnend bei 0)

Rückgabewert (in C/C++ über pResult): Der zusammengefasste String


GetSubObjectName

Funktionen

GetSubObjectName

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Liefert den Namen eines Subobjektes.

Deklaration:
Basic | Function GetSubObjectName(ByVal Index As Long, ByVal Language As String) As String
C/C++ | HRESULT GetSubObjectName(long Index, BSTR Language, BSTR *pResult)

Parameter:
Index | Nummer des Subobjektes (beginnend bei 0)
Language | Sprache, in der der Name geliefert werden soll. Siehe Language. Leerstring für aktuelle Benutzersprache.

Rückgabewert (in C/C++ über pResult): Der Name des Subobjektes


GetTexture

Funktionen

GetTexture

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Liefert den Namen einer Textur. Um festzustellen, wieviele Texturen das aktuell geladene Objekt verwendet, benutzen Sie die Funktion GetTextureCount.

Deklaration:
Basic | Function GetTexture(ByVal Index As Long) As String
C/C++ | HRESULT GetTexture(long Index, BSTR *pResult)

Parameter:
Index Nummer der Textur (beginnend bei 0)

Rückgabewert (in C/C++ über pResult): Name der Textur


GetTextureCount

Funktionen

GetTextureCount

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Liefert die Anzahl der vom aktuellen Objekt verwendeten Texturen.

Deklaration:
Basic | Function GetTextureCount() As Long
C/C++ | HRESULT GetTextureCount(long *pResult)

Rückgabewert (in C/C++ über pResult): Anzahl der vom aktuellen Objekt verwendeten Texturen


GetViewing3D

Funktionen

GetViewing3D

Liefert eine komplette Darstellung der internen Betrachterposition (inklusive aller Änderungen, die der Benutzer durch Durchwanderen, Zoomen oder Verschieben erreicht hat).

Um auch Informationen über die Art der Projektion (perspektivisch oder parallel) zu ermitteln, benutzen Sie bitte die Funktion GetViewing3DEx

Javascript-Programmierer können diese Werte mit Hilfe der Funktion GetViewing3DExAsString ermitteln.

Deklaration:
Basic | Function GetViewing3D(ByRef VRPx As Single, ByRef VRPy As Single, ByRef VRPz As Single, ByRef EyeX As Single, ByRef EyeY As Single, ByRef EyeZ As Single, ByRef tanViewAngleHalf As Single) As Boolean
C/C++ | HRESULT GetViewing3D(float *VRPx, float *VRPy, float *VRPz, float *EyeX, float *EyeY, float *EyeZ, float *tanViewAngleHalf, VARIANT_BOOL *pResult)

Parameter:
VRPx, VRPy, VRPz | Weltkoordinaten des View Reference Points (des Punktes, auf den der Betrachter blickt)
EyeX, EyeY, EyeZ | Weltkoordinaten des Augpunktes (des Punktes, von dem aus der Betrachter blickt)
tanViewAngleHalf | Der Tangens des Winkels zwischen dem Strahl vom Augpunkt durch den VRP und dem Strahl zwischen dem Augpunkt und einem Punkt am äußersten Rand der Projektionsfläche. Anders ausgedrückt: die Hälfte der Breite der (sichtbaren) Projektionsfläche geteilt durch den Abstand des Betrachters von dieser Fläche.

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


GetViewing3DEx

Funktionen

GetViewing3DEx

Liefert eine komplette Darstellung der internen Betrachterposition (inklusive aller Änderungen, die der Benutzer durch Durchwanderen, Zoomen oder Verschieben erreicht hat). Zusätzlich zu den Werten aus GetViewing3D kann hier auch die Art der Projektion (Perspektivisch oder Parallel) ermittelt werden.

Javascript-Programmierer können diese Werte mit Hilfe der Funktion GetViewing3DExAsString ermitteln.

Deklaration:
Basic | Function GetViewing3DEx(ByRef VRPx As Single, ByRef VRPy As Single, ByRef VRPz As Single, ByRef EyeX As Single, ByRef EyeY As Single, ByRef EyeZ As Single, ByRef tanViewAngleHalf As Single, ByRef parallel As Boolean) As Boolean
C/C++ | HRESULT GetViewing3DEx(long viewingID, float *VRPx, float *VRPy, float *VRPz, float *EyeX, float *EyeY, float *EyeZ, float *tanViewAngleHalf, VARIANT_BOOL *parallel, VARIANT_BOOL *pResult)

Parameter:
VRPx, VRPy, VRPz | Weltkoordinaten des View Reference Points (des Punktes, auf den der Betrachter blickt)
EyeX, EyeY, EyeZ | Weltkoordinaten des Augpunktes (des Punktes, von dem aus der Betrachter blickt)
tanViewAngleHalf | Der Tangens des Winkels zwischen dem Strahl vom Augpunkt durch den VRP und dem Strahl zwischen dem Augpunkt und einem Punkt am äußersten Rand der Projektionsfläche. Anders ausgedrückt: die Hälfte der Breite der (sichtbaren) Projektionsfläche geteilt durch den Abstand des Betrachters von dieser Fläche.
parallel | Perspektivisch korrekte Ansicht oder parallele Ansicht

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


GetViewing3DExAsString

Funktionen

GetViewing3DExAsString

Liefert die Werte der Funktion GetViewing3DEx zusammengefasst als String. Diese Variante wird im Zusammenhang mit JavaScript genutzt.

Deklaration:
Basic | Function GetViewing3DExAsString() As String
C/C++ | HRESULT GetViewing3DExAsString(BSTR *pResult)

Rückgabewert (in C/C++ über pResult): Der zusammengefasste String


LoadMaterial

Funktionen

LoadMaterial

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Ersetzt ein Material durch ein geladenes Material (aus einer ArCon Material .INI-Datei). Die Anzahl der insgesamt benutzten Materialien können Sie mit GetMaterialCount ermitteln.

Deklaration:
Basic | Function LoadMaterial(ByVal Index As Long, ByVal MaterialFile As String) As Boolean
C/C++ | HRESULT LoadMaterial(long Index, BSTR FileName, VARIANT_BOOL *pResult)

Parameter:
Index | Der Index des zu ersetzenden Materials (bei 0 beginnend)
MaterialFile | URL oder Dateiname des neuen Materials

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


LoadObject

Funktionen

LoadObject

Lädt ein Objekt aus einer lokalen Datei. Wenn die Datei gefunden wurde und ein gültiges Objekt enthält, liefert die Funktion True, ansonsten False.

Diese Funktion entspricht (bis auf den Sonderfall des leeren Parameters FileName) dem Zuweisen einer file:// URL an die Eigenschaft ObjectURL.

Deklaration:
Basic | Function LoadObject(ByVal FileName As String) As Boolean
C/C++ | HRESULT LoadObject(BSTR FileName, VARIANT_BOOL *pResult);

Parameter:
FileName Der Name der zu ladenden Datei. Ist dieser Name leer, wird ein Dialog geöffnet und der Benutzer kann ein Objekt auswählen.

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


NameOfPredefinedViewing

Funktionen

NameOfPredefinedViewing

Objekte können vordefinierte Betrachterstandpunkte enthalten. Mit dieser Funktion können Sie deren Namen ermitteln. Die Anzahl der vordefinierten Betrachterstandpunkte erhalten Sie mit der Funktion NumberOfPredefinedViewings.

Deklaration:
Basic | Function NameOfPredefinedViewing(ByVal viewingID As Long, ByVal language As String) As String
C/C++ | HRESULT NameOfPredefinedViewing(long viewingID, BSTR language, BSTR *pResult)

Parameter:
viewingID | Index des Standpunktes (bei 0 beginnend)
language | Sprache, in der der Name abgerufen werden soll. Siehe Language

Rückgabewert (in C/C++ über pResult): Name des Standpunktes


NewGroup

Funktionen

NewGroup

Sie können mehrere Objekte innerhalb des O2C-Players zu einer Gruppe zusammenfassen. Diese Gruppe kann dann mit den meisten Funktionen verwendet werden, die eine Objekt-ID als Parameter erwarten. Dadurch ersparen Sie sich beispielsweise das gleichartige Verschieben oder Rotieren von vielen einzelnen Objekten.

Benutzen Sie die Funktion ObjectAddChild um Objekte oder auch andere Gruppen zu dieser Gruppe hinzuzufügen. Falls Sie ein Objekt wieder aus dieser Gruppe entfernen möchten, erreichen Sie dies mit der Funktion ObjectRemoveChild.

Deklaration:
Basic | Function NewGroup As Long
C/C++ | HRESULT NewGroup(long * pResult)

Rückgabewert (in C/C++ über pResult): Die ID der neu erzeugten Gruppe


NumberOfPredefinedViewings

Funktionen

NumberOfPredefinedViewings

Objekte können vordefinierte Betrachterstandpunkte enthalten. Mit Hilfe dieser Funktion können Sie deren Anzahl ermitteln.

Deklaration:
Basic | Function NumberOfPredefinedViewings() As Long
C/C++ | HRESULT NumberOfPredefinedViewings(long *pResult)

Rückgabewert (in C/C++ über pResult): Anzahl der vordefinierten Betrachterstandpunkte


ObjectAddChild

Funktionen

ObjectAddChild

Mit dieser Funktion können Sie Objekte oder Gruppen in eine Gruppe einfügen.

Deklaration:
Basic | Function ObjectAddChild(ByVal grpID As Long, ByVal idOfChild As Long) As Long
C/C++ | HRESULT ObjectAddChild(long grpID, long idOfChild, long *pResult)

Parameter:
grpID | ID der Gruppe
idOfChild | ID des hinzuzufügenden Objektes oder Gruppe

Rückgabewert (in C/C++ über pResult): Index des Objektes innerhalb der Gruppe


ObjectAddChildKeepPos

Funktionen

ObjectAddChildKeepPos

Mit dieser Funktion können Sie Objekte oder Gruppen in eine Gruppe einfügen, ohne deren Weltkoordinaten zu ändern.

Deklaration:
Basic | Function ObjectAddChildKeepPos(ByVal grpID As Long, ByVal idOfChild As Long) As Long
C/C++ | HRESULT ObjectAddChildKeepPos(long grpID, long idOfChild, long *pResult)

Parameter:
grpID | ID der Gruppe
idOfChild | ID des hinzuzufügenden Objektes oder Gruppe

Rückgabewert (in C/C++ über pResult): Index des Objektes innerhalb der Gruppe


ObjectDelete

Funktionen

ObjectDelete

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Löscht das aktuelle Objekt. Das Objekt verbleibt aber noch im Cache, so daß normalerweise dieser Aufruf das Objekt lediglich unsichtbar macht. Sollte allerdings der Objekt-Cache gefüllt sein, ist dieses Objekt nun löschbar und wird bei Bedarf (oder explizitem Aufruf der Funktion FlushCaches) gelöscht.

Der Objektindex bleibt gültig, dieses Objekt wird wie ein unsichtbares, noch nicht geladenes Objekt behandelt. Sollten Sie es später noch einmal benötigen, können Sie es mit ObjectShow erneut sichtbar machen wozu es dann eventuell neu geladen wird.

Deklaration:
Basic | Function ObjectDelete() As Boolean
C/C++ | HRESULT ObjectDelete(VARIANT_BOOL *pResult)

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


ObjectDrop

Funktionen

ObjectDrop

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Diese Funktion läßt das aktuelle Objekt fallen, bis dieses mit einem anderen Objekt kollidiert oder die Welt verläßt. Wenn der Parameter animated auf True steht, fällt das Objekt langsam an seine entgültige Position, andernfalls landet es sofort an seiner finalen Position.

Es wird ein ObjectMove Ereignis ausgelöst, sobald das Objekt gelandet ist

Deklaration:
Basic | Function ObjectDrop(ByVal animated As Boolean, ByVal minDropHeight As Single, ByVal dropsDown As Boolean) As Boolean
C/C++ | HRESULT ObjectDrop(VARIANT_BOOL animated, float minDropHeight, VARIANT_BOOL dropsDown, VARIANT_BOOL *pResult)

Parameter:
animated | Animierte Bewegung beim Fallen des Objektes
minDropHeight | Zielhöhe, auf die das Objekt fallen soll
dropsDown | True, wenn das Objekt nach unten fallen soll, False für eine Bewegung nach oben

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


ObjectForceLoad

Funktionen

ObjectForceLoad

Diese Funktion erzwingt den Download eines Objektes, das mit AddObject geladen wurde. Normalerweise wird ein Objekt erst heruntergeladen, wenn es mittels ObjectShow sichtbar gemacht wird. Der Download findet im Hintergrund statt.

Deklaration:
Basic | Function ObjectForceLoad(ByVal objID As Long) As Boolean
C/C++ | HRESULT ObjectForceLoad(long objID, VARIANT_BOOL *pResult)

Parameter:
objID ID des Objektes

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


ObjectGetChild

Funktionen

ObjectGetChild

Mit dieser Funktion können Sie ermitteln, welche ID ein Element einer Gruppe hat.

Um zu ermitteln, wie viele Kindobjekte eine Gruppe hat, können Sie die Funktion ObjectGetChildCount verwenden.

Deklaration:
Basic | Function ObjectGetChild(ByVal grpID As Long, ByVal index As Long) As Long
C/C++ | HRESULT ObjectGetChild(long grpID, long index, long *pResult)

Parameter:
grpID | ID der Gruppe
index | Index des Kindobjektes (beginnend bei 0)

Rückgabewert (in C/C++ über pResult): ID des Kindobjektes


ObjectGetChildCount

Funktionen

ObjectGetChildCount

Mit dieser Funktion können Sie die Anzahl der Kindobjekte einer Gruppe ermitteln.

Deklaration:
Basic | Function ObjectGetChildCount(ByVal grpID As Long) As Long
C/C++ | HRESULT ObjectGetChildCount(long grpID, long *pResult)

Parameter:
grpID ID der Gruppe

Rückgabewert (in C/C++ über pResult): Anzahl der Kindobjekte der Gruppe


ObjectGetCurPos

Funktionen

ObjectGetCurPos

Diese Funktion liefert die aktuelle Position eines Objektes oder einer Gruppe.

JavaScript-Programmierer können diese Werte mit Hilfe der Funktionen ObjectGetCurPosX, ObjectGetCurPosY und ObjectGetCurPosZ ermitteln.

Deklaration:
Basic | Function ObjectGetCurPos(ByVal objOrGrpID As Long, ByRef x As Single, ByRef y As Single, ByRef z As Single) As Boolean
C/C++ | HRESULT ObjectGetCurPos(long objOrGrpID, float *x, float *y, float *z, VARIANT_BOOL *pResult)

Parameter:
objOrGrpID | ID des Objektes oder der Gruppe
x, y, z | Aktuelle Position der Gruppe oder des Objektes

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


ObjectGetCurPosX

Funktionen

ObjectGetCurPosX

Diese Funktion liefert die X-Komponente der aktuellen Position eines Objektes oder einer Gruppe.

Dieses ist die Javascript-Kompatible Version von ObjectGetCurPos. Um an die anderen Dimensionen zu gelangen benutzen Sie bitte die Funktionen ObjectGetCurPosY und ObjectGetCurPosZ.

Deklaration:
Basic | Function ObjectGetCurPosX(ByVal objOrGrpID As Long) As Single
C/C++ | HRESULT ObjectGetCurPosX(long objOrGrpID, float *pResult)

Parameter:
objOrGrpID ID des Objektes oder der Gruppe

Rückgabewert (in C/C++ über pResult): X-Komponente der aktuellen Position


ObjectGetCurPosY

Funktionen

ObjectGetCurPosY

Diese Funktion liefert die Y-Komponente der aktuellen Position eines Objektes oder einer Gruppe.

Dieses ist die Javascript-Kompatible Version von ObjectGetCurPos. Um an die anderen Dimensionen zu gelangen benutzen Sie bitte die Funktionen ObjectGetCurPosX und ObjectGetCurPosZ.

Deklaration:
Basic | Function ObjectGetCurPosY(ByVal objOrGrpID As Long) As Single
C/C++ | HRESULT ObjectGetCurPosY(long objOrGrpID, float *pResult)

Parameter:
objOrGrpID ID des Objektes oder der Gruppe

Rückgabewert (in C/C++ über pResult): Y-Komponente der aktuellen Position


ObjectGetCurPosZ

Funktionen

ObjectGetCurPosZ

Diese Funktion liefert die Z-Komponente der aktuellen Position eines Objektes oder einer Gruppe.

Dieses ist die Javascript-Kompatible Version von ObjectGetCurPos. Um an die anderen Dimensionen zu gelangen benutzen Sie bitte die Funktionen ObjectGetCurPosX und ObjectGetCurPosY.

Deklaration:
Basic | Function ObjectGetCurPosZ(ByVal objOrGrpID As Long) As Single
C/C++ | HRESULT ObjectGetCurPosZ(long objOrGrpID, float *pResult)

Parameter:
objOrGrpID ID des Objektes oder der Gruppe

Rückgabewert (in C/C++ über pResult): Z-Komponente der aktuellen Position


ObjectGetExtend

Funktionen

ObjectGetExtend

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Liefert die Größe der Bounding-Box des aktuellen Objektes. Wenn der Parameter Scale = True ist, wird die aktuelle Größe des Objektes nach erfolgter Transformation geliefert (als Axis-Aligned-Boundingbox!), ist dieser Parameter = False wird die Originalgröße des Objektes (die Boundingbox im Modellkoordinatensystem des Objektes) geliefert.

JavaScript-Programmierer können diese Werte mit Hilfe der Funktionen ObjectGetExtendX, ObjectGetExtendY und ObjectGetExtendZ ermitteln.

Deklaration:
Basic | Function ObjectGetExtend(ByVal scaled As Boolean, ByVal dx As Single, ByVal dy As Single, ByVal dz As Single) As Boolean
C/C++ | HRESULT ObjectGetExtend(VARIANT_BOOL scaled, float *dx, float *dy, float *dz, VARIANT_BOOL *pResult)

Parameter:
scaled | Werte mit oder ohne Transformation, s.o.
dx | Größe des Objektes in X-Richtung
dy | Größe des Objektes in Y-Richtung
dz | Größe des Objektes in Z-Richtung

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


ObjectGetExtendX

Funktionen

ObjectGetExtendX

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Liefert die X-Komponente der Größe der Bounding-Box des aktuellen Objektes. Wenn der Parameter Scale = True ist, wird die aktuelle Größe des Objektes nach erfolgter Transformation geliefert (als Axis-Aligned-Boundingbox!), ist dieser Parameter = False wird die Originalgröße des Objektes (die Boundingbox im Modellkoordinatensystem des Objektes) geliefert.

Dieses ist die Javascript-Kompatible Version von ObjectGetExtend. Um an die anderen Dimensionen zu gelangen benutzen Sie bitte die Funktionen ObjectGetExtendY und ObjectGetExtendZ.

Deklaration:
Basic | Function ObjectGetExtendX(ByVal scaled As Boolean) As Single
C/C++ | HRESULT ObjectGetExtendX(VARIANT_BOOL scaled, float *pResult)

Parameter:
scaled Werte mit oder ohne Transformation, s.o.

Rückgabewert (in C/C++ über pResult): Die X-Komponente der Größe


ObjectGetExtendY

Funktionen

ObjectGetExtendY

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Liefert die Y-Komponente der Größe der Bounding-Box des aktuellen Objektes. Wenn der Parameter Scale = True ist, wird die aktuelle Größe des Objektes nach erfolgter Transformation geliefert (als Axis-Aligned-Boundingbox!), ist dieser Parameter = False wird die Originalgröße des Objektes (die Boundingbox im Modellkoordinatensystem des Objektes) geliefert.

Dieses ist die Javascript-Kompatible Version von ObjectGetExtend. Um an die anderen Dimensionen zu gelangen benutzen Sie bitte die Funktionen ObjectGetExtendX und ObjectGetExtendZ.

Deklaration:
Basic | Function ObjectGetExtendY(ByVal scaled As Boolean) As Single
C/C++ | HRESULT ObjectGetExtendY(VARIANT_BOOL scaled, float *pResult)

Parameter:
scaled Werte mit oder ohne Transformation, s.o.

Rückgabewert (in C/C++ über pResult): Die Y-Komponente der Größe


ObjectGetExtendZ

Funktionen

ObjectGetExtendZ

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Liefert die Z-Komponente der Größe der Bounding-Box des aktuellen Objektes. Wenn der Parameter Scale = True ist, wird die aktuelle Größe des Objektes nach erfolgter Transformation geliefert (als Axis-Aligned-Boundingbox!), ist dieser Parameter = False wird die Originalgröße des Objektes (die Boundingbox im Modellkoordinatensystem des Objektes) geliefert.

Diese ist die Javascript-Kompatible Version von ObjectGetExtend. Um an die anderen Dimensionen zu gelangen benutzen Sie bitte die Funktionen ObjectGetExtendX und ObjectGetExtendY.

Deklaration:
Basic | Function ObjectGetExtendZ(ByVal scaled As Boolean) As Single
C/C++ | HRESULT ObjectGetExtendZ(VARIANT_BOOL scaled, float *pResult)

Parameter:
scaled Werte mit oder ohne Transformation, s.o.

Rückgabewert (in C/C++ über pResult): Die Z-Komponente der Größe


ObjectGetParent

Funktionen

ObjectGetParent

Ermittelt die nächst übergeordnete Gruppe zu der ein Objekt gehört oder -1, wenn das Objekt kein Element einer Gruppe ist.

Deklaration:
Basic | Function ObjectGetParent(ByVal objOrGrpID As Long) As Long
C/C++ | HRESULT ObjectGetParent(long objOrGrpID, long *pResult)

Parameter:
objOrGrpID ID der Gruppe oder des Objektes

Rückgabewert (in C/C++ über pResult): ID der nächst übergeordneten Gruppe


ObjectGetPositionAsString

Funktionen

ObjectGetPositionAsString

Liefert die die gesamte Objektposition zusammengefasst als String. Diese Variante wird im Zusammenhang mit JavaScript genutzt.

Deklaration:
Basic | Function ObjectGetPositionAsString(ByVal objOrGroupID As Long) As String
C/C++ | HRESULT ObjectGetPositionAsString(long objOrGroupID, BSTR *pResult)

Parameter:
objOrGroupID ID des Objektes oder der Gruppe

Rückgabewert (in C/C++ über pResult): Der zusammengefasste String


ObjectGetRealPos

Funktionen

ObjectGetRealPos

Diese Funktion liefert die absolute aktuelle Position eines Objektes oder einer Gruppe.

JavaScript-Programmierer können diese Werte mit Hilfe der Funktionen ObjectGetRealPosX, ObjectGetRealPosY und ObjectGetRealPosZ ermitteln. Alternativ können Sie auch dir Funktion ObjectGetRealPositionAsString verwenden.

Deklaration:
Basic | Function ObjectGetRealPos(ByVal objOrGrpID As Long, ByRef x As Single, ByRef y As Single, ByRef z As Single) As Boolean
C/C++ | HRESULT ObjectGetRealPos(long objOrGrpID, float *x, float *y, float *z, VARIANT_BOOL *pResult)

Parameter:
objOrGrpID | ID des Objektes oder der Gruppe
x, y, z | Aktuelle Position der Gruppe oder des Objektes

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


ObjectGetRealPositionAsString

Funktionen

ObjectGetRealPositionAsString

Liefert die Werte der Funktion ObjectGetRealPos zusammengefasst als String. Diese Variante wird im Zusammenhang mit JavaScript genutzt.

Deklaration:
Basic | Function ObjectGetRealPositionAsString(ByVal objOrGroupID As Long) As String
C/C++ | HRESULT ObjectGetRealPositionAsString(long objOrGroupID, BSTR *pResult)

Parameter:
objOrGroupID ID des Objektes oder der Gruppe

Rückgabewert (in C/C++ über pResult): Der zusammengefasste String


ObjectGetRealPosX

Funktionen

ObjectGetRealPosX

Diese Funktion liefert die X-Komponente der absoluten aktuellen Position eines Objektes oder einer Gruppe.

Dieses ist die Javascript-Kompatible Version von ObjectGetRealPos. Um an die anderen Dimensionen zu gelangen benutzen Sie bitte die Funktionen ObjectGetRealPosY und ObjectGetRealPosZ.

Deklaration:
Basic | Function ObjectGetRealPosX(ByVal objOrGrpID As Long) As Single
C/C++ | HRESULT ObjectGetRealPosX(long objOrGrpID, float *pResult)

Parameter:
objOrGrpID ID des Objektes oder der Gruppe

Rückgabewert (in C/C++ über pResult): X-Komponente der aktuellen Position


ObjectGetRealPosY

Funktionen

ObjectGetRealPosY

Diese Funktion liefert die Y-Komponente der absoluten aktuellen Position eines Objektes oder einer Gruppe.

Dieses ist die Javascript-Kompatible Version von ObjectGetRealPos. Um an die anderen Dimensionen zu gelangen benutzen Sie bitte die Funktionen ObjectGetRealPosX und ObjectGetRealPosZ.

Deklaration:
Basic | Function ObjectGetRealPosY(ByVal objOrGrpID As Long) As Single
C/C++ | HRESULT ObjectGetRealPosY(long objOrGrpID, float *pResult)

Parameter:
objOrGrpID ID des Objektes oder der Gruppe

Rückgabewert (in C/C++ über pResult): Y-Komponente der aktuellen Position


ObjectGetRealPosZ

Funktionen

ObjectGetRealPosZ

Diese Funktion liefert die Z-Komponente der absoluten aktuellen Position eines Objektes oder einer Gruppe.

Dieses ist die Javascript-Kompatible Version von ObjectGetRealPos. Um an die anderen Dimensionen zu gelangen benutzen Sie bitte die Funktionen ObjectGetRealPosX und ObjectGetRealPosY.

Deklaration:
Basic | Function ObjectGetRealPosZ(ByVal objOrGrpID As Long) As Single
C/C++ | HRESULT ObjectGetRealPosZ(long objOrGrpID, float *pResult)

Parameter:
objOrGrpID ID des Objektes oder der Gruppe

Rückgabewert (in C/C++ über pResult): Z-Komponente der aktuellen Position


ObjectGetUserData

Funktionen

ObjectGetUserData

Falls Sie mittels der Funktion ObjectSetUserData benutzerdefinierte Daten innerhalb eines Objektes gespeichert haben, können Sie diese mit Hilfe der Funktion ObjectGetUserData wieder abrufen.

Deklaration:
Basic | Function ObjectGetUserData(ByVal objOrGroupID As Long) As String
C/C++ | HRESULT ObjectGetUserData(long objOrGroupID, BSTR *userData)

Parameter:
objOrGroupID ID der Gruppe oder des Objektes

Rückgabewert (in C/C++ über pResult): Die von Ihnen eingesetzten Daten


ObjectIsGroup

Funktionen

ObjectIsGroup

Mit dieser Funktion können Sie testen, ob es sich bei einer ID um eine Gruppe oder ein Objekt handelt.

Deklaration:
Basic | Function ObjectIsGroup(ByVal grpID As Long) As Boolean
C/C++ | HRESULT ObjectIsGroup(long grpID, VARIANT_BOOL *pResult)

Parameter:
grpID ID der zu testenden Gruppe

Rückgabewert (in C/C++ über pResult): True, wenn es sich um eine Gruppe handelt, ansonsten False


ObjectIsLoaded

Funktionen

ObjectIsLoaded

Mit dieser Funktion können Sie prüfen, ob ein mit AddObject, hinzugefügtes Objekt bereits komplett geladen wurde.

Deklaration:
Basic | Function ObjectIsLoaded(ByVal objID As Long) As Boolean
C/C++ | HRESULT ObjectIsLoaded(long objID, VARIANT_BOOL *pResult)

Parameter:
objID ID des Objektes

Rückgabewert (in C/C++ über pResult): True, wenn das Objektes vollständig geladen wurde, ansonsten False


ObjectMayMove

Funktionen

ObjectMayMove

Mit dieser Funktion steuern Sie die Beweglichkeit von Objekten oder Gruppen. Mögliche Werte für diese Option finden Sie unter o2cMoveFlags.

Deklaration:
Basic | Function ObjectMayMove(ByVal objOrGrpID As Long, ByVal flags As Long) As Boolean
C/C++ | HRESULT ObjectMayMove(long objOrGrpID, long flags, VARIANT_BOOL *pResult)

Parameter:
objOrGrpID | ID der Gruppe oder des Objektes
flags | Bitmaske zur Steuerung der Bewegung. Mögliche Werte finden Sie unter o2cMoveFlags

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


ObjectRemoveChild

Funktionen

ObjectRemoveChild

Mit dieser Funktion können Sie ein Objekt, das Sie mit ObjectAddChild in eine Gruppe eingefügt haben, wieder aus dieser lösen.

Um zu ermitteln, wie viele Kindobjekte eine Gruppe hat, können Sie die Funktion ObjectGetChildCount verwenden.

Deklaration:
Basic | Function ObjectRemoveChild(ByVal grpID As Long, ByVal index As Long) As Boolean
C/C++ | HRESULT ObjectRemoveChild(long grpID, long index, VARIANT_BOOL *pResult)

Parameter:
grpID | ID der Gruppe
index | Index des Kindobjektes (dies ist der Wert, der von ObjectAddChild zurückgeliefert wird)

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


ObjectRemoveChildKeepPos

Funktionen

ObjectRemoveChildKeepPos

Mit dieser Funktion können Sie ein Objekt, das Sie mit ObjectAddChild in eine Gruppe eingefügt haben, wieder aus dieser lösen ohne dessen Weltkoordinaten zu ändern

Um zu ermitteln, wie viele Kindobjekte eine Gruppe hat, können Sie die Funktion ObjectGetChildCount verwenden.

Deklaration:
Basic | Function ObjectRemoveChildKeepPos(ByVal grpID As Long, ByVal index As Long) As Boolean
C/C++ | HRESULT ObjectRemoveChildKeepPos(long grpID, long index, VARIANT_BOOL *pResult)

Parameter:
grpID | ID der Gruppe
index | Index des Kindobjektes (dies ist der Wert, der von ObjectAddChild zurückgeliefert wird)

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


ObjectResetPosition

Funktionen

ObjectResetPosition

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Alle Positionierungsangaben zum aktuellen Objekt werden verworfen, das Objekt wird wieder in seine Originalgröße und Drehung versetzt und in die Mitte der betrachteten Welt geschoben.

Deklaration:
Basic | Function ObjectResetPosition() As Boolean
C/C++ | HRESULT ObjectResetPosition(VARIANT_BOOL *pResult)

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


ObjectRotate

Funktionen

ObjectRotate

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Dreht das Objekt um eine beliebige Achse, deren Richtungsvektor in den Parametern axisVectorX, axisVectorY und axisVectorZ übergeben wird.

Das Objekt wird um den Ursprung gedreht. Wenn Sie das Objekt an seiner aktuellen Position drehen möchten, verwenden Sie bitte ObjectTurn.

Deklaration:
Basic | Function ObjectRotate(ByVal axisVectorX As Single, ByVal axisVectorY As Single, ByVal axisVectorZ As Single, ByVal angle As Single) As Boolean
C/C++ | HRESULT ObjectRotate(float axisVectorX, float axisVectorY, float axisVectorZ, float angle, VARIANT_BOOL *pResult)

Parameter:
axisVectorX, axisVectorY, axisVectorZ | Der Richtungsvektor der Achse, um die das Objekt gedreht werden soll. Soll das Objekt zum Beispiel nach hinten kippen, drehen Sie es um die X-Achse, indem Sie als Vektor 1, 0 und 0 angeben
angle | Der Winkel der Drehung in Grad

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


ObjectScale

Funktionen

ObjectScale

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Skaliert das aktuelle Objekt in alle Richtungen.

Deklaration:
Basic | Function ObjectScale(ByVal scaleX As Single, ByVal scaleY As Single, ByVal scaleZ As Single) As Boolean
C/C++ | HRESULT ObjectScale(float scaleX, float scaleY, float scaleZ, VARIANT_BOOL *pResult)

Parameter:
scaleX, scaleY, scaleZ Die Faktoren, um die das Objekt in X,Y und Z Richtung vergrößert (Wert ist größer als 1) oder verkleinert (Wert ist kleiner als 1) werden.

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


ObjectSetHighlightedSubObject

Funktionen

ObjectSetHighlightedSubObject

Falls der Wert der Eigenschaft DisplayMode das Bit o2cDispFlagAlltrans (dezimal 32) enthält, wird ein einzelnes SubObjekt hervorgehoben dargestellt, indem die übrigen SubObjekte transparent gezeigt werden. Mit dieser Funktion wird das einzige nicht-transparente SubObjekt ausgewühlt, -1 schaltet die Hervorhebung ab.

Deklaration:
Basic | Function ObjectSetHighlightedSubObject(ByVal SubObjectIndex As Long) As Boolean
C/C++ | HRESULT ObjectSetHighlightedSubObject(long SubObjectIndex, VARIANT_BOOL *pResult)

Parameter:
SubObjectIndex Index des hervorzuhebenden SubObjektes.

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


ObjectSetPositionFromString

Funktionen

ObjectSetPositionFromString

Setzt die gesamte Objektposition zusammengefasst als String (für JavaScript).

Siehe auch ObjectGetPositionAsString.

Deklaration:
Basic | Function ObjectSetPositionFromString(ByVal objOrGroupID As Long, ByVal position As String) As Boolean
C/C++ | HRESULT ObjectSetPositionFromString(long objOrGroupID, BSTR position, VARIANT_BOOL *pResult)

Parameter:
objOrGroupID | ID der Gruppe oder des Objektes
position | Die Position zusammengefasst als String

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


ObjectSetUserData

Funktionen

ObjectSetUserData

Mit Hilfe dieser Funktion können Sie Benutzerdefinierte Daten innerhalb eines Objektes speichern. Diese Daten können später mit Hilfe der Funktion ObjectGetUserData wieder abgerufen werden.

Dieser String wird vom O2C-Player intern nicht ausgewertet, d.h., dass Sie hier beliebige Daten wie z.B. Datenbankschlüssel, Texte oder auch binäre Daten zwischenspeichern können.

Deklaration:
Basic | Sub ObjectSetUserData(ByVal objOrGroupID As Long, ByVal userData As String)
C/C++ | HRESULT ObjectSetUserData(long objOrGroupID, BSTR userData)

Parameter:
objOrGroupID | ID der Gruppe oder des Objektes, in dem Daten gespeichert werden sollen
userData | Ihre Daten


ObjectShow

Funktionen

ObjectShow

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Macht das aktuelle Objekt sichtbar oder unsichtbar. Falls das Objekt (noch) nicht geladen ist, wird es geladen, sobald es angezeigt werden soll.

Deklaration:
Basic | Function ObjectShow(ByVal displayObject As Boolean) As Boolean
C/C++ | HRESULT ObjectShow(VARIANT_BOOL displayObject, VARIANT_BOOL *pResult)

Parameter:
displayObject True, um das Objekt sichtbar zu machen, False um es zu verbergen

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


ObjectSwitchLight

Funktionen

ObjectSwitchLight

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Schaltet die Lampen im aktuellen Objekt an- oder aus.

Deklaration:
Basic | Function ObjectSwitchLight(ByVal lightsOn As Boolean) As Boolean
C/C++ | HRESULT ObjectSwitchLight(VARIANT_BOOL lightsOn, VARIANT_BOOL *pResult)

Parameter:
lightsOn Gibt an, ob die Lampen an (True) oder aus (False) geschaltet werden sollen

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


ObjectTranslate

Funktionen

ObjectTranslate

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Verschiebt das aktuelle Objekt.

Deklaration:
Basic | Function ObjectTranslate(ByVal x As Single, ByVal y As Single, ByVal z As Single) As Boolean
C/C++ | HRESULT ObjectTranslate(float x, float y, float z, VARIANT_BOOL *pResult)

Parameter:
x, y, z Gibt an, wie weit das Objekt in der jeweiligen Richtung geschoben werden soll (in Meter).

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


ObjectTranslate2

Funktionen

ObjectTranslate2

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Verschiebt das aktuelle Objekt um den angegebenen Vektor.

Deklaration:
Basic | Function ObjectTranslate2(ByVal x As Single, ByVal y As Single, ByVal z As Single) As Boolean
C/C++ | HRESULT ObjectTranslate2(float x, float y, float z, VARIANT_BOOL *pResult)

Parameter:
x, y, z Gibt an, wie weit das Objekt in der jeweiligen Richtung geschoben werden soll (in Meter).

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


ObjectTurn

Funktionen

ObjectTurn

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Dreht das Objekt um eine beliebige Achse, deren Richtungsvektor in den Parametern axisVectorX, axisVectorY und axisVectorZ übergeben wird.

Im Gegensatz zu ObjectRotate wird das Objekt nicht um den Ursprung gedreht, sondern an seiner aktuellen Position

Deklaration:
Basic | Function ObjectTurn(ByVal axisVectorX As Single, ByVal axisVectorY As Single, ByVal axisVectorZ As Single, ByVal angle As Single) As Boolean
C/C++ | HRESULT ObjectTurn(float axisVectorX, float axisVectorY, float axisVectorZ, float angle, VARIANT_BOOL *pResult)

Parameter:
axisVectorX, axisVectorY, axisVectorZ | Der Richtungsvektor der Achse, um die das Objekt gedreht werden soll. Soll das Objekt zum Beispiel nach hinten kippen, drehen Sie es um die X-Achse, indem Sie als Vektor 1, 0 und 0 angeben
angle | Der Winkel der Drehung in Grad

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


OneTimeRaytrace

Funktionen

OneTimeRaytrace

Berechnet einmalig eine Raytrace-Ansicht (ohne den Darstellungsmodus, DisplayMode, permanent zu verändern). Dies entpricht dem Klick auf den "R" Button (falls dieser sichtbar ist).

Deklaration:
Basic | Sub OneTimeRaytrace()
C/C++ | HRESULT OneTimeRaytrace()


Refresh

Funktionen

Refresh

Erzwingt ein Neuzeichnen des O2C-Players.

Deklaration:
Basic | Sub Refresh()
C/C++ | HRESULT Refresh()


RegisterChunkNotify

Funktionen

RegisterChunkNotify

O2C-Objekte können erzeuger-spezifische Daten (sogenannte "Chunks") enthalten. Falls Sie mit dieser Funktion einen Chunktyp registrieren, werden Sie mit dem Ereignis ChunkDataAvailable benachrichtigt, sobald ein Objekt mit dem registrierten Chunk geladen wurde.

Sie sollten diese Funktion aufrufen, bevor Sie das erste mal ein Objekt in den O2C-Player laden.

Deklaration:
Basic | Function RegisterChunkNotify(ByVal chunkID As Long, ByVal wantNotification As Boolean) As Boolean
C/C++ | HRESULT RegisterChunkNotify(long chunkID, VARIANT_BOOL wantNotification, VARIANT_BOOL *pResult)

Parameter:
chunkID | Die ID des Chunktyps, den Sie registrieren möchten
wantNotification | Schaltet die Benachrichtigung ein oder aus

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


ReplaceMaterial

Funktionen

ReplaceMaterial

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Ändert die Daten eines Materials. Um festzustellen, wieviele Materialien im aktuell geladenen Objekt verwendet werden, benutzen Sie die Funktion GetMaterialCount.

Deklaration:
Basic | Function ReplaceMaterial(ByVal Index As Long, ByVal colDifuse As Long, ByVal colSpecular As Long, ByVal alpha As Single, ByVal coDifuse As Single, ByVal coAmbient As Single, ByVal coSpecular As Single, ByVal flags As Long) As Boolean
C/C++ | HRESULT ReplaceMaterial(long Index, long colDifus, long colSpecular, float alpha, float coDifus, float coAmbient, float coSpecular, long flags, VARIANT_BOOL *pResult)

Parameter:
Index | Nummer des Materials (beginnend bei 0)
colDifuse | Farbe (RGB), in der Licht diffus reflektiert wird
colSpecular | Farbe (RGB), in der das Licht spiegelnd/glänzend reflektiert wird
alpha | Faktor der Durchsichtigkeit des Materials
coDifuse | Koeffizient (zwischen 0 und 1) zur Bestimmung der Stärke der diffusen Reflektion
coAmbient | Koeffizient (zwischen 0 und 1) zur Bestimmung der Stärke der Reflektion von ambientem Licht
coSpecular | Koeffizient (zwischen 0 und 1) zur Bestimmung der Stärke der glänzenden Reflektion.
flags | Bits zur Bestimmung spezieller Materialeigenschaften

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


ReplaceMaterialEx

Funktionen

ReplaceMaterialEx

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Ändert die Daten eines Materials. Diese Funktion entspricht ReplaceMaterial, wobei jedoch der Parameter refractionCoef hinzugekommen ist. Um festzustellen, wieviele Materialien im aktuell geladenen Objekt verwendet werden, benutzen Sie die Funktion GetMaterialCount.

Deklaration:
Basic | Function ReplaceMaterialEx(ByVal Index As Long, ByVal colDifuse As Long, ByVal colSpecular As Long, ByVal alpha As Single, ByVal coDifuse As Single, ByVal coAmbient As Single, ByVal coSpecular As Single, ByVal flags As Long, ByVal refractionCoef As Single) As Boolean
C/C++ | HRESULT ReplaceMaterialEx(long Index, long colDifus, long colSpecular, float alpha, float coDifus, float coAmbient, float coSpecular, long flags, float refractionCoef, VARIANT_BOOL *pResult)

Parameter:
Index | Nummer des Materials (beginnend bei 0)
colDifuse | Farbe (RGB), in der Licht diffus reflektiert wird
colSpecular | Farbe (RGB), in der das Licht spiegelnd/glänzend reflektiert wird
alpha | Faktor der Durchsichtigkeit des Materials
coDifuse | Koeffizient (zwischen 0 und 1) zur Bestimmung der Stärke der diffusen Reflektion
coAmbient | Koeffizient (zwischen 0 und 1) zur Bestimmung der Stärke der Reflektion von ambientem Licht
coSpecular | Koeffizient (zwischen 0 und 1) zur Bestimmung der Stärke der glänzenden Reflektion.
flags | Bits zur Bestimmung spezieller Materialeigenschaften
refractionCoef | Koeffizient (zwischen 0 und 1) zur Bestimmung der Stärke der Refraktion.

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


ReplaceTexture

Funktionen

ReplaceTexture

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Ersetzt eine Textur. Um festzustellen, wieviele Texturen das aktuell geladene Objekt verwendet, benutzen Sie die Funktion GetTextureCount.

Deklaration:
Basic | Function ReplaceTexture(ByVal Index As Long, ByVal TextureName As String) As Boolean
C/C++ | HRESULT GetTexture(long Index, BSTR TextureName, VARIANT_BOOL *pResult)

Parameter:
Index | Nummer der Textur (beginnend bei 0)
TextureName | Dateiname (oder URL) der neuen Textur

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


SaveACOObject

Funktionen

SaveACOObject

Speichert ein Objekt im ACO-Format.

Die Funktion liefert True, wenn die Objektdatei erfolgreich erstellt werden konnte. Falls beim Speichern Fehler auftraten, liefert Sie False.

Wenn Sie keinen Dateinamen angeben (ObjectFileName ist ein Leerstring), erfragt der O2C-Player den Namen der Ausgabedatei. In diesem Fall erhalten Sie als Rückgabewert der Funktion immer True.

Falls Sie weitere Kontrolle über die Erzeugung von Texturen benötigen, benutzen Sie bitte die Funktion SaveACOObject2.

Deklaration:
Basic | Function SaveACOObject(ByVal ObjectFileName As String, ByVal logicalObjectName As String, ByVal TextureBasePath As String) As Boolean
C/C++ | HRESULT SaveACOObject(BSTR ObjectFileName, BSTR logicalObjectName, BSTR TextureBasePath, VARIANT_BOOL *pResult)

Parameter:
ObjectFileName | Der Name der Ausgabedatei (*.ACO). Ein leerer String ruft einen "Speichern"-Dialog auf.
logicalObjectName | Der logische Name des Objektes, der z.B. im ArCon Explorer angezeigt wird.
TextureBasePath | Verzeichnis, unter dem die Texturdateien erzeugt werden sollen. Wird dieser Parameter leer gelassen, wird der Standard-Texturpfad verwendet.

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False (s.o.)


SaveACOObject2

Funktionen

SaveACOObject2

Speichert ein Objekt im ACO-Format. Die Funktion entspricht SaveACOObject mit dem zusätzlichen Parameter combineTextures

Die Funktion liefert True, wenn die Objektdatei erfolgreich erstellt werden konnte. Falls beim Speichern Fehler auftraten, liefert Sie False.

Wenn Sie keinen Dateinamen angeben (ObjectFileName ist ein Leerstring), erfragt der O2C-Player den Namen der Ausgabedatei. In diesem Fall erhalten Sie als Rückgabewert der Funktion immer True.

Deklaration:
Basic | Function SaveACOObject2(ByVal ObjectFileName As String, ByVal logicalObjectName As String, ByVal TextureBasePath As String, ByVal combineTextures As Boolean) As Boolean
C/C++ | HRESULT SaveACOObject2(BSTR ObjectFileName, BSTR logicalObjectName, BSTR TextureBasePath, VARIANT_BOOL combineTextures, VARIANT_BOOL *pResult)

Parameter:
ObjectFileName | Der Name der Ausgabedatei (*.ACO). Ein leerer String ruft einen "Speichern"-Dialog auf.
logicalObjectName | Der logische Name des Objektes, der z.B. im ArCon Explorer angezeigt wird.
TextureBasePath | Verzeichnis, unter dem die Texturdateien erzeugt werden sollen. Wird dieser Parameter leer gelassen, wird der Standard-Texturpfad verwendet.
combineTextures | Gibt an, ob einfarbige Texturen durch entsprechende Materialien ersetzt werden sollen.

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False (s.o.)


SaveBitmap

Funktionen

SaveBitmap

Speichert das aktuelle Objekt als Bitmap-Datei. Speziell, wenn der Parameter raytrace auf True gesetzt ist, und der Parameter quality eine höhere Auflösung bestimmt, kann dieser Vorgang geraume Zeit in Anspruch nehmen.

Die Funktion liefert False, wenn die Ausgabedatei nicht erzeugt werden kann oder der Benutzer den Vorgang abgebrochen hat.

Als Sonderfall kann der Parameter fileName ein Leerstring sein. Der O2C-Player erfragt dann den Dateinamen selbst; allerdings liefert das Control in diesem Fall immer True zurück.

Deklaration:
Basic | Function SaveBitmap(ByVal quality As o2cBitmapQuality, ByVal raytrace As Boolean, ByVal PixelWidth As Long, ByVal PixelHeight As Long, ByVal fileName As String) As Boolean
C/C++ | HRESULT SaveBitmap(enum o2cBitmapQuality quality, VARIANT_BOOL raytrace, long PixelWidth, long PixelHeight, BSTR fileName, VARIANT_BOOL *pResult);

Parameter:
quality | Die Qualität der erzeugten Datei. Die möglichen Werte dieses Parameters sind als symbolische Konstanten vordefiniert.
raytrace | True, wenn das Bild mit Hilfe des Strahlenverfolgungsverfahrens photorealistisch berechnet werden soll. Hierbei werden Spiegelungen und Schatten exakt ermittelt. Geben Sie hier False an, um eine der normalen Anzeige entsprechende Qualität als Ausgabe zu erzeugen.
PixelWidth, PixelHeight | Die Größe der erzeugten Bitmap in Pixel
fileName | Der Name der Ausgabedatei. Übergeben Sie hier einen Leerstring, öffnet der O2C-Player einen "Speichern" Dialog und erfragt den Dateinamen.

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


SaveMiniBitmap

Funktionen

SaveMiniBitmap

Diese Funktion ist nur in der erweiterten Version des O2C-Players implementiert, in der Standardversion liefert sie immer False.

In der erweiterten Version dient diese Funktion zum Erzeugen eines standardisierten Vorschau-Bildes (Thumbnail). Falls die Datei nicht erzeugt werden kann, liefert die Funktion False.

Deklaration:
Basic | Function SaveMiniBitmap(ByVal fileName As String) As Boolean
C/C++ | HRESULT SaveMiniBitmap(BSTR fileName, VARIANT_BOOL *pResult)

Parameter:
fileName Der Name der Ausgabedatei

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


SaveObject

Funktionen

SaveObject

Diese Funktion speichert das Objekt als O2C oder ACO Datei (und eventuelle Texturen als BMP-Dateien) ab, falls das geladene Objekt dies erlaubt.

Die Funktion liefert True, wenn die Objektdatei erfolgreich erstellt werden konnte. Falls beim Speichern Fehler auftraten, liefert Sie False.

Wenn Sie keinen Dateinamen angeben (ObjectFileName ist ein Leerstring), erfragt der O2C-Player den Namen der Ausgabedatei. In diesem Fall erhalten Sie als Rückgabewert der Funktion immer True.

Deklaration:
Basic | Function SaveObject(ByVal ObjectFileName As String, ByVal useO2cFormat As Boolean, ByVal TextureBasePath As String) As Boolean
C/C++ | HRESULT SaveObject(BSTR ObjectFileName, VARIANT_BOOL useO2cFormat, BSTR TextureBasePath, VARIANT_BOOL *pResult)

Parameter:
ObjectFileName | Der Name der Ausgabedatei (*.O2C oder *.ACO). Ein leerer String ruft einen Speichern Dialog auf.
useO2cFormat | Wenn möglich wird das Objekt als O2C-Datei gespeichert, wenn dieser Parameter True ist. Falls das Objekt allerdings nicht als O2C-Objekt geladen wurde, wird der Parameter ignoriert und auf jeden Fall als ACO-Datei gespeichert.
TextureBasePath | Verzeichnis, unter dem die Texturdateien erzeugt werden sollen. Wird dieser Parameter leer gelassen, wird der Standard-Texturpfad verwendet. Beim Speichern im O2C-Format wird dieser Parameter ignoriert.

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


SaveTextureToLocalFile

Funktionen

SaveTextureToLocalFile

Speichert eine Textur aus dem Texturcache als Bitmap Datei.

Deklaration:
Basic | Function SaveTextureToLocalFile(ByVal textureURL As String, ByVal localFile As String) As Boolean
C/C++ | HRESULT SaveTextureToLocalFile(BSTR textureURL, BSTR localFile, VARIANT_BOOL *pResult)

Parameter:
textureURL | Original-URL der Textur
localFile | Name der lokalen Datei.

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


SetCursorMode

Funktionen

SetCursorMode

Mit dieser Funktion können Sie den Mauszeiger einstellen, der im O2C-Player dargestellt wird. Normalerweise ist der Mauszeiger kontextabhängig, d.h. er ändert sich je nach Situation (Drehen, Zoomen, Verschieben usw.).

Eine Aufstellung der verfügbaren Mauszeiger finden Sie unter o2cCursorTypes.

Deklaration:
Basic | Sub SetCursorMode(ByVal newCursorMode As o2cCursorTypes)
C/C++ | HRESULT SetCursorMode(enum o2cCursorTypes newCursorMode)

Parameter:
newCursorMode Neuer Mauszeiger, siehe o2cCursorTypes


SetPhiPsiRanges

Funktionen

SetPhiPsiRanges

Mit Hilfe dieser Funktion können Sie die zulässigen Wertebereiche von Phi und Psi einschränken.

Deklaration:
Basic | Sub SetPhiPsiRanges(ByVal minPhi As Single, ByVal maxPhi As Single, ByVal minPsi As Single, ByVal maxPsi As Single)
C/C++ | HRESULT SetPhiPsiRanges(float minPhi, float maxPhi, float minPsi, float maxPsi)

Parameter:
minPhi | Minimal zulässiger Wert von Phi in Grad
maxPhi | Maximal zulässiger Wert von Phi in Grad
minPsi | Minimal zulässiger Wert von Psi in Grad
maxPsi | Maximal zulässiger Wert von Psi in Grad


SetPredefinedViewing

Funktionen

SetPredefinedViewing

Objekte können vordefinierte Betrachterstandpunkte enthalten. Mit dieser Funktion können Sie einen von Ihnen auswählen. Die Anzahl der vordefinierten Betrachterstandpunkte erhalten Sie mit der Funktion NumberOfPredefinedViewings.

Deklaration:
Basic | Function SetPredefinedViewing(ByVal viewingID As Long) As Boolean
C/C++ | HRESULT SetPredefinedViewing(long viewingID, VARIANT_BOOL *pResult)

Parameter:
viewingID Index des Standpunktes (bei 0 beginnend)

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


SetViewing3D

Funktionen

SetViewing3D

Setzt die komplette interne Betrachterposition.

Deklaration:
Basic | Function SetViewing3D(ByVal VRPx As Single, ByVal VRPy As Single, ByVal VRPz As Single, ByVal EyeX As Single, ByVal EyeY As Single, ByVal EyeZ As Single, ByVal tanViewAngleHalf As Single) As Boolean
C/C++ | HRESULT SetViewing3D(float VRPx, float VRPy, float VRPz, float EyeX, float EyeY, float EyeZ, float tanViewAngleHalf, VARIANT_BOOL *pResult)

Parameter:
VRPx, VRPy, VRPz | Weltkoordinaten des View Reference Points (des Punktes, auf den der Betrachter blickt)
EyeX, EyeY, EyeZ | Weltkoordinaten des Augpunktes (des Punktes, von dem aus der Betrachter blickt)
tanViewAngleHalf | Der Tangens des Winkels zwischen dem Strahl vom Augpunkt durch den VRP und dem Strahl zwischen dem Augpunkt und einem Punkt am äußersten Rand der Projektionsfläche. Anders ausgedrückt: die Hälfte der Breite der (sichtbaren) Projektionsfläche geteilt durch den Abstand des Betrachters von dieser Fläche.

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


SetViewing3DEx

Funktionen

SetViewing3DEx

Setzt die komplette interne Betrachterposition. Erweitert die Funktion SetViewing3D um die Möglichkeit, die Art der Projektion zu setzen.

Deklaration:
Basic | Function SetViewing3DEx(ByVal VRPx As Single, ByVal VRPy As Single, ByVal VRPz As Single, ByVal EyeX As Single, ByVal EyeY As Single, ByVal EyeZ As Single, ByVal tanViewAngleHalf As Single, ByVal parallel As Boolen) As Boolean
C/C++ | HRESULT SetViewing3DEx(float VRPx, float VRPy, float VRPz, float EyeX, float EyeY, float EyeZ, float tanViewAngleHalf, VARIANT_BOOL parallel, VARIANT_BOOL *pResult)

Parameter:
VRPx, VRPy, VRPz | Weltkoordinaten des View Reference Points (des Punktes, auf den der Betrachter blickt)
EyeX, EyeY, EyeZ | Weltkoordinaten des Augpunktes (des Punktes, von dem aus der Betrachter blickt)
tanViewAngleHalf | Der Tangens des Winkels zwischen dem Strahl vom Augpunkt durch den VRP und dem Strahl zwischen dem Augpunkt und einem Punkt am äußersten Rand der Projektionsfläche. Anders ausgedrückt: die Hälfte der Breite der (sichtbaren) Projektionsfläche geteilt durch den Abstand des Betrachters von dieser Fläche.
parallel | Perspektivisch korrekte Ansicht oder parallele Ansicht

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


Show2DView

Funktionen

Show2DView

Schaltet zwischen 3D-Ansicht (Standard Objektdarstellung) und Vorschau (2D-Ansicht oder Skizze) hin- und her.

Falls das geladene Objekt keine Vorschau enthält, wird dieser Funktionsaufruf ignoriert.

Deklaration:
Basic | Sub Show2DView(ByVal view2D As Boolean)
C/C++ | HRESULT Show2DView(VARIANT_BOOL view2D)

Parameter:
view2D True, wenn auf die 2D Ansicht umgeschaltet wird, False wenn zur Standard 3D Ansicht zurückgekehrt werden soll


ShowAll

Funktionen

ShowAll

Setzt die Betrachtungsparameter PanX, PanY und Zoom auf die Startwerte zurück, so daß das gesamte Objekt sichtbar wird. Der Benutzer kann dies auch durch Drücken der Taste "Pos1" erreichen.

Deklaration:
Basic | Sub ShowAll()
C/C++ | HRESULT ShowAll()


StartAnimation

Funktionen

StartAnimation

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Startet die Gesamtanimation, falls das aktuelle Objekt über Animationen verfügt.

Deklaration:
Basic | Sub StartAnimation()
C/C++ | HRESULT StartAnimation()


StartSubAnimation

Funktionen

StartSubAnimation

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Startet eine Teilanimation, falls das Objekt über Animationsdaten verfügt.

Die Funktion liefert False, wenn keine Animationsdaten vorhanden sind, oder der angegebene Teilanimationsindex ungültig ist.

Deklaration:
Basic | Function StartSubAnimation(ByVal Index As Long, ByVal repeat As Boolean) As Boolean
C/C++ | HRESULT StartSubAnimation(long Index, VARIANT_BOOL repeat, VARIANT_BOOL *pResult)

Parameter:
Index | Nummer der Subanimation, die gestartet werden soll
repeat | True, wenn die Animation wiederholend (zyklisch) abgespielt werden soll, False wenn sie nur einmal ablaufen soll.

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


StopAnimation

Funktionen

StopAnimation

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Falls gerade eine Animation abläuft, wird diese angehalten.

Deklaration:
Basic | Sub StopAnimation()
C/C++ | HRESULT StopAnimation()


SubObjectCount

Funktionen

SubObjectCount

Diese Funktion bezieht sich auf das mit CurrentObject festgelegte Objekt, falls Sie mehrere Objekte mit AddObject geladen haben.

Die Anzahl der Teilobjekte im derzeit geladenen Objekt.

Deklaration:
Basic | Function SubObjectCount() As Long
C/C++ | HRESULT SubObjectCount(long *pResult)

Rückgabewert (in C/C++ über pResult): Die Anzahl der Teilobjekte im derzeit geladenen Objekt.


WalkThroughStep

Funktionen

WalkThroughStep

Mit Hilfe dieser Funktion läßt sich der Durchwanderungsmodus quasi fernsteuern. Bei jedem Aufruf dieser Funktion wird ein "Schritt" in die angegebene Richtung gemacht.

Deklaration:
Basic | Funktion WalkThroughStep(ByVal dir As o2cWalkThroughDirection, ByVal howFar As Single) As Boolean
C/C++ | HRESULT WalkThroughStep(enum o2cWalkThroughDirection dir, float howFar, VARIANT_BOOL *pResult)

Parameter:
dir | Richtung, in die gewandert werden soll. Mögliche Werte finden Sie unter o2cWalkThroughDirection
howFar | Die Strecke in Metern, die zurückgelegt werden soll

Rückgabewert (in C/C++ über pResult): True, wenn erfolgreich, ansonsten False


Ereignisse

Ereignisse

Ereignisse sind Funktionen, die der O2C-Player in Ihrem Programm aufruft. Damit ist eine beidseitige Kommunikation möglich und der O2C-Player kann Ihnen zu beliebigen Zeitpunkten Dinge mitteilen, die sich in diesem Moment geändert haben, z.B. wenn eine von Ihnen gestartete Animation beendet wurde. Als Reaktion auf Ereignisse kann Ihr Programm neue Befehle an den O2C-Player geben, z.B. die nächste Animation starten.

Alphabetische Liste der Ereignisse
Name des Ereignisses | Beschreibung
AnimationDone | Eine Animation wurde beendet
AnimationStarted | Eine Animation beginnt
ChunkDataAvailable | Der O2C-Player hat einen Chunk dekodiert, der zur Benachrichtigung gekennzeichnet wurde
Click | Der Benutzer hat in den O2C-Player geklickt
ClickWithKeys | Der Benutzer hat in den O2C-Player geklickt, wobei zusätzliche Tasten gedrueckt wurden
MaterialChanged | Der Benutzer hat ein Material ausgetauscht
MouseDown | Der Knopf der Maus wurde gedrückt
MouseReleased | Der Knopf der Maus wurde losgelassen
ObjectLoaded | Ein Objekt wurde geladen
ObjectMove | Der Benutzer beginnt ein Objekt zu bewegen (oder beendet diesen Vorgang)
ObjectMoving | Ein Objekt wird bewegt und meldet seine aktuelle Position
SubObjectPicked | Ein Teilobjekt unter der Maus wurde identifiziert
TextureChanged | Der Benutzer hat eine Textur ausgetauscht
ThumbnailDone | Das Laden eines Vorschaubildes ist abgeschlossen


AnimationDone

Ereignisse

AnimationDone

Dieses Ereignis wird ausgelöst, wenn der O2C-Player eine Animation beendet hat (also der Wert der Eigenschaft AnimPlaying von True auf False wechselt).

Ihr Programm kann daraufhin z.B. die n&aumml;chste Animation starten.

Falls Sie mehrere Objekte (mit Hilfe der Funktion AddObject) geladen haben, können Sie die ID des gerade geladenen Objektes der Eigenschaft EventObject entnehmen.

Deklaration:
Basic | Sub AnimationDone()
C/C++ | void AnimationDone()


AnimationStarted

Ereignisse

AnimationStarted

Immer wenn der O2C-Player mit einer Animation beginnt, wird dieses Ereignis ausgelöst. Es spielt dabei keine Rolle, ob die Animation vom Benutzer (z.B. über das Kontextmenü) oder von Ihrem Programm angestoßen wurde.

Sie können dieses Ereignis nutzen, um z.B. einen passenden Sound zur laufenden Animation abzuspielen.

Falls Sie mehrere Objekte (mit Hilfe der Funktion AddObject) geladen haben, können Sie die ID des gerade geladenen Objektes der Eigenschaft EventObject entnehmen.

Deklaration:
Basic | Sub AnimationStarted(ByVal AnimationNo As Long, ByVal Name as String, ByVal autoRepeat As Boolean)
C/C++ | void AnimationStarted(long AnimationNo, BSTR Name, VARIANT_BOOL autoRepeat)

Parameter:
AnimationNo | Die Nummer der Subanimation oder -1, wenn die Gesamtanimation abgespielt wird
Name | Der Name der Sub- oder Gesamtanimation in der aktuell eingestellten Sprache (siehe Language)
autoRepeat | Wenn dieser Wert True ist, wird die Animation nach Ablauf automatisch wiederholt


ChunkDataAvailable

Ereignisse

ChunkDataAvailable

Falls Sie mittels RegisterChunkNotify einen Chunktyp registriert haben, werden Sie mit diesem Ereignis über das Entreffen von Daten benachrichtigt.

Deklaration:
Basic | Sub ChunkDataAvailable(ByVal objID As Long, ByVal chunkID As Long, ByVal chunkData As Variant, ByVal Length As Long)
C/C++ | void ChunkDataAvailable(long objID, long chunkID, VARIANT chunkData, long Length)

Parameter:
objID | Index des Objektes
chunkID | ID des gefundenen Chunkes
chunkData | Die Daten des Chunks
Length | Größe des Chunks


Click

Ereignisse

Click

Der Benutzer hat das vom O2C-Player gezeigte Bild angeklickt. Ob dabei das dargestellte Objekt bzw. ein Teilobjekt getroffen wurde, können Sie den Parametern des Ereignisses SubObjectPicked entnehmen. Wenn sich dessen Daten ändern, wird rechtzeitig vor dem Click-Ereignis ein neues SubObjectPicked Ereignis ausgelöst.

Durch Ändern des übergebenen SubAnimIndex Parameters können Sie beeinflussen, welche Animation als Reaktion auf diesen Click gestartet wird (siehe AnimateOnClick).

Falls Sie mehrere Objekte (mit Hilfe der Funktion AddObject) geladen haben, können Sie die ID des gerade geladenen Objektes der Eigenschaft EventObject entnehmen.

Deklaration:
Basic | Sub Click(ByRef SubAnimIndex As Long)
C/C++ | void Click(long *SubAnimIndex)

Parameter:
SubAnimIndex Die Nummer der Subanimation, die vom O2C-Player gestartet wird, oder -1, wenn keine gestartet wird.


ClickWithKeys

Ereignisse

ClickWithKeys

Der Benutzer hat das vom O2C-Player gezeigte Bild angeklickt. Ob dabei das dargestellte Objekt bzw. ein Teilobjekt getroffen wurde, können Sie den Parametern des Ereignisses SubObjectPicked entnehmen. Wenn sich dessen Daten ändern, wird rechtzeitig vor dem Click-Ereignis ein neues SubObjectPicked Ereignis ausgelöst.

Durch Ändern des übergebenen SubAnimIndex Parameters können Sie beeinflussen, welche Animation als Reaktion auf diesen Click gestartet wird (siehe AnimateOnClick).

Entspricht dem Ereignis Click, wobei ein zusätzlicher Paramter gibt Auskunft über den Status der Tastatur gibt.

Falls Sie mehrere Objekte (mit Hilfe der Funktion AddObject) geladen haben, können Sie die ID des gerade geladenen Objektes der Eigenschaft EventObject entnehmen.

Deklaration:
Basic | Sub ClickWithKeys(ByVal flags As Long, ByRef SubAnimIndex As Long)
C/C++ | void ClickWithKeys(long flags, long * SubAnimIndex)

Parameter:
flags | Bitmaske mit dem Status der Tastatur, Werte siehe o2cKeyState.
SubAnimIndex | Die Nummer der Subanimation, die vom O2C-Player gestartet wird, oder -1, wenn keine gestartet wird.


MaterialChanged

Ereignisse

MaterialChanged

Ein Material wird verändert. Entweder hat der Benutzer per Drag & Drop eine Materialdatei auf die betroffene Fläche fallen lassen oder ein Programm ersetzt das Material.

Falls Sie mehrere Objekte (mit Hilfe der Funktion AddObject) geladen haben, können Sie die ID des gerade geladenen Objektes der Eigenschaft EventObject entnehmen.

Deklaration:
Basic | Sub MaterialChanged(ByVal SubObjectIndex As Long, ByVal MaterialIndex As Long, ByVal LoadingFileName As String)
C/C++ | void MaterialChanged(long SubObjectIndex, long MaterialIndex, BSTR LoadingFileName)

Parameter:
SubObjectIndex | Die Nummer des betroffenen Subobjektes
MaterialIndex | Index des veränderten Materials
LoadingFileName | Dateiname der neu geladenen Materialdatei


MouseDown

Ereignisse

MouseDown

Es wurde ein Mausklick im O2C-Player registriert, dieser Klick wird mit diesem Ereignis an das Programm weitergereicht.

Deklaration:
Basic | Sub MouseDown(ByVal objID As Long, ByVal whichMouseButton As Long, ByVal flags As Long)
C/C++ | void MouseDown(long objID, long whichMouseButton, long flags)

Parameter:
objID | Objekt- bzw. Gruppenindex des angeklickten Objektes.
whichMouseButton | Bitmaske, wobei 1 = Linke Maustaste, 2 = Rechte Maustaste und 4 = Mittlere Maustaste.
flags | Bitmaske mit dem Status der Tastatur, Werte siehe o2cKeyState.


MouseReleased

Ereignisse

MouseReleased

Die Maustaste wurde nach einem MouseDown-Ereignis wieder gelöst.

Deklaration:
Basic | Sub MouseReleased(ByVal event As Long)
C/C++ | void MouseReleased(long event)

Parameter:
event Zur Zeit nicht genutzt, immer 0


ObjectLoaded

Ereignisse

ObjectLoaded

Ein Objekt wurde geladen. Entweder der Benutzer hat mit Hilfe des Kontextmenüs ein neues Objekt geladen, oder ein von Ihrem Programm (bzw. implizit durch Erzeugung des Controls) angestoßener Ladevorgang wurde soweit beendet, daß jetzt Daten über das Objekt zur Verfügung stehen. Sie können jetzt z.B. die Animationsparameter abfragen.

Die Darstellung im O2C-Player ist eventuell noch nicht vollständig, da im Hintergrund weiterhin Texturdaten geladen werden.

Falls Sie mehrere Objekte (mit Hilfe der Funktion AddObject) geladen haben, können Sie die ID des gerade geladenen Objektes der Eigenschaft EventObject entnehmen.

Deklaration:
Basic | Sub ObjectLoaded()
C/C++ | void ObjectLoaded()


ObjectMove

Ereignisse

ObjectMove

Ein Objekt wird oder wurde bewegt und meldet mit diesem Ereignis eine entscheidende Veränderung.

Deklaration:
Basic | Sub ObjectMove(ByVal objOrGrpID As Long, ByVal whichEvnt As o2cMvEvTypes, ByVal x As Single, ByVal y As Single, ByVal z As Single)
C/C++ | void ObjectMove(long objOrGrpID, o2cMvEvTypes whichEvnt, float x, float y, float z)

Parameter:
objOrGrpID | Die ID des bewegten Objektes
whichEvnt | Kennung, um welches (Sub-) Ereignis es sich handelt; siehe o2cMvEvTypes
x, y, z | Position des Objektes


ObjectMoving

Ereignisse

ObjectMoving

Ein Objekt wird gerade bewegt und meldet seine aktuellen Koordinaten.

Deklaration:
Basic | Sub ObjectMoving(ByVal objOrGrpID As Long, ByVal xMousePos As Single, ByVal yMousePos As Single, ByVal zMousePos As Single, ByVal xCenterPos As Single, ByVal yCenterPos As Single, ByVal zCenterPos As Single)
C/C++ | void ObjectMoving(long objOrGrpID, float xMousePos, float yMousePos, float zMousePos, float xCenterPos, float yCenterPos, float zCenterPos)

Parameter:
objOrGrpID | Die ID des bewegten Objektes (oder der bewegten Gruppe)
xMousePos, yMousePos, zMousePos | Position der Maus (in 3D Koordinaten), der Punkt des Objektes, den der Benutzer angefaßt hat und verschiebt
xCenterPos, yCenterPos, zCenterPos | Position des Objektes (also seines Mittelpunktes)


SubObjectPicked

Ereignisse

SubObjectPicked

Der Benutzer hat die Maus über ein anderes Teilobjekt bewegt. In Kürze (siehe TooltipTimeout) wird ein Tooltip mit dem Namen dieses Teilobjektes erscheinen. Sie können an dieser Stelle diesen Namen beeinflussen oder den Tooltip unterdrücken. Sie können sich auch das aktuelle Teilobjekt merken, um später bei einem eventuellen Click diese Information verfügbar zu haben.

O2C-Objekte können mehrere Sprachen enthalten. Wenn die von Ihnen (bzw. dem Benutzer) gewählte Sprache nicht vorhanden ist, wird auf eine spezielle neutrale Sprache zurückgegriffen (mit dem Sprachcode "XX"). Ein String in dieser Sprache ist immer vorhanden (wenn Teilobjekte überhaupt benannt sind). Weiterhin gibt es eine zweite spezielle Sprache, die Datenbanksprache mit dem Code "XY". In dieser Sprache werden keine Texte abgelegt, die für den Benutzer gedacht sind, sondern Informationen, die Sie in Ihrem Programm sinnvoll auswerten können. Dabei kann es sich zum Beispiel um eine eindeuteige Teile- oder Bestellnummer des Teilobjektes handeln, eine UID (siehe ObjectUID) oder allgemein Text, der als eindeutiger Schlüssel in Ihrer Datenbank dienen kann.

Texte in O2C-Objekten können Sie mit Hilfe des Programmes ACOStrTrans erfassen bzw. übersetzen. Wenn Sie zu Ihren Objekten Informationen in Datenbanken verwenden und über den Parameter DatabaseName eine Anbindung erstellen möchten, müssen Sie die entsprechenden Schlüssel mit Hilfe dieses Hilfsprogramms in die Objekte eintragen.

Sie bekommen also in diesem Ereignis sowohl den für den Benutzer bestimmten Namen (LocalName) als auch den für die programmtechnische Weiterverabeitung bestimmten Namen (DatabaseName) des Teilobjektes unter der Maus geliefert.

Ihre Aufgabe ist es, den anzuzeigenden Tooltip festzulegen falls Sie nicht mit der Standardanzeige (DisplayName = LocalName) einverstanden sind.

Falls Sie mehrere Objekte (mit Hilfe der Funktion AddObject) geladen haben, können Sie die ID des gerade geladenen Objektes der Eigenschaft EventObject entnehmen.

Deklaration:
Basic | Sub SubObjectPicked(ByVal Index As Long, ByVal LocalName As String, ByVal DatabaseName As String, ByRef DisplayName As String)
C/C++ | void SubObjectPicked(long Index, BSTR LocalName, BSTR DatabaseName, BSTR* DisplayName)

Parameter:
Index | Die Nummer des Teilobjektes oder -1, wenn das Objekt sich nicht unter der Maus befindet
LocalName | Der Name des Teilobjektes in der aktuell eingestellten Sprache (siehe Language)
DatabaseName | Der Name des Teilobjektes in der Datenbanksprache (Kennung "XY", siehe oben)
DisplayName | Der Text des Tooltips. Wenn Sie nicht eingreifen, wird der lokale Name des Teilobjektes angezeigt. Um die Anzeige vollständig zu unterdrücken, setzen Sie diesen String auf einen leeren String.


TextureChanged

Ereignisse

TextureChanged

Eine Textur wurde ausgetauscht, entweder durch den Benutzer per Drag & Drop oder durch ein Programm.

Falls Sie mehrere Objekte (mit Hilfe der Funktion AddObject) geladen haben, können Sie die ID des gerade geladenen Objektes der Eigenschaft EventObject entnehmen.

Deklaration:
Basic | Sub TextureChanged(ByVal SubObjectIndex As Long, ByVal TextureIndex As Long, ByVal NewTextureName As String)
C/C++ | void TextureChanged(long SubObjectIndex, long TextureIndex, BSTR NewTextureName)

Parameter:
SubObjectIndex | Die Nummer des Teilobjektes oder -1, wenn das Objekt sich nicht unter der Maus befindet
TextureIndex | Der Index der ersetzten Textur
NewTextureName | Name der neuen Textur


ThumbnailDone

Ereignisse

ThumbnailDone

Die Bearbeitung eines Vorschaubildes aus einer O2C-Datei ist weit genug vorangeschritten, um das Bild nun anzuzeigen oder es wurde kein Vorschaubild gefunden (üblicherweise werden kleine O2C-Objekte ohne Vorschau gespeichert, da ein Vorschaubild trotz JPEG-Kompression relativ groß ist).

Die Eigenschaft HasThumbnail ist gültig und gibt nun an, ob ein Vorschaubild verfügbar ist.

Dieser Event wird sowohl ausgelöst, wenn aus dem Internet ein O2C-Objekt geladen wird und genug Daten empfangen wurden, um das Vorschaubild anzuzeigen als auch beim manuellen Laden eines Vorschaubildes aus einer Datei mit Hilfe von DisplayThumbnail.

Deklaration:
Basic | Sub ThumbnailDone()
C/C++ | void ThumbnailDone()


Symbolische Werte

Symbolische Werte

Der O2C-Player definiert für einige numerische Parameter sprechende symbolische Namen, die in einigen Entwicklungsumgebungen beim Bearbeiten der Objekteigenschaften (z.B. Visual C++) oder sogar beim Bearbeiten des Programmcodes (z.B. Visual Basic) von der Entwicklungsumgebung automatisch angeboten werden.

Alphabetische Liste der Symbole
Eigenschaft | Beschreibung
o2cAppearance | Werte für die Appearance Eigenschaft
o2cBackPicModes | Werte für die BackPicMode Eigenschaft
o2cBackStyle | Werte für die BackStyle Eigenschaft
o2cBitmapQuality | Werte zur Qualitätsangabe beim Speichern einer Bitmap
o2cBorderStyle | Werte für die BorderStyle Eigenschaft
o2cCoordinateTypes | Koordinatensysteme, in denen die Mauspositionen abgefragt werden kann
o2cCursorTypes | Verfügbare Mauszeiger
o2cDisplayFlags | Erweiternde Flags für o2cDisplayMode
o2cDisplayMode | Die verschiedenen Darstellungsmodi des O2C-Players
o2cDragDropFlags | Flags zur Steuerung der Drag & Drop Fähigkeiten
o2cHtmlType | Steuert die Art des zu erzeugenden HTML-codes
o2cKeyState | Status der Keyboard-Tasten bei verschiedenen Events
o2cMaterialFlags | Bits zur Bestimmung von Materialeigenschaften
o2cMenuItems | Bezeichner für die einzelnen Menüeinträge des O2C-Players
o2cMoveFlags | Flags zur Steuerung von Objektbewegungen
o2cMvEvTypes | Bewegungstypen von Objekten
o2cUserMovementTypes | Flags zum Einschränken der Benutzerbewegungen
o2cWalkThroughDirection | Richtungen, in die man sich beim Durchwandern bewegen kann


o2cAppearance

Symbolische Werte

enum o2cAppearance

Die Eigenschaft Appearance kann folgende Werte annehmen:

Wert | Symbol | Beschreibung
0 | o2cAppearanceFlat | Der Rand (falls dargestellt, siehe BorderStyle) ist flach
1 | o2cAppearance3D | Der Rand hat einen 3D Effekt


o2cBackPicModes

Symbolische Werte

enum o2cBackPicModes

Die Eigenschaft BackPicMode kann folgende Werte annehmen:

Wert | Symbol | Beschreibung
0 | o2cBackPicModeConstant | Einfarbig, mit konstanter Farbe gefüllt.
1 | o2cBackPicModeOnce | Das Hintergrundbild wird einmal dargestellt, und dabei auf die Größe des O2C-Players skaliert.
2 | o2cBackPicModeRepeated | Das Hintergrundbild wird mehrfach (gekachelt) in seiner Originalgröße dargestellt


o2cBackStyle

Symbolische Werte

enum o2cBackStyle

Die Eigenschaft BackStyle kann folgende Werte annehmen, wobei der Wert o2cBackStyleTransparent (0) in der aktuellen Version des O2C-Players noch nicht unterstützt wird:

Wert | Symbol | Beschreibung
0 | o2cBackStyleTransparent | Teile des O2C-Player Fensters, die nicht das 3D-Objekt anzeigen, sind durchsichtig, der Hintergrund unter diesem Fenster ist dort zu sehen
1 | o2cBackStyleOpaque | Der Hintergrund ist undurchsichtig, er wird mit dem als BackPictureURL eingestellten Bild bzw. der als BackColor eingestellten Hintergrundfarbe gefüllt


o2cBitmapQuality

Symbolische Werte

enum o2cBitmapQuality

Der Parameter quality der Funktion SaveBitmap kann folgende Werte annehmen:

Wert | Symbol | Beschreibung
0 | o2cBmpQualityLow | Qualität wie bei der interaktiven Anzeige mit ausgeschaltetem Kantenfilter
1 | o2cBmpQualityMedium | Mittlere Qualität, vierfaches Oversampling und Kantenfilter
2 | o2cBmpQualityHigh | Sehr hohe Qualität: sechzehnfaches Oversampling und Kantenfilter


o2cBorderStyle

Symbolische Werte

enum o2cBorderStyle

Die Eigenschaft BorderStyle kann folgende Werte annehmen:

Wert | Symbol | Beschreibung
0 | o2cBorderStyleNone | Kein Rand
1 | o2cBorderStyleSingle | Einfacher Rand


o2cCoordinateTypes

Symbolische Werte

enum o2cCoordinateTypes

Bestimmt, in welchem Koordinatensystem die Mausposition in den Funktionen GetLastPickedPosition, GetLastPickedPositionX, GetLastPickedPositionY und GetLastPickedPositionZ zu ermitteln sind.

Wert | Symbol | Beschreibung
0 | o2cCoordsModell | Modellkoordinaten des Objektes.
1 | o2cCoordsGroup | Position innerhalb einer Gruppe (oder das selbe wie o2cCoordsModell, wenn das Objekt nicht Teil einer Gruppe ist).
2 | o2cCoordsWorld | Weltkoordinaten des Objektes.


o2cCursorTypes

Symbolische Werte

enum o2cCursorTypes

Die Funktion SetCursorMode erwartet als Parameter einen der folgenden Werte:

Wert | Symbol | Typ
0 | o2cCursorNone | Es wird kein Cursor angezeigt.
1 | o2cCursorContext | Der Mauszeiger ist Kontextabhängig.
2 | o2cCursorAPPSTARTING | Standardpfeil mit kleiner Sanduhr.
3 | o2cCursorARROW | Standardpfeil.
4 | o2cCursorCROSS | Fadenkreuz.
5 | o2cCursorHAND | Hand.
6 | o2cCursorHELP | Pfeil mit Fragezeichen.
7 | o2cCursorIBEAM | Textcursor.
8 | o2cCursorNO | Verbots-Schild.
9 | o2cCursorSIZEALL | Gekreuzter Pfeil, in alle Richtungen weisend.
10 | o2cCursorSIZENESW | Pfeil, nach Nordosten und Südwesten zeigend.
11 | o2cCursorSIZENS | Pfeil, nach Norden und Süden zeigend.
12 | o2cCursorSIZENWSE | Pfeil, nach Nordwesten und Südosten zeigend.
13 | o2cCursorSIZEWE | Pfeil, nach Westen und Osten zeigend.
14 | o2cCursorUPARROW | Vertikaler Pfeil.
15 | o2cCursorWAIT | Sanduhr.
16 | o2cCursorLink | Hand, auf eine URL zeigend.
17 | o2cCursorROT | Rotationszeiger.
18 | o2cCursorZOOM | Zoomzeiger.
19 | o2cCursorPAN | Cursor zum verschieben der Ansicht.
20 | o2cCursorAUTOANIM | Animationscursor.
21 | o2cCursorFlyDOWN | Durchwandermodus: Nach hinten bewegen.
22 | o2cCursorFlyLEFT | Durchwandermodus: nach links bewegen.
23 | o2cCursorFlyLEFTUP | Durchwandermodus: nach links und nach vorne bewegen.
24 | o2cCursorFlyNOMOVE | Durchwandermodus: keine Bewegung.
25 | o2cCursorFlyRIGHT | Durchwandermodus: nach rechts bewegen.
26 | o2cCursorFlyRIGHTUP | Durchwandermodus: nach rechts und nach vorne bewegen.
27 | o2cCursorFlyTURNLEFT | Durchwandermodus: nach links drehen.
28 | o2cCursorFlyTURNRIGHT | Durchwandermodus: nach rechts drehen.
29 | o2cCursorFlyUP | Durchwandermodus: nach vorne bewegen.
30 | o2cCursorFlyLIFTUP | Durchwandermodus: nach oben bewegen.
31 | o2cCursorFlyLIFTDOWN | Durchwandermodus: nach unten bewegen.
32 | o2cCursorAim | Durchwandermodus: 3D-Shooter modus.
33 | o2cCursorGrab | Eine geöffnete Hand.
34 | o2cCursorGrabed | Eine geschlossene Hand.
35 | o2cCursorColorize | Farbeimer.
36 | o2cCursorErase | Radiergummi.


o2cDisplayFlags

Symbolische Werte

enum o2cDisplayFlags

Fügen Sie das Flag o2cDispFlagAlltrans zu einem der Werte aus o2cDisplayMode hinzu, um selektierte Objekte per ObjectSetHighlightedSubObject hervorzuheben.

Wert | Symbol | Beschreibung
0x0020 | o2cDispFlagAlltrans | Aktiviert den "Selektionsmodus"


o2cDisplayMode

Symbolische Werte

enum o2cDisplayMode

Die folgende Tabelle zeigt die wichtigsten unterstützten Werte für die Eigenschaft DisplayMode und deren Kodierung.

Fügen Sie das Flag o2cDispFlagAlltrans zu einem der Werte hinzu, um selektierte Objekte per ObjectSetHighlightedSubObject hervorzuheben.

Wert | Symbol | Menü? | Beschreibung
0 | o2cDispWIRE | Ja | Drahtgitter
1 | o2cDispFLAT | Ja | nicht texturiert
2 | o2cDispFTEX | Ja | einfach texturiert
3 | o2cDispGTEX | Ja | Gouraud-texturiert (Standard)
4 | o2cDispHIDDENWIRE | Ja | Drahtgitter mit verdeckten Linien
5 | o2cDispHIDDENWIRE_NOTRANS | Evtl. | Drahtgitter mit verdeckten Linien, wobei transparente Flächen ignoriert werden
6 | o2cDispHIDDENWIRE_WITHBACKFACE | Nein | Drahtgitter mit verdeckten Linien und verfärbten Flächen-Rückseiten
7 | o2cDispHIDDENWIRE_WITHBACKFACE_NOTRANS | Nein | Drahtgitter mit verdeckten Linien und verfärbten Flächen-Rückseiten, wobei transparente Flächen ignoriert werden
16 | o2cDispWIRE_ALL | Nein | Drahtgitter mit allen Kanten
20 | o2cDispHIDDENWIRE_ALL | Nein | Drahtgitter mit allen Kanten und verdeckten Flächen
21 | o2cDispHIDDENWIRE_ALL_NOTRANS | Nein | Drahtgitter mit allen Kanten und verdeckten Flächen, wobei transparente Flächen ignoriert werden
22 | o2cDispHIDDENWIRE_ALL_WITHBACKFACE | Nein | Drahtgitter mit allen Kanten und verdeckten Flächen. Flächen-Rückseiten werden andersfarbig markiert
23 | o2cDispHIDDENWIRE_ALL_WITHBACKFACE_NOTRANS | Nein | Drahtgitter mit allen Kanten und verdeckten Flächen. Flächen-Rückseiten werden andersfarbig markiert und transparente Flächen werden ignoriert


o2cDragDropFlags

Symbolische Werte

enum o2cDragDropFlags

Die Eigenschaft DragDropEnabled kann auf eine Kombination der folgenden Werte gesetzt werden:

Wert | Symbol | Beschreibung
0x0000 | o2cDragDropDisabled | Alle Drag & Drop Operation sind ausgeschaltet. Dies ist der Normalzustand, Drag & Drop sollte durch das einbettende Programm gehandhabt werden.
0x0001 | o2cDragDropObjects | Das Control akzeptiert Datei-Drop Operationen von O2C/ACO Dateien
0x0002 | o2cDragDropTextures | Das Control akzeptiert Datei-Drop Operationen von BMP/JPG Dateien auf Teile des angezeigten Objektes, die texturiert sind
0x0004 | o2cDragDropMaterials | Das Control akzeptiert Datei-Drop Operationen von INI Dateien in denen gültige ArCon-Materialien beschrieben werden, auf Teile des angezeigten Objektes, die ein Material benutzen.


o2cHtmlType

Symbolische Werte

enum o2cHtmlType

Mögliche Werte für den Parameter htmlStyle der Funktion CopyHtmlCode sind:

Wert | Symbol | Beschreibung
0 | o2cHtmlPlain | Standard HTML Code, so wie er auf Web-Sites verwendet werden kann
1 | o2cHtmlOutlook | MIME-enhanced-HTML Code, wie er nur innerhalb von Microsoft Outlook verstanden wird.


o2cKeyState

Symbolische Werte

enum o2cKeyState

Bitmaske mit dem Status der Keyboard-Tasten bei den Events ClickWithKeys und MouseDown.

Wert | Symbol | Beschreibung
0x0001 | o2cKeyShift | Die Umschalt-Taste ist gedrückt
0x0002 | o2cKeyControl | Die Strg-Taste ist gedrückt
0x0004 | o2cKeyMenu | Die Alt-Taste ist gedrückt
0x0008 | o2cKeyLShift | Die linke Umschalt-Taste ist gedrückt
0x0010 | o2cKeyRShift | Die rechte Umschalt-Taste ist gedrückt
0x0020 | o2cKeyLControl | Die linke Strg-Taste ist gedrückt
0x0040 | o2cKeyRControl | Die rechte Strg-Taste ist gedrückt


o2cMaterialFlags

Symbolische Werte

enum o2cMaterialFlags

Der Parameter flags der Funktionen GetMaterial und ReplaceMaterial ist eine kombination aus folgenden Bitwerten:

Wert | Symbol | Beschreibung
0x0001 | o2cMatFlagIsTextured | Das Material ist texturiert
0x0002 | o2cMatFlagIsTexMask | Die Textur ist eine Maskentextur
0x0004 | o2cMatFlagIsLight | Das Material ist selbstleuchtend
0x0008 | o2cMatFlagMixTexCol | Die Farbe des Materials wird mit der Textur gemischt
0x0010 | o2cMatFlagTwoSided | Die Flächen mit diesem Material sind auch von innen zu sehen (normalerweise werden nur Außenflächen dargestellt)
0x0020 | o2cMatFlagIsTexRefl | Die Textur ist eine Reflektionsmaske
0x0040 | o2cMatFlagIsSpec | Das Material reflektiert ideal


o2cMenuItems

Symbolische Werte

enum o2cMenuItems

Welcher dieser Werte für welches Element der Oberfläche zuständig ist, können Sie auch dieser Grafik entnehmen.

Die Eigenschaft EnabledMenus setzt sich aus folgenden Bit-Flags zusammen:

Wert | Symbol | Menüeintrag
0x0001 | o2cMenuItemShowAll | Alles zeigen
0x0002 | o2cMenuItemLoadObject | Objekt laden
0x0004 | o2cMenuItemSaveBitmap | Bild speichern
0x0008 | o2cMenuItemSaveObject | Objekt speichern
0x0010 | o2cMenuItemRaytrace | Raytrace
0x0020 | o2cMenuItemAnimations | Das Animations-Untermenü
0x0040 | o2cMenuItemBackground | Hintergrund...
0x0080 | o2cMenuItemDisplayMode | Das Darstellungsarten-Untermenü
0x0100 | o2cMenuItemFilter | Filter
0x0200 | o2cMenuItemHideControls | Keine Steuerleisten
0x0400 | o2cMenuItemKeepSpin | Automatische Rotation
0x0800 | o2cMenuItemSettings | Allgemeine Einstellungen
0x1000 | o2cMenuItemTogglePreview | Zur 2D/3D-Ansicht
0x2000 | o2cMenuItemToggleWalkthrough | Durchwandern
0x4000 | o2cMenuItemUse3DHardware | 3D-Hardware verwenden
0x8000 | o2cMenuItemPointOfView | Betrachterstandpunkt


o2cMoveFlags

Symbolische Werte

enum o2cMoveFlags

Mögliche Werte für den Parameter flags der Funktion ObjectMayMove.

Wert | Symbol | Beschreibung
0x0001 | o2cMvMayMove | Das Objekt oder die Gruppe darf bewegt werden.
0x0002 | o2cMvKeepX | Die X-Koordinate darf sich bei normalen Bewegungen nicht ändern
0x0004 | o2cMvKeepY | Die Y-Koordinate darf sich bei normalen Bewegungen nicht ändern
0x0008 | o2cMvKeepZ | Die Z-Koordinate darf sich bei normalen Bewegungen nicht ändern
0x0010 | o2cMvInhibit3D | Die Bewegung orthogonal zur normalen Bewegungsebene (per rechter Maustaste) ist nicht erlaubt
0x0020 | o2cMvEventStartStop | Löst ein Event aus, sobald die Bewegung startet und wenn diese endet
0x0040 | o2cMvEventMove | Löst bei jeder Mausbewegung ein Event aus (Achtung: kann die Bewegung drastisch verlangsamen!)
0x0080 | o2cMvCheckCollisions | Kollisionskontrolle während der Bewegung
0x0100 | o2cMvNoCursor | Blendet den Mauszeiger während der Bewegung aus


o2cMvEvTypes

Symbolische Werte

enum o2cMvEvTypes

Sub-Events des Ereignisses ObjectMove:

Wert | Symbol | Beschreibung
0 | o2cMvEvObjStart | Das Objekt (oder die Gruppe) hat gerade angefangen, sich (durch Benutzerinteraktion) zu bewegen
1 | o2cMvEvObjEnd | Das Objekt (oder die Gruppe) hat seine Bewegung beendet. (der Benutzer hat den Mausbutton losgelassen)
2 | o2cMvEvObjDropped | Das Objekt (oder die Gruppe) hat den Drag & Drop Vorgang beendet
3 | o2cMvEvDragCanceled | Der Drag & Drop Vorgang per DragAndDropObject wurde durch den Benutzer abgebrochen
4 | o2cMvEvObjChanged | Das Programm hat die Gruppierung von Objekten verändert, während einige noch in Bewegung waren. Dies Resultiert darin, daß ein anderes Objekt oder eine andere Gruppe bewegt wird


o2cUserMovementTypes

Symbolische Werte

enum o2cUserMovementTypes

Die Funktion DisableUserMovements erwartet als Parameter eine Bitmaske aus folgende Werten:

Wert | Symbol | Beschreibung
0x0001 | o2cUmvRotate | Wenn dieses Bit gesetzt ist, kann der Benutzer die Ansicht nicht mehr rotieren.
0x0002 | o2cUmvPan | Wenn dieses Bit gesetzt ist, kann die Ansicht nicht mehr verschoben werden.
0x0004 | o2cUmvZoom | Wenn dieses Bit gesetzt ist, kann das Bild nicht mehr heran- oder herausgezoomt werden.
0x0008 | o2cUmvWalk | Wenn dieses Bit gesetzt ist, kann nicht mehr durchwandert werden.


o2cWalkThroughDirection

Symbolische Werte

enum o2cWalkThroughDirection

Mögliche Werte des Parameters dir der Funktion WalkThroughStep:

Wert | Symbol | Richtung
0 | o2cWalkLeft | Nach links
1 | o2cWalkLeftForward | Nach links und nach vorne
2 | o2cWalkForward | Nach vorne
3 | o2cWalkRightForward | Nach rechts und nach vorne
4 | o2cWalkRight | Nach rechts
5 | o2cWalkRightBack | Nach rechts und nach hinten
6 | o2cWalkBack | Nach hinten
7 | o2cWalkLeftBack | Nach links und nach hinten
8 | o2cWalkLiftUp | Nach Oben
9 | o2cWalkLiftDown | Nach unten


Anhang

Zuordnung der Steuerelemente

Sie sehen hier ein Beispiel für den O2C-Player in Aktion, mit allen Elementen der Benutzeroberfläche aktiviert. Durch Klicken auf ein Benutzeroberflächenelement erhalten Sie eine Erläuterung, welche Funktion des O2C-Players diesem Element aus Programmierersicht entspricht.


Zuordnung der Steuerelemente

Zuordnung der Steuerelemente

Falls auf Ihrem System die benötigte 3D Grafikhardware installiert ist, erscheint dieser Menüpunkt. Er kann in Applikation nicht programmgesteuert beeinflußt werden, da er ausschließlich lokale Präferenzen des Anwenders wiederspiegelt.

Dieser Menüpunkt kann durch Entfernen des Bits o2cMenuItemUse3DHardware (0x4000) aus der Eigenschaft EnabledMenus entfernt werden.

Zurück


Zuordnung der Steuerelemente

Zuordnung der Steuerelemente

Eine Animation starten Sie mit Hilfe der Funktionen StartAnimation, StartSubAnimation oder durch Zuweisung von True an die Eigenschaft AnimPlaying.

Dieser Menüpunkt kann durch Entfernen des Bits o2cMenuItemAnimations (0x0020) aus der Eigenschaft EnabledMenus entfernt werden.

Zurück


Zuordnung der Steuerelemente

Zuordnung der Steuerelemente

Mit den Eigenschaften KeepSpinning, SpinPhi sowie SpinPsi steuern Sie die automatische Rotation des Objektes.

Dieser Menüpunkt kann durch Entfernen des Bits o2cMenuItemKeepSpin (0x0400) aus der Eigenschaft EnabledMenus entfernt werden.

Zurück


Zuordnung der Steuerelemente

Zuordnung der Steuerelemente

Die Hintergrunddarstellung können Sie mit den Eigenschaften BackColor und BackPictureURL sowie BackStyle beeinflussen.

Dieser Menüpunkt kann durch Entfernen des Bits o2cMenuItemBackground (0x0040) aus der Eigenschaft EnabledMenus entfernt werden.

Zurück


Zuordnung der Steuerelemente

Zuordnung der Steuerelemente

Mit Hilfe der Funktion OneTimeRaytrace erstellen Sie einmalig eine Raytrace-Anzeige, ohne permanent den DisplayMode zu verändern.

Dieses Steuerelement können Sie durch Zuweisen von True an die Eigenschaft HideControls entfernen.

Zurück


Zuordnung der Steuerelemente

Zuordnung der Steuerelemente

Die Anzeige des gesamten Objektes erreichen Sie durch Aufruf der Funktion ShowAll.

Dieses Steuerelement können Sie durch Zuweisen von True an die Eigenschaft HideControls entfernen.

Zurück


Zuordnung der Steuerelemente

Zuordnung der Steuerelemente

Durch Aufruf der Funktion CopyHtmlCode können Sie den aktuellen Zustand des angezeigten Objektes als HTML-Quelltext in die Zwischenablage kopieren. Wenn Sie den Parameter htmlStyle auf o2cHtmlPlain (0) setzen, entspricht dies diesem Menüpunkt.

Dieser Menüpunkt erscheint nur beim Doppelklick auf ein O2C-Objekt, nicht aber beim Einsatz des O2C-Players in eigenen Applikationen.

Zurück


Zuordnung der Steuerelemente

Zuordnung der Steuerelemente

Durch Aufruf der Funktion CopyHtmlCode können Sie den aktuellen Zustand des angezeigten Objektes als HTML-Quelltext in die Zwischenablage kopieren. Wenn Sie den Parameter htmlStyle auf o2cHtmlOutlook (1) setzen, entspricht dies diesem Menüpunkt.

Dieser Menüpunkt erscheint nur beim Doppelklick auf ein O2C-Objekt, nicht aber beim Einsatz des O2C-Players in eigenen Applikationen.

Zurück


Zuordnung der Steuerelemente

Zuordnung der Steuerelemente

Dieser Schieberegler zeigt die aktuelle Animationszeit. Seine Position entspricht der Eigenschaft CurrentTime (umgerechnet in Prozent).

Dieses Steuerelement können Sie durch Zuweisen von True an die Eigenschaft HideControls entfernen.

Zurück


Zuordnung der Steuerelemente

Zuordnung der Steuerelemente

Um den Darstellungsmodus einzustellen, weisen Sie der Eigenschaft DisplayMode einen entsprechenden Wert zu.

Dieser Menüpunkt kann durch Entfernen des Bits o2cMenuItemDisplayMode (0x0080) aus der Eigenschaft EnabledMenus entfernt werden.

Zurück


Zuordnung der Steuerelemente

Zuordnung der Steuerelemente

Die allgemeinen Einstellungen sind benutzerspezifisch, Sie sollten Sie in der Regel nicht verändern. Die Eigenschaften TexturePath und SaveFilesWithDocument werden von diesem Menüpunkt geändert.

Dieser Menüpunkt kann durch Entfernen des Bits o2cMenuItemSettings (0x0800) aus der Eigenschaft EnabledMenus entfernt werden.

Zurück


Zuordnung der Steuerelemente

Zuordnung der Steuerelemente

Den Kantenfilter aktivieren bzw. deaktivieren Sie mit der Eigenschaft Filter.

Dieser Menüpunkt kann durch Entfernen des Bits o2cMenuItemFilter (0x0100) aus der Eigenschaft EnabledMenus entfernt werden.

Zurück


Erweiterte Version

Erweiterte Version

Die erweiterte Version des O2C-Players wird innerhalb von ArCon-Produkten eingesetzt. Sie verwendet zusätzliche DLLs, die in der Internetversion nicht zur Verfügung stehen.


Zuordnung der Steuerelemente

Zuordnung der Steuerelemente

Die Steuerelemente verbergen Sie, indem Sie der Eigenschaft HideControls den Wert True zuweisen.

Dieser Menüpunkt kann durch Entfernen des Bits o2cMenuItemHideControls (0x0200) aus der Eigenschaft EnabledMenus entfernt werden.

Zurück


Zuordnung der Steuerelemente

Zuordnung der Steuerelemente

Das Laden eines Objektes können Sie durch Aufruf der Funktion LoadObject oder durch Zuweisung an die Eigenschaft ObjectURL erreichen.

Dieser Menüpunkt kann durch Entfernen des Bits o2cMenuItemLoadObject (0x0002) aus der Eigenschaft EnabledMenus entfernt werden.

Zurück


Zuordnung der Steuerelemente

Zuordnung der Steuerelemente

Dieser Rollbalken steuert den Wert der Eigenschaft PanX. Durch Zuweisungen an diese Eigenschaft können Sie den Rollbalken verstellen.

Die Rollbalken können durch Zuweisen von True an die Eigenschaft HideControls bzw. HideScrollBars ausgeschaltet werden.

Zurück


Zuordnung der Steuerelemente

Zuordnung der Steuerelemente

Dieser Rollbalken steuert den Wert der Eigenschaft PanY. Durch Zuweisungen an diese Eigenschaft können Sie den Rollbalken verstellen.

Die Rollbalken können durch Zuweisen von True an die Eigenschaft HideControls bzw. HideScrollBars ausgeschaltet werden.

Zurück


Zuordnung der Steuerelemente

Zuordnung der Steuerelemente

Mit Hilfe der Funktion OneTimeRaytrace erstellen Sie einmalig eine Raytrace-Anzeige, ohne permanent den DisplayMode zu verändern.

Dieser Menüpunkt kann durch Entfernen des Bits o2cMenuItemRaytrace (0x0008) aus der Eigenschaft EnabledMenus entfernt werden.

Zurück


Zuordnung der Steuerelemente

Zuordnung der Steuerelemente

Das aktuelle Bild können Sie mit Hilfe der Funktion SaveBitmap speichern.

Dieser Menüpunkt kann durch Entfernen des Bits o2cMenuItemSaveBitmap (0x0004) aus der Eigenschaft EnabledMenus entfernt werden.

Zurück


Zuordnung der Steuerelemente

Zuordnung der Steuerelemente

Mit der Funktion SaveObject können Sie (sofern diese Operation erlaubt ist) das 3D Objekt als ACO Datei (samt Texturen) speichern.

Dieser Menüpunkt kann durch Entfernen des Bits o2cMenuItemSaveObject (0x0008) aus der Eigenschaft EnabledMenus entfernt werden.

Zurück


Zuordnung der Steuerelemente

Zuordnung der Steuerelemente

Die Anzeige des gesamten Objektes erreichen Sie durch Aufruf der Funktion ShowAll.

Dieser Menüpunkt kann durch Entfernen des Bits o2cMenuItemShowAll (0x0001) aus der Eigenschaft EnabledMenus entfernt werden.

Zurück


Zuordnung der Steuerelemente

Zuordnung der Steuerelemente

Eine Animation starten Sie mit Hilfe der Funktionen StartAnimation, StartSubAnimation oder durch Zuweisung von True an die Eigenschaft AnimPlaying.

Dieses Steuerelement können Sie durch Zuweisen von True an die Eigenschaft HideControls entfernen.

Zurück


Zuordnung der Steuerelemente

Zuordnung der Steuerelemente

Um eine Animation zu stoppen, verwenden Sie die Funktion StopAnimation oder weisen der Eigenschaft AnimPlaying den Wert False zu.

Dieser Menüpunkt kann durch Entfernen des Bits o2cMenuItemAnimations (0x0020) aus der Eigenschaft EnabledMenus entfernt werden.

Zurück


Zuordnung der Steuerelemente

Zuordnung der Steuerelemente

Die Funktion Show2DView schaltet zwischen der 2D und der 3D Ansicht um. Die genaue Benennung dieses Menüpunktes können Sie mit den Eigenschaften MenuNameForPreview und MenuNameFor3D festlegen.

Dieser Menüpunkt kann durch Entfernen des Bits o2cMenuItemTogglePreview (0x1000) aus der Eigenschaft EnabledMenus entfernt werden.

Zurück


Tools

Tools

Eines der Hilfsprogramme zur Bearbeitung von O2C-Objekten. Näheres finden Sie auf der Internet-Seite http://www.o2c.de/autoren/tools.html.


Zuordnung der Steuerelemente

Zuordnung der Steuerelemente

Mit diesem Menüpunkt können Sie die Eigenschaft Walkthrough einstellen.

Dieser Menüpunkt kann durch Entfernen des Bits o2cMenuItemToggleWalkThrough (0x2000) aus der Eigenschaft EnabledMenus entfernt werden.

Zurück


Zuordnung der Steuerelemente

Zuordnung der Steuerelemente

Mit dieser Schaltfläche können Sie zoomen. Die Eigenschaft Zoom ändert daraufhin ihren Wert bzw. Sie können durch Zuweisung an diese Eigenschaft den gleichen Effekt erreichen.

Dieses Steuerelement können Sie durch Zuweisen von True an die Eigenschaft HideControls entfernen.

Zurück