Sie sind auf Seite 1von 24

o2c - Constructor

Der o2c-Constructor

Page 1 of 24

Der o2c-Constructor ist die konsequente Weiterentwicklung der o2c-Technologie. Mit ihm ist es mglich online o2c-Objekte fr dir Darstellung im o2c-Player zu erzeugen. Er kann immer dann eingesetzt werden, wenn individuelle variantenreiche Produkte im Internet konfiguriert oder variable "Kulissen" erzeugt werden sollen. Der o2c-Constructor bietet hier die Mglichkeit der visuellen Kontrolle der Eingabe, bzw. er veranschaulicht dem User, wie nderungen in der Konfiguration sich auf das Produkt auswirken. Wie funktioniert das? Die Konfiguration im Internet oder innerhalb Ihrer Anwendung wird in der Regel datenbankgesttzt mit Hilfe von Formularen durchgefhrt. Dahinter stehen dann JavaScript, Java, Basic, C++ oder Delphi-Anwendungen, die die Eingaben berwachen, auf Zulssigkeit prfen und abhngige Eingaben hinterlegen. Diese Anwendungen knnen mit Hilfe einfacher Befehle (etwa: "Erzeuge Flche", "Fge Loch ein", "Lege Textur auf") an den o2c-Constructor auf Basis der Eingabe des Anwenders und in der Anwendung hinterlegter Regeln ein 3D-Modell erzeugen und dies dann im Player darstellen. Der Vorteil: Aufwendige unanschauliche Formulare werden durch die visuelle Kontrolle benutzbar. Fehlbestellungen durch Missverstndnisse werden minimiert, Kunden werden dort bestellen, wo der Bestellvorgang intuitiv und einfach ist.Dies minimiert den Zeitaufwand fr Ihre User und frdert die Anschaulichkeit Ihrer Anwendung. Wichtige Features:
l l l l l l

Erzeugen von Dreiecken und Vierecken. Erzeugen von Polygonen mit Lchern. Definition von Material- und Textureigenschaften. Speichern von Objekten. Erzeugen von Texturen (z.B. variable Beschriftung). weitere Funktionen zum Setzen von Parametern.

Was ist der o2c-Constructor und was bentige ich? Der o2c-Constructor ist als Netscape-PlugIn und als ActiveX-Control fr Microsoft Windows erhltlich. Sie knnen ihn berall dort einsetzen, wo Sie auch den o2cPlayer benutzen. Der Constructor bentigt lediglich eine laufende Instanz des o2c-Players. Detailierte Informationen zur Einbindung in Ihre Entwicklungsumgebung finden Sie in der Rubrik Einbindung. Aufbau dieser Hilfe-Datei: Diese Hilfe gliedert sich in mehrere Abschnitte: Einfhrung Einbinden Objekt-Referenz Beispiele Diese Seite Einbinden des o2c-Constructors in Ihre Entwicklungsumgebung bzw. Ihre HTML-Seiten Referenz aller Objekte des o2c-Constructors. Beispiele zur Verwendung des o2c-Constructors.

Diese Hilfe-Datei wendet sich an alle Programmierer, die den o2c-Constructor verwenden wollen. Daher ist die Objekt-Referenz in C++ und VisualBasic-Notation gehalten. Dessen Befehle und Eigenschaften lassen sich aber ohne grssere Schwierigkeiten in andere Programmiersprachen bersetzen. Die Beispiele sind hingegen in HTML und JavaScript verfasst um die Verwendung des o2c-Constructors direkt in dieser Hilfe-Datei zu verdeutlichen. Last update: 04/10/2011 03:22:36 Einbinden des o2c-Constructors Da der o2c-Constructor ein ganz normales ActiveX-Control ist knnen Sie ihn in jeder Umgebung verwenden, die ActiveX-Controls und das Component Object Model (COM) untersttzen. Dies sind u.a. die Entwicklungsumgebungen von Microsoft und Borland sowie von anderen Herstellern. Da COM fr sogut wie jede Programmiersprache verfgbar ist, knnen wir Ihnen hier nur eine Auswahl der gebrchlichsten Umgebungen vorstellen. Zu jeder der hier vorgestellten Sprachen finden Sie ein Beispiel in der Rubrik Beispiele Delphi HTML und JavaScript C++ Visual Basic Verwendung des Plugins mit Borland Delphi. Allgemeine Verwendung des Plugins im Internet und in HTML-Seiten. Verwendung des Plugins in C++. Einbindung des Plugins in VisualBasic Projekte.

Last update: 04/10/2011 03:22:36 Einbindung des o2c-Constructors in HTML und JavaScript.

Vom Internet in den Browser Je nach verwendetem Internet-Browser funktioniert die Anzeige und Installation der bentigten Software auf dem PC des Besuchers Ihrer Seite unterschied Idealfall ist die bentigte Software bereits vorhanden, so dass nur die Objekte (und eventuell Texturen, wenn Sie nicht das O2C-Format verwenden) von Ihrer Internetseite geladen werden Damit dieser Download aktiviert wird, mu Ihre HTML-Seite Verweise auf die Objekte enthalten. Leider gibt es zwei unterschiedliche Formate, diese Verweise in HTML zu formulieren:

Netscape verwendet einen <EMBED> Tag, in dem ein Dateiformat angegeben ist. Der Browser ldt dann das fr dieses Dateiformat zustndige Plug-In und bergibt die referenzierten Dat Microsoft benutzt einen <OBJECT> Tag, in dem die ID eines ActiveX-Controls angegeben ist, das diesen Eintrag anzeigen kann. Glcklicherweise ist es mglich, die beiden Formulierungen so ineinander zu verschachteln, dass die Anzeige in beiden Browsern funktioniert.

Was aber, wenn die Anzeigemodule auf dem PC des Besuchers Ihrer Web-Seite noch nicht installiert sind? Kein Problem - wenn Ihre Web-Seite die ntigen Hinweise auf eine mgliche Q Software (im Download-Bereich der o2c Web Site) enthlt, wird die Software mehr oder weniger automatisch installiert. Wiederum unterscheidet sich der Ablauf je nach verwendetem Br

der Internet Explorer ldt (falls die aktuellen Sicherheitseinstellungen dies nicht verbieten) die Installationsdatei, prft das in dieser Datei enthaltene Sicherheitszertifikat und fragt den Ben das darin enthaltene ActiveX-Control installiert werden soll. Wenn der Benutzer zustimmt, wird das o2c-Constructor Control dekomprimiert und installiert. Anschlieend wird die Anzeige HTML-Seite fortgesetzt und das Control sofort aktiviert.

der Netscape Navigator zeigt statt des Objektes einen Link an: "Klicken Sie hier, um das Plug-In zu installieren". Ein Klick auf den Link springt zur Download-Seite, in der per Mausklick Installation gestartet werden kann. Diese ldt das Installationsarchiv herunter, prft das darin enthaltene Sicherheitszertifikat und fragt den Benutzer, ob er der Installationsprozedur hinreic Rechte zur Installation einrumen will. Nachdem der Benutzer zugestimmt hat und die Installationsprozedur das Archiv entpackt und das Plug-In installiert hat, schliet der Benutzer die im angezeigte Download-Seite und sieht in der ursprnglich geffneten Seite nun statt des Download-Links das PlugIn.

Wenn Sie die im folgenden demonstrierten Richtlinien fr die Gestaltung der HTML-Seite einhalten, wird der Besucher Ihrer Seite also beim erstmaligen Besuch der Seite mit einigen wen

file://C:\Documents and Settings\Bruno\Configuraes locais\Temp\~hhFB94.htm

10/4/2011

o2c - Constructor

Page 2 of 24

Mausklicks die ntige Software installieren - bei weiteren Besuchen wird er sofort Ihre Seite betrachten knnen. Leider melden alle gngigen HTML-Editoren keinen Fehler, wenn Sie die Daten fr die automatische Installation nicht angeben - und beim lokalen Testen werden Sie das Problem wahrscheinlich auch nicht bemerken, da das Plug-In bzw. das ActiveX installiert ist!

Object- und Embed-Tag verschachteln Um die Darstellung sowohl im Navigator als auch im Internet Explorer zu gewhrleisten, verschachteln Sie beim Erstellen Ihrer HTML-Seite einen Object- und einen Embed wir ein Beispiel fr diese Verschachtelung zunchst in einzelnen Schritten. Sie knnen das Gesamtbeispiel (als zusammenhngender HTML-Code sowie in Funktion) weiter unten betracht Der Code beginnt mit einem Abschnitt fr den Internet Explorer:
<object classid codebase width height name ="CLSID:06293FDE-E099-48D1-BAF7-7ED9DFFB5513" ="http://www.o2c.de/kremer/area/O2CAreas.CAB#version=1,0,1,13" = 1 = 1 = "theCnstr">

Das hier definierte <object> hat folgende Eigenschaften: classid codebase Die OLE-ID (ClassID) des o2c-Constructors. Dieser Text ist konstant fr alle Objekte.

Die URL, unter der das Installationsarchiv des ActiveX-Controls abgerufen werden kann, falls auf dem lokalen Computer nicht mindestens die hier angegebene V bereits installiert ist. In der Regel sollten Sie hier die oben angegebene URL wrtlich bernehmen, es sei denn, Sie schreiben Dateien fr ein Intranet und haben in dieses Netzes einen eigenen Installationsserver eingerichtet. Die Breite des Plugins (in Pixeln). Dieser Wert wird ignoriert, da das PlugIn nicht sichtbar ist. Die Hhe des Plugins (in Pixeln). Dieser Wert wird ignoriert, da das PlugIn nicht sichtbar ist.

width height

Im Original Microsoft Format knnte der <object> Tag nach den Parametern mit </object> geschlossen werden. Da leider der Netscape Navigator diese Daten ignoriert, mssen Sie noch d Navigator-Variante integrieren. Daher folgt noch vor dem </object> Abschlu der <embed> Tag:
<embed codebase = "http://www.o2c.de/dl_plugin.htm" type = "application/x-o2c-areas" name = "theCnstr" hidden>

Die Laufzeitparameter kennen Sie bereits teilweise. Der unterschiedliche Wert fr codebase verweist auf die Download-Seite fr die Plug-In-Version des o2c-Constructors. Neu ist lediglic Angabe type, sie gibt den Datentyp des Plugins an (den sogenannten MIME-Type) und entspricht in etwa der classid Angabe im Microsoft Format. Wie diese ist der Wert fr alle Objekte (da das Plug-In genau fr diesen MIME-Type registriert wird). Der Wert hidden gibt an, dass das Plugin zur Laufzeit nicht sichtbar ist. Es folgt noch der Epilog:
</object>

Beispiel als zusammenhngender HTML-Code


<object classid = "CLSID:06293FDE-E099-48D1-BAF7-7ED9DFFB5513" codebase = "http://www.o2c.de/kremer/area/O2CAreas.CAB#version=1,0,1,13" name = "theCnstr" width = "1" height = "1"> <embed codebase = "http://www.o2c.de/dl_plugin.htm" type = "application/x-o2c-areas" name = "theCnstr" hidden> </object>

JavaScript: Auch hier gibt es (wie schon bei der HTML-Einbindung) groe Unterschiede zwischen Netscape Navigator und Microsoft Internet Explorer. Es ist aber mglich, eine HTML Seite so zu sc 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 allgeme Plugin Oberklasse abgeleitet wurde. Es gibt keinen Unterschied zwischen Attributen und Funktionen, alle Zugriffe erfolgen ber Funktionsaufrufe (z.B. setAmbientCoefficient(0.0)).

Microsoft hingegen verwendet eine JavaScript-basierte (generische) Einbindung fr ActiveX Controls, die Stark an Visual Basic orientiert ist (und darber hinaus stilistisch in das JavaScr Objektmodell pat). Funktionen und Eigenschaften werden unterschieden, an Eigenschaften sind Zuweisungen mglich (z.B. AmbientCoefficient = 0.0).

Sie knnen diese Unterschiede vor groen Teilen Ihrer Scripte verbergen, in dem Sie alle Zugriffe auf Eigenschaften durch eine Setze/Lese-Funktion vornehmen, die als Parameter den o2c Constructor, den Namen der Eigenschaft und (beim Setzen) den neuen Wert bergeben bekommt. Diese Funktion erstellt daraus einen String mit der richtigen Anweisung (abhngig vom verwendeten Browser) und fhrt diesen mit Hilfe der JavaScript-Funktion eval aus.

Grundlegendes Hilfsmittel fr alle folgenden Schritte ist eine Mglichkeit, den Browser des Betrachters zu untersuchen und abhngig vom Ergebnis verschiedenen JavaScript nach Komplexitt des Script-Codes und der bentigten Kompatibilitt fr alte Browser-Version kann diese Untersuchung aufwndig sein und als Ergebnis zum Beispiel eine Reihe von glo Variablen setzen (isIE, isIE4plus, ...). Ein Beispiel fr eine solche Untersuchung finden Sie in "The Ultimate JavaScript Client Sniffer". In den folgenden Beispielen verwenden wir eine se 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)

whrend 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 ausgefhrt wird, ist die folgende:
function IsNetscape() { var agt = navigator.userAgent.toLowerCase(); return (agt.indexOf("msie") == -1); }

Wir haben eine JavaScript-Datei, "o2cproxy.js", fr Sie erstellt, die diese Aufgabe fr Sie erledigt. Diese Datei dient dazu, Aufrufe des o2c-Players und des o2c-Constructors fr Netscape Internet Explorer zu Kapseln. Falls Sie diese Datei im Internet benutzen wollen, entfernen Sie bitte vorher alle nicht bentigten Funktionen und Kommentare, da diese Datei doch recht gro Ein Beispiel zur Verwendung finden Sie in der Rubrik Beispiele.

file://C:\Documents and Settings\Bruno\Configuraes locais\Temp\~hhFB94.htm

10/4/2011

o2c - Constructor

Page 3 of 24

Last update: 04/10/2011 03:22:36 Einbindung des o2c-Constructors in Delphi.

Da der o2c-Constructor ein ganz normales ActiveX-Control ist knnen Sie ihn wie jedes andere COM-Objekt auch mit Borland Delphi benutzen. Die hier vorgestellte Einbindung bezieht die Version 4 von Delphi. In anderen Versionen knnen die Meneintrge eventuell an anderer Stelle erscheinen - an der grundstzlichen Methode ndert dies aber nichts. So binden Sie den o2c-Constructor in Delphi ein: 1. Erstellen Sie ein neues Projekt. 2. ffnen Sie ber "Projekt/Typbibliothek importieren..." den Import Dialog von Delphi.

3. Selektieren Sie dort den Eintrag "o2c - simple objectcreation (Version x)". und schliessen Sie den Dialog mit "OK".

4. 5. 6. 7.

Fgen die soeben erzeugte Unit in die uses-Klausel Ihres Hauptformulars ein. Platzieren Sie eine Instanz des O2CPlayers auf Ihrem Formular. Fgen Sie eine Variable des Typs "IO2cAreaConstructor" zu Ihrer Formular-Klasse hinzu. Im OnCreate-Ereignis Ihres Formulars fgen Sie folgenden Code hinzu:

O2CConstructor1 := CoO2cAreaConstructor_.Create; O2CConstructor1.SetPlayer(O2CPlayer1);

Nun knnen Sie den o2c-Constructor wie in dieser Hilfe-Datei beschrieben benutzen. Sie knnen sich dabei an der VisualBasic-Notation orientieren, da Delphi automatisch Wrapper Sie erzeugt. Ein Beispiel zur Verwendung finden Sie in der Rubrik Beispiele. Last update: 04/10/2011 03:22:36 Einbindung des o2c-Constructors in C++. Da der o2c-Constructor ein ganz normales ActiveX-Control ist knnen Sie ihn wie jedes andere COM-Objekt auch mit C++ benutzen. Zu diesem Zweck finden Sie hier Files. So binden Sie den o2c-Constructor in C++ ein: 1. Fgen Sie Ihrem Projekt die Header-Datei und die Interface-Datei hinzu. 2. Erstellen Sie eine Instanz des o2c-Players. 3. Mit folgendem Code erzeugen Sie eine Instanz des o2c-Constructors:
#include "o2cAreaConstructor.h" HRESULT CreateO2CConstructor(IDispatch* lpO2CPlayer, IO2cAreaConstructor** lplpConstr) { IClassFactory* pICF = NULL; IUnknown* lpUnknown = NULL; IO2cAreaConstructor* lpConstr = NULL; VARIANT_BOOL ret = VARIANT_FALSE; HRESULT hr; // Parameter check: if (!lpO2CPlayer || !lplpConstr) return E_FAIL; // Class factory erzeugen: hr = CoGetClassObject(CLSID_O2cAreaConstructor, CLSCTX_SERVER, NULL, IID_IClassFactory, (void**)&pICF); if (FAILED(hr) || !pICF) return hr; // Instanz erzeugen: hr = pICF->CreateInstance(NULL, IID_IUnknown, (void**)&lpUnknown); pICF->Release(); if (FAILED(hr) || !lpUnknown) return hr; // IO2cAreaConstructor-Interface abholen: hr = lpUnknown->QueryInterface(IID_IO2cAreaConstructor, (void**)&lpConstr); lpUnknown->Release(); if (FAILED(hr) || !lpConstr) return hr; // Constructor mit dem Player verbinden: hr = lpConstr->SetPlayer(lpO2CPlayer, &ret); if (FAILED(hr) || ret == VARIANT_FALSE) {

file://C:\Documents and Settings\Bruno\Configuraes locais\Temp\~hhFB94.htm

10/4/2011

o2c - Constructor

Page 4 of 24

lpConstr->Release(); return hr; } // Erfolg: *lplpConstr = lpConstr; return S_OK; }

Nun knnen Sie den o2c-Constructor wie in dieser Hilfe-Datei beschrieben benutzen. Ein Beispiel zur Verwendung finden Sie in der Rubrik Beispiele. Last update: 04/10/2011 03:22:36 Einbindung des o2c-Constructors in Microsoft Visual Basic.

Da der o2c-Constructor ein ganz normales ActiveX-Control ist knnen Sie ihn wie jedes andere COM-Objekt auch mit VisualBasic benutzen. Die hier vorgestellte Einbindung bezieht s die Version 6 von VB. In anderen Versionen knnen die Meneintrge eventuell an anderer Stelle erscheinen - an der grundstzlichen Methode ndert dies aber nichts. So binden Sie den o2c-Constructor in VisualBasic ein: 1. Erstellen Sie ein neues Projekt. 2. ffnen Sie ber "Projekt/Verweise..." den Typbibliotheks-Katalog von Visual Basic.

3. Selektieren Sie dort den Eintrag "o2c - simple objectcreation". und schlieen Sie den Dialog mit "OK".

4. Platzieren Sie eine Instanz des O2CPlayers auf Ihrem Formular.

Nun knnen Sie den o2c-Constructor wie in dieser Hilfe-Datei beschrieben benutzen. Sie mssen diese Schritte bei jedem neuen Projekt erneut ausfhren, da Basic die Verweise pro Pro speichert. Ein Beispiel zur Verwendung finden Sie in der Rubrik Beispiele. Last update: 04/10/2011 03:22:36 Objekt-Referenz

Hier finden Sie eine bersicht aller Objekte des o2c-Constructors. Das wichtigste Objekt fr alle Operationen ist IO2cAreaConstructor. Mit Hilfe dieses Objektes knnen Sie Instanzen "Konstruktoren" anlegen.

Objekte: IObjectConstructor ILabel IO2cAreaConstructor IMaterial IO2cWriteParams IAcoWriteParams Dieses Objekt dient zur Erzeugung von 3D-Modellen, welche Sie dann in den o2c-Player integrieren knnen. Erzeugen Sie mit diesem Objekt Schilder und Texturen. Der Kern des Constructors. Objekt zur Beschreibung eines Materials. Erweiterte Objektdaten beim Speichern von Objekten. Basis-Objektdaten beim Speichern von Objekten. Last update: 04/10/2011 03:22:36 IObjectConstructor

Objekt zum Erzeugen von 3D-Modellen. Verwendung: 1. Erzeugen Sie mittels IO2cAreaConstructor.NewConstructor ein neues IObjectConstructor-Objekt. 2. Fgen Sie dem Objekt Punkte und Polygone hinzu.

file://C:\Documents and Settings\Bruno\Configuraes locais\Temp\~hhFB94.htm

10/4/2011

o2c - Constructor

Page 5 of 24

3. Schlieen Sie jedes Subobject mit CloseSubObject ab. 4. Schlieen Sie das Objekt mit Finish ab. Ein Beispiel zur Verwendung finden Sie in der Rubrik Beispiele.

Funktionen: SetPoint SetHolePoint AddTriangle AddQuadriliteral Setzt einen Punkt eines Dreiecks, Vierecks oder Polygons Setzt eine Koordinate eines Punktes innerhalb des Objektes. Fgt dem Objekt ein Dreieck hinzu. Fgt dem Objekt ein Viereck hinzu.

AddPolygonWithHoles Fgt dem Objekt ein Polygon mit Lchern hinzu SetContur SetHoleContur CloseSubObject AddLight Finish Init SetSubObjectName Setzt alle Punkte eines Polygons auf einmal. Setzt alle Punkte eines Loches auf einmal. Beendet das aktuelle Subobjekt. Fgt dem Objekt eine Lichtquelle hinzu. Fertigstellung des Objektes. Setzt globale Parameter und startet ein neues Objekt. Setzt den Namen eines Subobjektes.

Last update: 04/10/2011 03:22:36 IObjectConstructor::SetPoint Whrend der Konstruktion von Objekten knnen Sie mit dieser Funktion einzelne Punkte zu Dreiecken, Polygonen oder Vierecken hinzufgen. Der Parameter index Punkt Sie setzen wollen. Fr ein Dreieck z.B.wrden Sie die Indices 0, 1 und 2 setzen. Sobald Sie alle Punkte einer Flche gesetzt haben, knnen Sie diese mit AddTriangle, AddQuadriliteral oder AddPolygonWithHoles zu dem Objekt hinzufgen. Deklaration: C++:
HRESULT SetPoint(short index, float x, float y, float z, float u, float v);

Basic: Sub SetPoint(ByVal index As Short, ByVal x As Single, ByVal y As Single, ByVal z As Single, ByVal u As Single, ByVal v As Single) Parameter:
index x, y, z u, v

Index des Punktes, bei 0 beginnend, innerhalb des Polygons, Dreiecks oder Vierecks. 3D-Koordinate des Punktes. Textur-Koordinate des Punktes. Last update: 04/10/2011 03:22:36

IObjectConstructor::SetHolePoint

Whrend der Konstruktion von Objekten knnen Sie mit dieser Funktion einzelne Lcher zu Polygonen hinzufgen. Der Parameter holeIndex bestimmt dabei, welches Loch Sie gerad bearbeiten. Der Parameter pointIndex gibt an, welchen Punkt innerhalb des Loches Sie setzen wollen. Fr ein Dreieck z.B.wrden Sie die Indices 0, 1 und 2 setzen. Sobald Sie alle Punkte und Lcher einer Flche gesetzt haben, knnen Sie diese mit AddPolygonWithHoles zu dem Objekt hinzufgen. Deklaration: C++:
HRESULT SetHolePoint(short holeIndex, short pointIndex, float x, float y, float z, float u, float v);

Basic: Sub SetHolePoint(ByVal holeIndex As Short, ByVal pointIndex As Short, ByVal x As Single, ByVal y As Single, ByVal z As Single, ByVal u As Sin
ByVal v As Single)

Parameter:
holeIndex pointIndex x, y, z u, v

Index des Loches, bei 1 beginnend. Ein Polygon kann mehrere Lcher haben. Index des Punktes, bei 0 beginnend innerhalb des Loches. 3D-Koordinate des Punktes. Textur-Koordinate des Punktes. Last update: 04/10/2011 03:22:36

IObjectConstructor::AddTriangle

Mit dieser Funktion knnen Sie ein Dreieck zu dem aktuellen (Sub-) Objekt hinzufgen. Sie mssen die Punkte des Dreiecks vorher per SetPoint hinzugefgt haben. Desweiteren msse bereits ein Material definiert haben. Deklaration: C++:
HRESULT AddTriangle(long SharpEdgesAndSnapFlag, IMaterial* mat, BSTR TextureName);

Basic: Sub AddTriangle(ByVal SharpEdgesAndSnapFlag As Long, ByRef mat As IMaterial, ByVal TextureName As String)

file://C:\Documents and Settings\Bruno\Configuraes locais\Temp\~hhFB94.htm

10/4/2011

o2c - Constructor

Page 6 of 24

Parameter:
SharpEdgesAndSnapFlag Bitmaske, die die Eigenschaften der Flche reprsentieren. Addieren Sie dazu bitte folgende Werte: 0x0002: Diese Flche kann zum Schnappen verwendet werden. 0x0100: Kante 1 ist eine scharfe Kante. 0x0200: Kante 2 ist eine scharfe Kante. 0x0400: Kante 3 ist eine scharfe Kante. mat TextureName

Materialdefinition. Diese knnen Sie per IO2cAreaConstructor.NewMaterial erzeugen Name der Textur (Dateiname oder interner Name). Kann leer sein, falls das Material nicht texturiert ist. Last update: 04/10/2011 03:22:36 IObjectConstructor::AddQuadriliteral

Mit dieser Funktion knnen Sie ein Viereck zu dem aktuellen (Sub-) Objekt hinzufgen. Sie mssen die Punkte des Vierecks vorher per SetPoint hinzugefgt haben. Desweiteren msse bereits ein Material definiert haben. Deklaration: C++:
HRESULT AddTriangle(long SharpEdgesAndSnapFlag, IMaterial* mat, BSTR TextureName);

Basic: Sub AddTriangle(ByVal SharpEdgesAndSnapFlag As Long, ByRef mat As IMaterial, ByVal TextureName As String) Parameter:
SharpEdgesAndSnapFlag Bitmaske, die die Eigenschaften der Flche reprsentieren. Addieren Sie dazu bitte folgende Werte: 0x0002: Diese Flche kann zum Schnappen verwendet werden. 0x0100: Kante 1 ist eine scharfe Kante. 0x0200: Kante 2 ist eine scharfe Kante. 0x0400: Kante 3 ist eine scharfe Kante. 0x0800: Kante 4 ist eine scharfe Kante. mat TextureName

Materialdefinition. Diese knnen Sie per IO2cAreaConstructor.NewMaterial erzeugen Name der Textur (Dateiname oder interner Name). Kann leer sein, falls das Material nicht texturiert ist. Last update: 04/10/2011 03:22:36 IObjectConstructor::AddPolyonWithHoles

Mit dieser Funktion knnen Sie ein Polygon zu dem aktuellen (Sub-) Objekt hinzufgen. Sie mssen die Punkte und Lcher des Polygons vorher per SetPoint und SetHolePoint haben. Desweiteren mssen Sie bereits ein Material definiert haben. Deklaration: C++:
HRESULT AddPolygonWithHoles(VARIANT_BOOL SharpEdges, VARIANT_BOOL Snap, IMaterial* mat, BSTR TextureName);

Basic: Sub AddPolygonWithHoles(ByVal SharpEdges As Boolean, ByVal Snap As Boolean, ByRef mat As IMaterial, ByVal TextureName As String) Parameter:
SharpEdges Snap mat TextureName

Dieses Polygon hat scharfe Kanten. Dieses Polygon kann zum Schnappen verwendet verden. Materialdefinition. Diese knnen Sie per IO2cAreaConstructor.NewMaterial erzeugen Name der Textur (Dateiname oder interner Name). Kann leer sein, falls das Material nicht texturiert ist. Last update: 04/10/2011 03:22:36

IObjectConstructor::SetContur Mit dieser Funktion knnen Sie gleich mehrere Punkte eines Polygons setzen. Sobald Sie alle Punkte und Lcher einer Flche gesetzt haben, knnen Sie diese mit AddPolygonWithHoles zu dem Objekt hinzufgen. Deklaration: C++:
HRESULT SetContur(short numPoints, VARIANT points);

Basic: Sub SetContur(ByVal numPoints As Short, ByVal points As Variant) Parameter:


numPoints points

Anzahl der Punkte im Array. Variantes Array mit den Punkten. Last update: 04/10/2011 03:22:36

IObjectConstructor::SetHoleContur Mit dieser Funktion knnen Sie gleich mehrere Punkte eines Loches eines Polygons setzen. Sobald Sie alle Punkte und Lcher einer Flche gesetzt haben, knnen Sie diese mit AddPolygonWithHoles zu dem Objekt hinzufgen. Deklaration: C++:
HRESULT SetHoleContur(short holeIndex, short numPoints, VARIANT points);

file://C:\Documents and Settings\Bruno\Configuraes locais\Temp\~hhFB94.htm

10/4/2011

o2c - Constructor

Page 7 of 24

Basic: Sub SetHoleContur(ByVal holeIndex As Short, ByVal numPoints As Short, ByVal points As Variant) Parameter:
holeIndex numPoints points

Index des aktuellen Loches. Anzahl der Punkte im Array. Variantes Array mit den Punkten. Last update: 04/10/2011 03:22:36

IObjectConstructor::CloseSubObject

Ein konstruiertes Objekt kann im o2c-Constructor aus mehreren Sub-Objekten bestehen. Sobald Sie ein Subobjekt abgeschlossen haben, rufen Sie CloseSubObject auf. Sie knnen dies Objekt spter per SetSubObjectName mit einem Namen versehen. Alle darauf folgenden Polygonmethoden beziehen sich nun auf das nchste Subobjekt. Wenn Sie das Objekt mit schlieen, wird das aktuelle Subobjekt automatisch geschlossen. Deklaration: C++:
HRESULT CloseSubObject(long *pResult);

Basic: Function CloseSubObject As Long Rckgabewert (In C++ ber pResult): Index des erzeugten Sub-Objektes Last update: 04/10/2011 03:22:36 IObjectConstructor::AddLight Mit dieser Funktion knnen Sie eine Lichtquelle zu dem Objekt hinzufgen. Sie bestimmen dabei die Position und die Farbe des Lichtes. Deklaration: C++:
HRESULT AddLight(float posX, float posY, float posZ, float colRed, float colGreen, float colBlue, VARIANT_BOOL *pResult);

Basic: Function AddLight(ByVal posX As Single, ByVal posY As Single, ByVal posZ As Single, ByVal colRed As Single, ByVal colGreen As Single, ByVal
colBlue As Single) As Boolean

Parameter:
posX, posY, posZ colRed, colGreen, colBlue

Position des Lichtes innerhalb des Objektes. Farbanteile des Lichts. Der Wertebereich geht hier von 0.0 bis 1.0

Rckgabewert (In C++ ber pResult): True, wenn erfolgreich, ansonsten False. Last update: 04/10/2011 03:22:36 IObjectConstructor::Finish

Erzeugt das Objekt aus den bis jetzt bergebenen Daten und fgt dieses in den o2c-Player ein. Dort kann es wie jedes beliebige, mit AddObject geladenes, Objekt behandelt werden. Da Objekt wird nicht auf der Festplatte sondern intern im o2c-Player gespeichert. Wenn Sie dieses IObjectConstructor-Objekt weiterhin verwenden wollen, reinitialisieren Sie es bitte mit Init. Deklaration: C++:
HRESULT Finish(BSTR Name, long additionalFlags, long *pResult);

Basic: Function Finish(ByVal Name As String, ByVal additionalFlags As Long) As Long Parameter:
Name additionalFlags

Interner Name des Objektes. Zur Zeit keine Flags definiert.

Rckgabewert (In C++ ber pResult): Die ID des erzeugten Objektes innerhalb des o2c-Players. Last update: 04/10/2011 03:22:36 IObjectConstructor::Init Mit dieser Funktion knnen Sie die Objektkonstruktion (re-) initialisieren. Dies ist nur notwendig, falls Sie vom Standard abweichende Einstellungen verwenden wollen oder wenn Sie Finish abgeschlossenes IObjectConstructor-Objekt weiterverwenden wollen. Deklaration: C++:
HRESULT Init(float MinPntDist, float SharpAngle, VARIANT_BOOL *pResult);

Basic: Function Init(ByVal MinPntDist As Single, ByVal SharpAngle As Single) As Boolean Parameter:

file://C:\Documents and Settings\Bruno\Configuraes locais\Temp\~hhFB94.htm

10/4/2011

o2c - Constructor

Page 8 of 24

MinPtDist SharpAngle

Maximaler Abstand zwischen zwei Punkten, beim dem diese als gleich angesehen werden. Minimaler Winkel, bei dem Kanten als scharf angesehen werden.

Rckgabewert (In C++ ber pResult): True, wenn erfolgreich, ansonsten False. Last update: 04/10/2011 03:22:36 IObjectConstructor::SetSubObjectName

O2C-Objekte enthalten die Namen der Teilobjekte, die als Tooltip angezeigt werden. Diese Texte knnen in mehreren Sprachen im Objekt enthalten sein. Sie knnen natrlich auch Ihr selbstkonstruierten Objekte mit Namen versehen. Verwenden Sie dazu bitte den Index des Subobjektes, der von CloseSubObject zurckgeliefert wird. Deklaration: C++:
HRESULT SetSubObjectName(long Index, BSTR Language, BSTR Name, VARIANT_BOOL *pResult);

Basic: Function SetSubObjectName(ByVal Index As Long, ByVal Language As String, ByVal Name As String) As Boolean Parameter:
Index Language

Index des Subobjektes. Dies ist der Wert, der von CloseSubObject zurckgeliefert wird.

Sprache des Namens. Es ist mglich, den Objektnamen in mehrere Sprachen anzugeben. Gltige Sprachkennungen sind zwei Zeichen lang und grogeschrieben "DE" fr Deutsch oder "XX" fr neutral. Der Name des Subobjektes.

Name

Rckgabewert (In C++ ber pResult): True, wenn erfolgreich, ansonsten False. Last update: 04/10/2011 03:22:36 ILabel Objekt zum Erzeugen von Text-Texturen. Verwendung: 1. 2. 3. 4. Erzeugen Sie mittels IO2cAreaConstructor.NewLabel ein neues ILabel-Objekt. Stellen Sie die gewnschten Eigenschaften wie Caption, ForeColor usw. ein. Erzeugen Sie die Textur per ILabel.CreateTexture Binden Sie die erzeugte Textur mittels IO2CPlayer.ReplaceTexture in den o2c-Player ein.

Ein Beispiel zur Verwendung finden Sie in der Rubrik Beispiele.

Eigenschaften: Alignment AutoSize BackColor BackStyle BorderStyle Caption Font ForeColor Height Left Top Width WordWrap BorderColor vAlign Funktionen: CreateTexture Fertigstellung der Textur. Horizontale Ausrichtung des Textes. Automatische Anpassung der Texturgrsse an die Textgrsse. Hintergrundfarbe des Textes. Hintergrundstil des Textes (Transparent oder Deckend). Rahmentyp. Der Text, der auf dieser Textur erscheinen soll. Der Zeichensatz, mit dem gezeichnet werden soll. Textfarbe. Hhe der Textur. Abstand des Textes vom linken Rand der Textur. Abstand des Textes vom oberen Rand der Textur. Breite der Textur. Steuert den automatischen Zeilenumbruch. Rahmenfarbe Vertikale Ausrichtung des Textes.

Last update: 04/10/2011 03:22:36 ILabel::Alignment Bestimmt die horizontale Ausrichtung des Textes innerhalb des Textfeldes. Mgliche Werte sind: 0: Links 1: Rechts

file://C:\Documents and Settings\Bruno\Configuraes locais\Temp\~hhFB94.htm

10/4/2011

o2c - Constructor

Page 9 of 24

2: Zentriert Eigenschaft: Typ: Standardwert: Short 0 (Links) Last update: 04/10/2011 03:22:36 ILabel::AutoSize Wenn AutoSize auf True gesetzt ist, werden die Abmessungen des Textfeldes automatisch an den Text angepasst. Eigenschaft: Typ: Standardwert: Boolean False Last update: 04/10/2011 03:22:36 ILabel::BackColor Bestimmt die Hintergrundfarbe des Textes. Eigenschaft: Typ: Standardwert: Long 0x00FFFFFF, Wei Last update: 04/10/2011 03:22:36 ILabel::BackStyle Bestimmt, wie der Hintergrund des Textes gezeichnet wird. Mgliche Werte sind: 0: Transparent 1: Deckend Eigenschaft: Typ: Standardwert: Short 1 (Deckend) Last update: 04/10/2011 03:22:36 ILabel::BorderStyle Bestimmt, wie der Rand des Textes gezeichnet wird. Mgliche Werte sind: 0: Kein Rahmen 1: Einfacher, dnner Rahmen Eigenschaft: Typ: Standardwert: Short 0 (Kein Rahmen) Last update: 04/10/2011 03:22:36 ILabel::Caption Der Text, der auf dieser Textur erscheinen soll. Eigenschaft: Typ: Standardwert: String "" (Leerer String) Last update: 04/10/2011 03:22:36 ILabel::Font Der Zeichensatz, mit dem der Text gezeichnet werden soll. Eigenschaft: Typ: Standardwert: IFont Der Standard-Zeichensatz des Systems. Last update: 04/10/2011 03:22:36 ILabel::ForeColor Die Farbe, mit der der Text gezeichnet werden soll. Eigenschaft:

file://C:\Documents and Settings\Bruno\Configuraes locais\Temp\~hhFB94.htm

10/4/2011

o2c - Constructor

Page 10 of 24

Typ: Standardwert:

Long 0x00000000 (Schwarz) Last update: 04/10/2011 03:22:36 ILabel::Height

Hhe des Textfeldes. Eigenschaft: Typ: Standardwert: Long 0 Last update: 04/10/2011 03:22:36 ILabel::Left Abstand des Textfeldes vom linken Rand der Textur. Eigenschaft: Typ: Standardwert: Long 0 Last update: 04/10/2011 03:22:36 ILabel::Top Abstand des Textfeldes vom oberen Rand der Textur. Eigenschaft: Typ: Standardwert: Long 0 Last update: 04/10/2011 03:22:36 ILabel::Width Breite des Textfeldes. Eigenschaft: Typ: Standardwert: Long 0 Last update: 04/10/2011 03:22:36 ILabel::WordWrap Schaltet den automatischen Zeilenumbruch innerhalb des Textfeldes ein oder aus. Eigenschaft: Typ: Standardwert: Boolean True Last update: 04/10/2011 03:22:36 ILabel::BorderColor Randfarbe des Textfeldes. Hat keine Auswirkung, wenn der Rand per BorderStyle ausgeschaltet ist. Eigenschaft: Typ: Standardwert: Long 0x00000000 (Schwarz) Last update: 04/10/2011 03:22:36 ILabel::vAlign Bestimmt die vertikale Ausrichtung des Textes innerhalb des Textfeldes. Mgliche Werte sind: 0: Oben 1: Unten 2: Zentriert Eigenschaft: Typ: Standardwert: Short 0 (Oben)

file://C:\Documents and Settings\Bruno\Configuraes locais\Temp\~hhFB94.htm

10/4/2011

o2c - Constructor

Page 11 of 24

Last update: 04/10/2011 03:22:36 ILabel::CreateTexture

Mit dieser Funktion schlieen Sie die Erzeugung der Textur ab. Die Textur wird unter dem angegebenen Namen in den internen Speicher des o2c-Players geladen. Von dort aus kann di Textur mittels IO2CPlayer.ReplaceTexture auf ein Objekt angewand werden. Die Textur wird nicht auf dem Rechner gespeichert. Deklaration: C++:
HRESULT CreateTexture(OLE_COLOR planeColor, long Width, long Height, BSTR TextureURL, VARIANT_BOOL *pResult);

Basic: Function HRESULT CreateTexture(ByVal planeColor As Long, ByVal Width As Long, ByValHeight As Long, ByVal TextureURL As String) As Boolean Parameter:
planeColor Width Height TextureURL

Hintergrundfarbe der Textur (Nicht des Textes, siehe BackColor). Breite der Textur. Muss einen Wert von 2 hoch n aufweisen (2, 4, 8, 16, 32, 64, 128 usw.) Hhe der Textur. Muss einen Wert von 2 hoch n aufweisen (2, 4, 8, 16, 32, 64, 128 usw.) Interner Name der Textur.

Rckgabewert (In C++ ber pResult): True, wenn erfolgreich, ansonsten False. Last update: 04/10/2011 03:22:36 IO2cAreaConstructor Das Hauptobjekt des Controls. Verwendung: Anweisungen, wie Sie das IO2cAreaConstructor Objekt verwenden, finden Sie unter Einbinden des o2c-Constructors. Beispiele zur Verwendung finden Sie in der Rubrik

Funktionen: SetPlayer NewConstructor NewMaterial NewLabel NewO2CSaveParams NewAcoWriteParams ExportObjectAsO2C Verbindet den Constructor mit einer Instanz des o2c-Players. Erzeugt ein neues IObjectConstructor Objekt. Erzeugt ein neues IMaterial Objekt. Erzeugt ein neues ILabel Objekt. Erzeugt ein neues IO2cWriteParams Objekt. Erzeugt ein neues IAcoWriteParams Objekt. Exportiert das aktuelle Objekt als Datei.

ExportAllObjectsAsO2C Exportiert die gesamte Szene als Objekt. ClearPointsOfView AddPointOfView SetPointOfViewName Lscht alle Betrachterstandpunkte Fgt einen neuen Betrachterstandpunkt hinzu. Benennt einen Betrachterstandpunkt.

Last update: 04/10/2011 03:22:36 IO2cAreaConstructor::SetPlayer Verbindet den o2c-Constructor mir einer laufenden Instanz eines o2c-Players. Dies ist notwendig, um den o2c-Constructor nutzen zu knnen. Deklaration: C++:
HRESULT SetPlayer(IDispatch * thePlayer, VARIANT_BOOL *pResult);

Basic: Function SetPlayer(ByRef thePlayer As IO2CPlayer) As Boolean Parameter:


thePlayer

Interface einer laufenden o2c-Player Instanz.

Rckgabewert (In C++ ber pResult): True, wenn erfolgreich, ansonsten False Last update: 04/10/2011 03:22:36 IO2cAreaConstructor::NewConstructor

Mit dieser Funktion knnen Sie ein neues IObjectConstructor-Objekt erzeugen. Die Parameter entsprechen denen der Funktion IObjectConstructor.Init. Diese braucht bei der Ersterzeug nicht seperat aufgerufen zu werden. Deklaration: C++:
HRESULT NewConstructor(float MinPntDist, float SharpAngle, IObjectConstructor **pResult);

Basic: Function NewConstructor(ByVal MinPntDist As Single, ByVal SharpAngle As Single) As IObjectConstructor

file://C:\Documents and Settings\Bruno\Configuraes locais\Temp\~hhFB94.htm

10/4/2011

o2c - Constructor

Page 12 of 24

Parameter:
MinPtDist SharpAngle

Maximaler Abstand zwischen zwei Punkten, beim dem diese als gleich angesehen werden. Minimaler Winkel, bei dem Kanten als scharf angesehen werden.

Rckgabewert (In C++ ber pResult): Das erzeugte IObjectConstructor-Objekt, oder NULL (bzw. Nothing) im Fehlerfall. Last update: 04/10/2011 03:22:36 IO2cAreaConstructor::NewMaterial Mit dieser Funktion knnen Sie ein neues IMaterial-Objekt erzeugen. Dieses wird bei der Erzeugung von Flchen bentigt. Deklaration: C++:
HRESULT NewConstructor(IMaterial **pResult);

Basic: Function NewMaterial As IMaterial Rckgabewert (In C++ ber pResult): Das erzeugte IMaterial-Objekt, oder NULL (bzw. Nothing) im Fehlerfall. Last update: 04/10/2011 03:22:36 IO2cAreaConstructor::NewLabel Mit dieser Funktion knnen Sie ein neues ILabel-Objekt erzeugen. Dieses wird zur Erzeugung von Schildern bentigt. Deklaration: C++:
HRESULT NewLabel(ILabel **pResult);

Basic: Function NewLabel As ILabel Rckgabewert (In C++ ber pResult): Das erzeugte ILabel-Objekt, oder NULL (bzw. Nothing) im Fehlerfall. Last update: 04/10/2011 03:22:36 IO2cAreaConstructor::NewO2CSaveParams Mit dieser Funktion knnen Sie ein neues IO2cWriteParams-Objekt erzeugen. Dieses Objekt dient dazu, erweiterte Objekt-Eigenschaften beim Speichern von Objekten einzustellen. Deklaration: C++:
HRESULT NewO2CSaveParams(IO2cWriteParams **pResult);

Basic: Function NewO2CSaveParams As IO2cWriteParams Rckgabewert (In C++ ber pResult): Das erzeugte IO2cWriteParams-Objekt, oder NULL (bzw. Nothing) im Fehlerfall. Last update: 04/10/2011 03:22:36 IO2cAreaConstructor::NewAcoWriteParams Mit dieser Funktion knnen Sie ein neues IAcoWriteParams-Objekt erzeugen. Dieses Objekt dient dazu, erweiterte Objekt-Eigenschaften beim Speichern von Objekten einzustellen. Deklaration: C++:
HRESULT NewAcoWriteParams(IAcoWriteParams **pResult);

Basic: Function NewAcoWriteParams As IAcoWriteParams Rckgabewert (In C++ ber pResult): Das erzeugte IAcoWriteParams-Objekt, oder NULL (bzw. Nothing) im Fehlerfall. Last update: 04/10/2011 03:22:36 IO2cAreaConstructor::ExportObjectAsO2C Speichert ein Objekt aus dem Cache des o2c-Players als o2c-Datei. Sie bentigen dazu eine funktionsfhige Version von ArCon ab Version 5 oder des o2c-Composers. Die Parameter des Objektes knnen Sie mit den Parametern o2cParams und objectParams einstellen. Deklaration: C++:
HRESULT ExportObjectAsO2C(long objectID, BSTR fileName, IO2cWriteParams *o2cParams, IAcoWriteParams *objectParams, VARIANT_BOOL *pVal);

Basic: Function ExportObjectAsO2C(ByVal objectID As Long, ByVal fileName As String, ByRef o2cParams As IO2cWriteParams, ByRef objectParams As
IAcoWriteParams) As Boolean

Parameter:

file://C:\Documents and Settings\Bruno\Configuraes locais\Temp\~hhFB94.htm

10/4/2011

o2c - Constructor

Page 13 of 24

objectID fileName o2cParams objectParams

Die Objekt-ID innerhalb des o2c-Players. Dateiname unter dem das Objekt gespeichert werden soll. IO2cWriteParams-Objekt, das die erweiterten Eigenschaften des gespeicherten Objektes beschreibt. IAcoWriteParams-Objekt, das die grundlegenden Eigenschaften des gespeicherten Objektes beschreibt.

Rckgabewert (In C++ ber pResult): True, wenn erfolgreich, ansonsten False. Last update: 04/10/2011 03:22:36 IO2cAreaConstructor::ExportAllObjectsAsO2C Speichert die komplette Szene des o2c-Players als o2c-Datei. Sie bentigen dazu eine funktionsfhige Version von ArCon ab Version 5 oder des o2c-Composers. Die Parameter des Objektes knnen Sie mit den Parametern o2cParams und objectParams einstellen. Deklaration: C++:
HRESULT ExportAllObjectsAsO2C(BSTR fileName, IO2cWriteParams *o2cParams, IAcoWriteParams *objectParams, VARIANT_BOOL *pVal);

Basic: Function ExportAllObjectsAsO2C(ByVal fileName As String, ByRef o2cParams As IO2cWriteParams, ByRef objectParams As IAcoWriteParams) As Boolea Parameter:
fileName o2cParams objectParams

Dateiname unter dem das Objekt gespeichert werden soll. IO2cWriteParams-Objekt, das die erweiterten Eigenschaften des gespeicherten Objektes beschreibt. IAcoWriteParams-Objekt, das die grundlegenden Eigenschaften des gespeicherten Objektes beschreibt.

Rckgabewert (In C++ ber pResult): True, wenn erfolgreich, ansonsten False. Last update: 04/10/2011 03:22:36 IO2cAreaConstructor::ClearPointsOfView Lscht alle vordefinierten Betrachterstandpunkte innerhalb der Szene. Deklaration: C++:
HRESULT ClearPointsOfView();

Basic: Sub ClearPointsOfView

Last update: 04/10/2011 03:22:36 IO2cAreaConstructor::AddPointOfView Fgt der Szene einen vordefinierten Betrachterstandpunkt hinzu. Diese knnen ber das Kontextmen des o2c-Players oder auch ber JavaScript aufgerufen werden. Deklaration: C++:

HRESULT AddPointOfView(float VRPx, float VRPy, float VRPz, float EyeX, float EyeY, float EyeZ, float tanViewAngleHalf, VARIANT_BOOL parallel, *pResult); As Single, ByVal tanViewAngleHalf As Single, ByVal parallel As Boolean) As Long

Basic: Function AddPointOfView(ByVal VRPx As Single, ByVal VRPy As Single, ByVal VRPz As Single, ByVal EyeX As Single, ByVal EyeY As Single, ByVal E

Parameter:
VRPx, VRPy, VRPy EyeX, EyeY, EyeZ tanViewAngleHalf

Weltkoordinaten des View Reference Points (des Punktes, auf den der Betrachter blickt). Weltkoordinaten des Augpunktes (des Punktes, von dem aus der Betrachter blickt).

Der Tangens des Winkels zwischen dem Strahl vom Augpunkt durch den VRP und dem Strahl zwischen dem Augpunkt und einem Punkt am uersten Rand de Projektionsflche. Anders ausgedrckt: die Hlfte der Breite der (sichtbaren) Projektionsflche geteilt durch den Abstand des Betrachters von dieser Flche. Perspektivisch korrekte Ansicht oder parallele Ansicht.

parallel

Rckgabewert (In C++ ber pResult): Die ID des neu hinzugefgten Betrachterstandpunktes. Last update: 04/10/2011 03:22:36 IO2cAreaConstructor::SetPointOfViewName Mit dieser Funktion knnen Sie einen Betrachterstandpunkt mit einem Namen versehen. Deklaration: C++:
HRESULT SetPointOfViewName(long povIndex, BSTR povName, BSTR Language, VARIANT_BOOL *pResult);

Basic: Function SetPointOfViewName(ByVal povIndex As Long, ByVal povName As String, ByVal Language As String) As Boolean

file://C:\Documents and Settings\Bruno\Configuraes locais\Temp\~hhFB94.htm

10/4/2011

o2c - Constructor

Page 14 of 24

Parameter:
povIndex povName Language

Index des zu bearbeiteten Betrachterstandpunktes. Der neue Name. Gltige Sprachkennungen sind zwei Zeichen lang und grogeschrieben, z.B. "DE" fr Deutsch oder "XX" fr neutral.

Rckgabewert (In C++ ber pResult): True, wenn erfolgreich, ansonsten False. Last update: 04/10/2011 03:22:36 IMaterial Materialparameter eines Objektes. Verwendung: 1. Erzeugen Sie mittels IO2cAreaConstructor.NewMaterial ein neues IMaterial-Objekt. 2. Stellen Sie die gewnschten Eigenschaften ein. 3. bergeben Sie das Material bei den Dreiecks-, Quad- und Polygonfunktionen von IObjectConstructor Ein Beispiel zur Verwendung finden Sie in der Rubrik Beispiele.

Eigenschaften: AmbientCoefficient Reflektionsfaktor des ambienten Anteil des Lichtes. DiffuseCoefficient DiffuseColor Flags Reflektionsfaktor des diffusen Anteil des Lichtes.. Farbe des diffusen Lichtes Einige Flags, die das Material nher beschreiben.

HighlightExponent Reflektionsfaktor fr highlights. SpecularCoefficient Anteil des reflektierten Lichtes. Specularcolor Transparency Transparent Farbe des reflektierten Lichtes. Transparenz des Materials. Ist das Material transparent?

Last update: 04/10/2011 03:22:36 IMaterial::AmbientCoefficient Koeffizient (zwischen 0 und 1) zur Bestimmung der Strke der Reflektion von ambientem Licht. Um einen Eindruck vom Verhalten dieses Parameters zu erhalten, betrachten Sie bitte folgendes Beispiel. Eigenschaft: Typ: Standardwert: float bzw. Single 0.0 Last update: 04/10/2011 03:22:36 IMaterial::DiffuseCoefficient Koeffizient (zwischen 0 und 1) zur Bestimmung der Strke der Reflektion von diffusem Licht. Um einen Eindruck vom Verhalten dieses Parameters zu erhalten, betrachten Sie bitte folgendes Beispiel. Eigenschaft: Typ: Standardwert: float bzw. Single 0.0 Last update: 04/10/2011 03:22:36 IMaterial::DiffuseColor Diffuser Anteil des Lichtes. Um einen Eindruck vom Verhalten dieses Parameters zu erhalten, betrachten Sie bitte folgendes Beispiel. Eigenschaft: Typ: Standardwert: Long 0.0 Last update: 04/10/2011 03:22:36 IMaterial::Flags

file://C:\Documents and Settings\Bruno\Configuraes locais\Temp\~hhFB94.htm

10/4/2011

o2c - Constructor

Page 15 of 24

Bitmaske, die das Verhalten des Materials bestimmt. Folgende Werte sind mglich: 0x0001: 0x0002: 0x0004: 0x0008: 0x0010: 0x0020: 0x0040: Das Material ist texturiert. Die Textur ist eine Maskentextur. Das Material ist selbstleuchtend. Die Farbe des Materials wird mit der Textur gemischt. Die Flchen mit diesem Material sind auch von innen zu sehen (normalerweise werden nur Auenflchen dargestellt). Die Textur ist eine Reflektionsmaske. Das Material reflektiert beim Raytracen ideal.

Um einen Eindruck vom Verhalten dieses Parameters zu erhalten, betrachten Sie bitte folgendes Beispiel. Eigenschaft: Typ: Standardwert: Long 0 Last update: 04/10/2011 03:22:36 IMaterial::HighlightExponent Koeffizient (zwischen 0 und 1) zur Bestimmung der Strke der Refraktion. Um einen Eindruck vom Verhalten dieses Parameters zu erhalten, betrachten Sie bitte folgendes Beispiel. Eigenschaft: Typ: Standardwert: float bzw. Single 0.0 Last update: 04/10/2011 03:22:36 IMaterial::SpecularCoefficient Koeffizient (zwischen 0 und 1) zur Bestimmung der Strke der glnzenden Reflektion. Um einen Eindruck vom Verhalten dieses Parameters zu erhalten, betrachten Sie bitte folgendes Beispiel. Eigenschaft: Typ: Standardwert: float bzw. Single 0.0 Last update: 04/10/2011 03:22:36 IMaterial::SpecularColor Farbe (RGB), in der das Licht spiegelnd/glnzend reflektiert wird. Um einen Eindruck vom Verhalten dieses Parameters zu erhalten, betrachten Sie bitte folgendes Beispiel. Eigenschaft: Typ: Standardwert: Long 0.0 Last update: 04/10/2011 03:22:36 IMaterial::Transparency Tranparenz des Materials, wobei die Werte 0.0 fr massiv und 1.0 fr ganz durchsichtig stehen. Um einen Eindruck vom Verhalten dieses Parameters zu erhalten, betrachten Sie bitte folgendes Beispiel. Eigenschaft: Typ: Standardwert: float bzw. Single 0.0 Last update: 04/10/2011 03:22:36 IMaterial::Transparent Schaltet die Transparenz des Materials ein bzw. aus. Eigenschaft: Typ: Standardwert: Boolean False

file://C:\Documents and Settings\Bruno\Configuraes locais\Temp\~hhFB94.htm

10/4/2011

o2c - Constructor

Page 16 of 24

Last update: 04/10/2011 03:22:36 IO2cWriteParams Eigenschaften eines gespeicherten Objektes. Verwendung: 1. 2. 3. 4. Erzeugen Sie mittels IO2cAreaConstructor.NewO2CSaveParams ein neues IO2cWriteParams-Objekt. Erzeugen Sie mittels IO2cAreaConstructor.NewAcoSaveParams ein neues IAcoWriteParams-Objekt. Stellen Sie die gewnschten Eigenschaften ein. Speichern Sie das Objekt per IO2cAreaConstructor.ExportObjectAsO2C oder IO2cAreaConstructor.ExportAllObjectsAsO2C

Ein Beispiel zur Verwendung finden Sie in der Rubrik Beispiele.

Eigenschaften: BackgroundFileName Name des Hintergrundbildes, das in die o2c-Datei integriert werden soll BackgroundColor BackgroundMode BackgroundQuality BkOffsetX Bkoffsety PanX PanY Psi Phi Zoom AboutUrl TextureQuality PreviewWidth PreviewHeight PreviewFileName PreviewQuality CreatePreview CombineTextures CombineMaterials MayBeRepublished IsCommercial Hintergrund des Objektes beim Erzeugen von Vorschaubildern. Hintergrundmodus des Objektes beim Erzeugen von Vorschaubildern. JPEG-Qualitt des Hintergrundbildes. Horizontaler Versatz des Hintergrundbildes beim Erzeugen von Vorschaubildern Vertikaler Versatz des Hintergrundbildes beim Erzeugen von Vorschaubildern. Horizontaler Versatz des Objektes beim Erzeugen von Vorschaubilderng Vertikaler Versatz des Objektes beim Erzeugen von Vorschaubildern. Drehung des Objektes beim Erzeugen von Vorschaubildern. Drehung des Objektes beim Erzeugen von Vorschaubildern. Skalierung des Objektes beim Erzeugen von Vorschaubildern. Beschreibende URL des Objektes. JPEG-Qualitt der eingebetteten Texturen. Breite des Vorschaubildes. Hhe des Vorschaubildes. Dateiname eines existierenden Vorschaubildes. JPEG-Qualitt des Vorschaubildes. Vorschaubild erzeugen. Gleiche Texturen beim Speichern zusammenfassen. Gleiche Materialien beim Speichern zusammenfassen.. Dieses Objekt darf Teil anderer Objekte sein. Dieses Objekt darf kommerziell verwendet werden.

Last update: 04/10/2011 03:22:36 IO2cWriteParams::BackgroundFileName Dateiname des Hintergrundbildes, das in die o2c-Datei integriert werden soll. Eigenschaft: Typ: Standardwert: String "" (Leerer String) Last update: 04/10/2011 03:22:36 IO2cWriteParams::BackgroundColor Hintergrundfarbe des Objektes beim Erzeugen von Vorschaubildern. Eigenschaft: Typ: Standardwert: Long 0x00000000 (Schwarz) Last update: 04/10/2011 03:22:36 IO2cWriteParams::BackgroundMode Hintergrundmodus des Objektes. Mgliche Werte sind: 0: Einfarbig, mit konstanter Farbe gefllt. 1: Das Hintergrundbild wird einmal dargestellt, und dabei auf die Gre des O2C-Players skaliert. 2: Das Hintergrundbild wird mehrfach (gekachelt) in seiner Originalgre dargestellt. Eigenschaft:

file://C:\Documents and Settings\Bruno\Configuraes locais\Temp\~hhFB94.htm

10/4/2011

o2c - Constructor

Page 17 of 24

Typ: Standardwert:

Long 0 Last update: 04/10/2011 03:22:36 IO2cWriteParams::BackgroundQuality

JPEG-Qualitt des Hintergrundbildes, das in die o2c-Datei integriert werden soll. Ein normaler Wert ist 70, 100 = beste Qualitt. Eigenschaft: Typ: Standardwert: Long 0 Last update: 04/10/2011 03:22:36 IO2cWriteParams::BkOffsetX Horizontaler Versatz des Hintergrundbildes beim Erzeugen von Vorschaubildern. Eigenschaft: Typ: Standardwert: Long 0 Last update: 04/10/2011 03:22:36 IO2cWriteParams::BkOffsetY Vertikaler Versatz des Hintergrundbildes beim Erzeugen von Vorschaubildern. Eigenschaft: Typ: Standardwert: Long 0 Last update: 04/10/2011 03:22:36 IO2cWriteParams::PanX Horizontaler Versatz des Objektes beim Erzeugen von Vorschaubildern. Eigenschaft: Typ: Standardwert: Long 0 Last update: 04/10/2011 03:22:36 IO2cWriteParams::PanY Vertikaler Versatz des Objektes beim Erzeugen von Vorschaubildern. Eigenschaft: Typ: Standardwert: Long 0 Last update: 04/10/2011 03:22:36 IO2cWriteParams::Psi Drehung des Objektes in Psi beim Erzeugen von Vorschaubildern. Eigenschaft: Typ: Standardwert: float bzw. Single 0 Last update: 04/10/2011 03:22:36 IO2cWriteParams::Phi Drehung des Objektes in Phi beim Erzeugen von Vorschaubildern. Eigenschaft: Typ: Standardwert: float bzw. Single 0 Last update: 04/10/2011 03:22:36 IO2cWriteParams::Zoom

file://C:\Documents and Settings\Bruno\Configuraes locais\Temp\~hhFB94.htm

10/4/2011

o2c - Constructor

Page 18 of 24

Skalierung des Objektes beim Erzeugen von Vorschaubildern. Eigenschaft: Typ: Standardwert: float bzw. Single 0 Last update: 04/10/2011 03:22:36 IO2cWriteParams::AboutUrl Internetadresse, die das Objekt nher beschreibt. Dies kann zum Beispiel die URL des Erzeugers sein. Eigenschaft: Typ: Standardwert: String "www.o2c.de" Last update: 04/10/2011 03:22:36 IO2cWriteParams::TextureQuality JPEG-Qualitt der Texturen, die in die o2c-Datei integriert werden. Ein normaler Wert ist 70, 100 = beste Qualitt. Eigenschaft: Typ: Standardwert: Long 0 Last update: 04/10/2011 03:22:36 IO2cWriteParams::PreviewWidth Breite des zu erzeugenden Vorschaubildes. Eigenschaft: Typ: Standardwert: Long 0 Last update: 04/10/2011 03:22:36 IO2cWriteParams::PreviewHeight Hhe des zu erzeugenden Vorschaubildes. Eigenschaft: Typ: Standardwert: Long 0 Last update: 04/10/2011 03:22:36 IO2cWriteParams::PreviewFileName

Anstatt ein ein Vorschaubild zu generieren, knnen Sie auch ein externes Bild verwenden. Dieses bestimmen Sie mit der Eigenschaft PreviewFileName. Dabei muss es sich um eine Wi BMP oder um eine JPEG-Datei handeln. Eigenschaft: Typ: Standardwert: String "" (Leerer String) Last update: 04/10/2011 03:22:36 IO2cWriteParams::PreviewQuality JPEG-Qualitt des Vorschaubildes, das in die o2c-Datei integriert werden soll. Ein normaler Wert ist 70, 100 = beste Qualitt. Eigenschaft: Typ: Standardwert: Long 0 Last update: 04/10/2011 03:22:36 IO2cWriteParams::CreatePreview Gibt an, ob ein Vorschaubild erzeugt werden soll. Wenn Sie diese Eigenschaft auf true setzen, mssen Sie auch die anderen, die Vorschaubilder betreffenden, Eigeschaften setzen. Eigenschaft: Typ: Standardwert: Boolean False

file://C:\Documents and Settings\Bruno\Configuraes locais\Temp\~hhFB94.htm

10/4/2011

o2c - Constructor

Page 19 of 24

Last update: 04/10/2011 03:22:36 IO2cWriteParams::CombineTextures Gibt an, ob gleiche Texturen beim Speichern zu einer zusammengefasst werden sollen. Eigenschaft: Typ: Standardwert: Boolean False Last update: 04/10/2011 03:22:36 IO2cWriteParams::CombineMaterials Gibt an, ob gleiche Materialien beim Speichern zu einem zusammengefasst werden sollen. Eigenschaft: Typ: Standardwert: Boolean False Last update: 04/10/2011 03:22:36 IO2cWriteParams::CombineTextures Wenn Sie diese Eigenschaft auf true setzen, knnen Sie das Objekt wiederum in andere Objekte integrieren. Eigenschaft: Typ: Standardwert: Boolean False Last update: 04/10/2011 03:22:36 IO2cWriteParams::IsCommercial Dieses Objekt darf kommerziell verwendet werden. Vorsicht: Beim Speichern wird Ihr Lizenzvorrat ohne Nachfrage um eins verringert. Eigenschaft: Typ: Standardwert: Boolean False Last update: 04/10/2011 03:22:36 IAcoWriteParams Eigenschaften eines gespeicherten Objektes. Verwendung: 1. 2. 3. 4. Erzeugen Sie mittels IO2cAreaConstructor.NewO2CSaveParams ein neues IO2cWriteParams-Objekt. Erzeugen Sie mittels IO2cAreaConstructor.NewAcoSaveParams ein neues IAcoWriteParams-Objekt. Stellen Sie die gewnschten Eigenschaften ein. Speichern Sie das Objekt per IO2cAreaConstructor.ExportObjectAsO2C oder IO2cAreaConstructor.ExportAllObjectsAsO2C

Ein Beispiel zur Verwendung finden Sie in der Rubrik Beispiele.

Eigenschaften: DefaultZ LogName Hhe des Objektes, wenn dieses in ArCon eingefgt wird. Logischer Name des Objektes.

LampsDefaultOn Sollen die internen Lampen des Objektes beim Laden eingeschaltet sein? HasGravity GravityUp Dieses Objekt fllt. Das Objekt fllt nach oben (an die Decke).

GravityDefaultOn Soll das Fallen beim Laden eingeschaltet sein? DisplayTurn Dreht das Objekt um 180 Grad, wenn es geladen wird.

Last update: 04/10/2011 03:22:36 IAcoWriteParams::DefaultZ Gibt die standardme Hhe des Objektes an, wenn dieses in ArCon geladen wird. Eigenschaft: Typ: Standardwert: float bzw. Single 0.0

file://C:\Documents and Settings\Bruno\Configuraes locais\Temp\~hhFB94.htm

10/4/2011

o2c - Constructor

Page 20 of 24

Last update: 04/10/2011 03:22:36 IAcoWriteParams::LogName Logischer Name des Objektes, wie er z.B. im ArCon-Explorer angezeigt wird. Eigenschaft: Typ: Standardwert: String "" (Leerer String) Last update: 04/10/2011 03:22:36 IAcoWriteParams::LampsDefaultOn Gibt an, ob die Lampen des Objektes (soweit vorhanden) standardmig eingeschaltet sein sollen, wenn das Objekt in ArCon geladen wird. Eigenschaft: Typ: Standardwert: Boolean False Last update: 04/10/2011 03:22:36 IAcoWriteParams::HasGravity Gibt an, ob das Objekt fallen soll, wenn dieses in ArCon geladen wird. Eigenschaft: Typ: Standardwert: Boolean False Last update: 04/10/2011 03:22:36 IAcoWriteParams::GravityUp Gibt an, ob das Objekt nach oben oder nach unten fallen soll, wenn dieses in ArCon geladen wird. Eigenschaft: Typ: Standardwert: Boolean False (nach unten)

Last update: 04/10/2011 03:22:36 IAcoWriteParams::GravityDefaultOn Gibt an, ob das Objekt standardmig fallen soll, wenn dieses in ArCon geladen wird. Eigenschaft: Typ: Standardwert: Boolean False Last update: 04/10/2011 03:22:36 IAcoWriteParams::DisplayTurn

Wenn Sie diese Eigenschaft auf true setzen, wird das Objekt beim Laden um 180 Grad gedreht. Dies ist eine Kompatibilittsoption gegenber lteren ArCon-Versionen, die Sie ignorier knen. Eigenschaft: Typ: Standardwert: Boolean False Last update: 04/10/2011 03:22:36 Beispiele Hier finden Sie einige Beispiele zur Verwendung des o2c-Constructors. Sie brauchen dazu einen korrekt installierten o2c-Player und o2c-Constructor.

Parcel Wand Material Delphi Wanderzeugung MFC Wanderzeugung

Beispiel fr die Verwendung von ILabel Beispiel fr die Verwendung von IObjectConstructor, IMaterial, IO2cWriteParams und IAcoWriteParams Testen Sie die Auswirkungen verschiedener Materialparameter.

Beispiel fr die Verwendung von IObjectConstructor und IMaterial mit Borland Delphi. Das Beispiel wurde mit der Version 4 der Entwicklungsumgebung von Borland erstellt. Es sollte jedoch auf allen Versionen ab Delphi 2 lauffhig sein. Beispiel fr die Verwendung von IObjectConstructor und IMaterial mit VisualC++ 6.

file://C:\Documents and Settings\Bruno\Configuraes locais\Temp\~hhFB94.htm

10/4/2011

o2c - Constructor

Page 21 of 24

Visual Basic Wanderzeugung

Beispiel fr die Verwendung von IObjectConstructor und IMaterial mit Visual Basic.

Last update: 04/10/2011 03:22:36 Parcel

Karl Mustermann Musterweg 13 12346 Musterdorf Namenszug erzeugen

Quelltext: Dieser Quelltext benutzt Funktionen aus der Datei "o2cproxy.js", die Sie hier finden. Diese Datei dient dazu, Aufrufe des o2c-Players und des o2c-Constructors fr Netscape und Interne Explorer zu Kapseln. Falls Sie diese Datei im Internet benutzen wollen, entfernen Sie bitte vorher alle nicht bentigten Funktionen und Kommentare, da diese Datei doch recht gro ist. Den gesamten Quelltext inklusive der Objekte finden Sie hier als Zip-Datei. Zum ffnen bentigen Sie ein entsprechendes Entpack-Programm wie z.B. Winzip.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>Online Texturen erzeugen</title> <script language="JavaScript" src="o2cproxy.js" type="text/javascript"></script> <script Language="JavaScript"><!-function createBlende(str, x, y, z) { // Name der Textur: theSignTex = ">dynamic\\sign_text.bmp" // Constructor mit o2c-Plater verbinden: document.theCnstr.SetPlayer(document.thePlayer); // Neues Label-Objekt erzeugen: theLabel = document.theCnstr.NewLabel(); // Eigenschaften setzen: labelSetAlignment(theLabel, 0); labelSetvAlign(theLabel, 0); labelSetWordWrap(theLabel, true); labelSetCaption(theLabel, str); labelSetWidth(theLabel, 512); labelSetHeight(theLabel, 512); labelSetLeft(theLabel, 10); labelSetTop(theLabel, 20); labelSetBorderStyle(theLabel, 0); labelSetBackColor(theLabel, RGB(255,255,255)); labelSetForeColor(theLabel, RGB(255, 0, 0)); labelSetBorderColor(theLabel, RGB(0, 255, 0)); labelSetFontSize(theLabel, 48); labelSetFontItalic(theLabel, false); labelSetFontBold(theLabel, false); // Textur erzeugen: theLabel.CreateTexture(RGB(255, 255, 255), 512, 512, theSignTex);

// Textur in Player einfuegen: document.thePlayer.ReplaceTexture(2, theSignTex); } //--></script> <link rel="Stylesheet" href="area.css"> </head> <body> <a href="parcel.o2c"></a> <table width="100%" class="bordered" cellspacing="0" cellpadding="0"> <tr> <td class="oben" height="25"><b class="mitte"><img src="box_bright.png" width="15" height="15" hspace="15" border="0" alt="">Parcel</b></td> </tr> </table> <br><br> <div align="center"> <!-- o2c - player einbinden: //-->< <object classid = "CLSID:B1953AD6-C50E-11d3-B020-00A0C9251384" codebase = "http://www.o2c.de/download/o2cplayer.cab#version=1,9,9,135" title = "Wenn Sie hier kein 3D Objekt sehen, surfen Sie zu www.o2c.de und installieren Sie den O2C-Player!" width = "400" height = "300" name = "thePlayer">

file://C:\Documents and Settings\Bruno\Configuraes locais\Temp\~hhFB94.htm

10/4/2011

o2c - Constructor

Page 22 of 24

name = "BackColor" value = "16777215"> name = "ObjectURL" value = "parcel.o2c"> name = "Phi" value = "272.682129"> name = "Psi" value = "58.514851"> name = "BorderStyle" value = "1"> name = "Appearance" value = "0"> name = "InhibitLocalTextures" value = "-1"> codebase = "http://www.o2c.de/dl_plugin.htm" type = "application/x-o2c-object" width = "400" height = "300" name = "thePlayer" src = "parcel.o2c" param_BackColor = "16777215" param_Phi = "272.682129" param_Psi = "58.514851" param_InhibitLocalTextures = "-1" param_BorderStyle = 1 param_Appearance = 0> </embed> </object> <!-- o2c - constructor einbinden: //-->< <object classid = "CLSID:06293FDE-E099-48D1-BAF7-7ED9DFFB5513" codebase = "http://www.o2c.de/kremer/area/O2CAreas.CAB#version=1,0,1,13" name = "theCnstr" width = "1" height = "1"> <embed codebase = "http://www.o2c.de/dl_plugin.htm" type = "application/x-o2c-areas" name = "theCnstr" hidden> </object> <form> <textarea rows="3" name="T1" cols="25"> Karl Mustermann Musterweg 13 12346 Musterdorf </textarea><br> <input type="button" value="Namenszug erzeugen" onClick="createBlende(T1.value, 0.0, 0.0, 0.0)"> </form> <hr size="1"> </div> </body> </html>

<param <param <param <param <param <param <param <embed

Last update: 04/10/2011 03:22:36 Wand erzeugen

Mauer erzeugen

Quelltext: Den gesamten Quelltext inklusive der Objekte finden Sie hier als Zip-Datei. Zum ffnen bentigen Sie ein entsprechendes Entpack-Programm wie z.B. Winzip.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>Einfaches Constructor Beispiel</title> <script Language="JavaScript"><!-function RGB(r, g, b) { var col; col = r | (g << 8) | (b << 16); return col; } function CreateMauer() { // Constructor mit dem Player verbinden: document.theCnstr.SetPlayer(document.thePlayer); // Material erzeugen: loc_mat = document.theCnstr.NewMaterial(); loc_mat.AmbientCoefficient = 0.2; loc_mat.DiffuseCoefficient = 0.4; loc_mat.SpecularCoefficient = 0.4; loc_mat.DiffuseColor = RGB(255,255,255); loc_mat.SpecularColor = RGB(255,255,255);

file://C:\Documents and Settings\Bruno\Configuraes locais\Temp\~hhFB94.htm

10/4/2011

o2c - Constructor

Page 23 of 24

loc_mat.Transparent loc_mat.Flags

= false; = 1 + 16; // ACMATFL_ISTEXTURED | ACMATFL_TWOSIDED

// Neuen Objekt-Constructor erzeugen: constr = document.theCnstr.NewConstructor(0, 105); // Punkte der vorderen constr.SetPoint(0, -2, constr.SetPoint(1, 2, constr.SetPoint(2, 2, constr.SetPoint(3, -2, // Punkte des vorderen constr.SetHolePoint(1, constr.SetHolePoint(1, constr.SetHolePoint(1, constr.SetHolePoint(1, Wand setzen (Punktnummer, x, y, z, u, v): 0.1, 2, 0.0, 0.0); 0.1, 2, 0.0, 1.0); 0.1, -2, 1.0, 1.0); 0.1, -2, 1.0, 0.0); Loches 0, -1, 1, 1, 2, 1, 3, -1, (Fensters) setzen (Lochnummer, Punktnummer, x, y, z, u, v): 0.1, 1, 0.25, 0.25); 0.1, 1, 0.25, 0.75); 0.1, -1, 0.75, 0.75); 0.1, -1, 0.75, 0.25);

// Polygon hinzufgen (SharpEdges, Snap, Material, Texturname): constr.AddPolygonWithHoles(true, false, loc_mat, "sign_tex.jpg"); // Usw. fr jede Seite der Wand (Links, rechts, oben, unten und hinten) // ... // Zum Schlu Objekt schlieen: objNo = constr.Finish("wand.o2c", 0); // Objekt anzeigen: document.thePlayer.CurrentObject = objNo; document.thePlayer.ObjectShow(true); // Objekt-Attribute erstellen: objectParams = document.theCnstr.NewAcoWriteParams(); objectParams.LogName = "The Wall"; o2cParams = document.theCnstr.NewO2CSaveParams(); o2cParams.CreatePreview = true; o2cParams.CombineTextures = true; o2cParams.CombineMaterials = true; o2cParams.MayBeRepublished = true;

// Objekt als o2c speichern, dazu mssen die dlls aco2c.dll und acvisu.dll in Reichweite des O2CAreaConstructor-Ocx' liegen: document.theCnstr.ExportObjectAsO2C(objNo, "c:\\wand.o2c", o2cParams, objectParams); } //--></script> <link rel="Stylesheet" href="area.css"> </head> <body> <a href="test01.o2c"></a><a href="sign_tex.jpg"></a> <table width="100%" class="bordered" cellspacing="0" cellpadding="0"> <tr> <td class="oben" height="25"><b class="mitte"><img src="box_bright.png" width="15" height="15" hspace="15" border="0" alt="">Wand erzeugen</ </tr> </table> <br><br> <div align="center"> <!-- o2c - player einbinden: //-->< <object classid = "CLSID:B1953AD6-C50E-11d3-B020-00A0C9251384" codebase = "http://www.o2c.de/download/o2cplayer.cab#version=1,9,9,135" title = "Wenn Sie hier kein 3D Objekt sehen, surfen Sie zu www.o2c.de und installieren Sie den O2C-Player!" width = "400" height = "300" name = thePlayer> <param name = "BackColor" value = "16777215"> <param name = "ObjectURL" value = "test01.o2c"> <param name = "Phi" value = "272.682129"> <param name = "Psi" value = "58.514851"> <param name = "InhibitLocalTextures" value = "true"> <param name = "TextureBaseURL" value = "."> <param name = "BorderStyle" value = "1"> <param name = "Appearance" value = "0"> <param name = "Filter" value = "0"> <embed codebase = "http://www.o2c.de/dl_plugin.htm" type = "application/x-o2c-object" width = "512" height = "512" name = "thePlayer" src = "test01.o2c" param_BackColor = "16777215" param_Phi = "272.682129" param_Psi = "58.514851" param_InhibitLocalTextures = "true" param_TextureBaseURL = "." param_BorderStyle = 1 param_Appearance = 0 param_Filter = 0> </embed> </object> <!-- o2c - constructor einbinden: //-->< <object classid = "CLSID:06293FDE-E099-48D1-BAF7-7ED9DFFB5513" codebase = "http://www.o2c.de/kremer/area/O2CAreas.CAB#version=1,0,1,13" name = "theCnstr" width = "1" height = "1"> <embed codebase = "http://www.o2c.de/dl_plugin.htm" type = "application/x-o2c-areas" name = "theCnstr" hidden> </object> <form> <input type="button" value="Mauer erzeugen" onClick="CreateMauer()"> </form> <hr size="1"> </div> <body> </html>

file://C:\Documents and Settings\Bruno\Configuraes locais\Temp\~hhFB94.htm

10/4/2011

o2c - Constructor

Page 24 of 24

Last update: 04/10/2011 03:22:36 Materialeigenschaften setzen

Hier knnen Sie die Auswirkungen der verschiedenen Materialparameter testen. AmbientCoefficient: DiffuseCoefficient: DiffuseColor, roter Anteil: DiffuseColor, grner Anteil: DiffuseColor, blauer Anteil:
0.5 0.5 255 255 255
b c d e f g Texturiert c d e f g Masken-Textur c d e f g Selbstleuchtend

(Wertebereich: 0.0 - 1.0) (Wertebereich: 0.0 - 1.0) (Wertebereich: 0 - 255) (Wertebereich: 0 - 255) (Wertebereich: 0 - 255)

Flags:

c d e f g Material c d e f g Textur c d e f g Das

und Textur mischen

c d e f g Zweiseitig

ist Reflektionsmaske Material reflektiert ideal (Wertebereich: 0.0 - 1.0) (Wertebereich: 0.0 - 1.0) (Wertebereich: 0 - 255) (Wertebereich: 0 - 255) (Wertebereich: 0 - 255) (Wertebereich: 0.0 - 1.0)

HighlightExponent: SpecularCoefficient: SpecularColor, roter Anteil:

0.0 0.0 255

SpecularColor, grner Anteil: 255 SpecularColor, blauer Anteil: 255 Transparency: Transparenz:
0.0
c d e f g

Einschalten (nur fr IMaterial)


Anwenden

Erstellen Sie hier den Quelltext, um ein entsprechendes IMaterial-Objekt zu erzeugen:

Quelltext erzeugen

Quelltext: Den gesamten Quelltext inklusive der Objekte finden Sie hier als Zip-Datei. Zum ffnen bentigen Sie ein entsprechendes Entpack-Programm wie z.B. Winzip. Last update: 04/10/2011 03:22:36

file://C:\Documents and Settings\Bruno\Configuraes locais\Temp\~hhFB94.htm

10/4/2011