Titel:

VRML & Java

Startseite
Artikelliste
english
  
ISBN: B0037IP4OY   ISBN: B0037IP4OY   ISBN: B0037IP4OY   ISBN: B0037IP4OY 
 
  Wir empfehlen:       
 
VRML & Java

EAI - External Authoring Interface

Mittels des EAI ist es möglich den Inhalt eines VRML-Browsers innerhalb einer HTML-Seite über ein in dieselbe Seite eingebettetes Applet zu steuern, d.h. man verändert die VRML-Welt durch ein externes Interface. So kann die Welt dynamisch von außen zur Laufzeit erweitert / verändert werden (Erschaffung neuer Knoten / Ereignisse etc.).

Das EAI ist durch eine Plug-In-Architektur des WWW-Browsers mit dem VRML-Browser verbunden.

HTML-Datei

<HTML>
  <BODY>
     <APPLET CODE="test.class" MAYSCRIPT>
     </APPLET>
     <EMBED SRC="simple.wrl" WIDTH="300" HEIGHT="200">
  </BODY>
<HTML>

Die HTML-Datei enthält das eingebettete Applet und die VRML-Datei.

Über den Zusatz MAYSCRIPT im Applet-Tag erhält das Applet eine Instanz des vrml-Plug-In-Browsers. So ist es dem Applet möglich eine Instanz des Plug-In-Objektes zu erzeugen.

Applet

Um das externe Applet von Java aus realisieren zu können, werden folgende Klassen benötigt.

VRML-Pakete

  • vrml.external.Browser;
  • vrml.external.Node;
  • vrml.external.field.*;
  • vrml.external.exception.*;

Die in den Paketen verfügbaren Klassen bilden eine Erweiterung der Applet-Klasse. Um Events aus der VRML-Welt zu erhalten, kann zusätzlich das EventOutObserver-Interface implementiert werden.

Zu allererst muß eine Instanz vom Browser erschaffen werden.

Browser b = Browser.getBrowser();

Nachdem diese Verbindung aufgebaut ist, kann die VRML-Welt verändert werden. Es ist möglich auf Knoten über die Methode getNode(...) (durch Angabe des mit DEF definierten Knoten-Namens) zuzugreifen (falls der Knoten nicht gefunden wird, wird NULL zurückgeliefert).

Node TransformKnoten = b.getNode("TN");  //  DEF TN Transform { translation ....}

Existiert eine Referenz auf einen Knoten, so kann auf die Felder eventIn, eventOut und exposedField über die Methoden getEventIn(...) und getEventOut(...) zugegriffen werden (ebenfalls über den Namen). Da die Rückgabewerte jedoch für jeden Knoten unterschiedlich sind, muß das Feld vorher per cast in den richtigen Typ umgewandelt werden, bevor der Inhalt mit getValue() gelesen oder mit setValue(...) verändert werden kann.

EventInSFVec3f  TR = (EventInSFVec3f)TransformKnoten.getEventIn("translation");
float neuePosition[] = { 0 , 1 , 1 };
TR.setValue(neuePosition);

Um kontinuierlich Events empfangen zu können, muß folgendes getan werden:

  • das Interface EventOutObserver muß implementiert werden
  • es muß eine callback-Methode, die für die Verarbeitung der Ereignisse verantwortlich ist, geschrieben werden
  • es ist nötig eine neue Instanz des Observers zu erzeugen
  • die Events, auf die zugegriffen werden soll, müssen über die advise-Methode registriert werden

Beispiel EventOutObserver

class X implements EventOutObserver {

    public void callback (EventOut value, double timeStamp, Object data) { ... }

}

 

class Y {

    Y ( ) {

        Browser b = Browser.getBrowser();
        Node TouchSensorKnoten = b.getNode("TSK");

        X observe = new X();

        TouchSensorKnoten.getEventOut ( isOver ).advise (observe, null);

        }

 

Beispiel EAI

 

 

Index

  
STUFEN-STEHLEITER (ALU), 5 STUFEN
von Krause
Siehe auch:
Hailo 4393-801 K30 / Aluminium Klapptritt / 2 Stahl-Stufen / Anti-Rutschmatte
von HAILO (in Küche & Haushalt)
Bonhoeffer, Die letzte Stufe, 1 DVD
(DVD (in DVD)
Vorsicht,Stufe!
von F.R. (in Musik)
Rosetta Stone Version 3: Französisch Stufe 1 Persönliche Edition inkl. Audio Companion
von Rosetta Stone (in Software)
Lust Control 10 Vibr. Stufen
von Orion (in Drogerie & Bad)
 
   
 
     

Zurück zu Themenseiten:
ScientificPublication.com/Startseite/Informatik/Programmieren
StudyPaper.com/Startseite/Computer/Internet
StudyPaper.com/Startseite/Computer

Das Setzen von Verweisen (Links) auf diese Seite ist gestattet und bedarf keine vorherige Absprache.

Artikelliste:
Scalable Vector Graphics (automatische Übersetzung)
Scalable Vector Graphics 1.1 (automatische Übersetzung)
   
  Startseite  |  english  |  Bookmark setzen  |  Webseite weiterempfehlen  |  Copyright ©  |  Impressum