Xj3D Kurulumu ve Projelerde kullanımı

Xj3D Web3D konsorsiyumunun X3D içeriği yaratmak için kullanılan araç kutusu projesidir. Tamamen java ile yazılmıştır. Bu araç kutusu kullanılarak X3D içeriği kendi uygulamamıza yükleyebileceğimiz gibi, tam bir tarayıcı yaratmak için de kullanabiliriz. Xj3D'nin temel kullanım alanı SAI ("Scene Access Interface" Sahne Erişim Arayüzü)'yi kullanarak programlarımızda kendimize ait bir tarayıcı kullanmak ve X3D ve VRML sahnelerimizi kullanıcıya göstermektir. Xj3D 3B özelliklerinin programlara eklenmesini kolaylaştırmak için üretilmiştir. Xj3D'yi Java'da kullanarak farklı platformlarda çalışabilen 3B uygulamaları geliştirilebilir.

Geliştirme yapabilmek için Xj3D'yi kurmak ve projemizin classpath'ine gerekli jar dosyalarını eklemek gerekmektedir. Kurulum (Windows) ve Eclipse projelerinde classpath ekleme işi aşağıdaki adımlardan oluşmaktadır:

  1. Şuradan en son sürümü indiriyoruz.
  2. Çift tıklayarak çalıştırıyoruz (Eğer jar dosyasını indirdiniz ve çift tıklayınca çalışmazsa komut satırında java -jar DosyaninIsmi.jar şeklinde çalıştırabilirsiniz)
  3. Next-Next diyerek kurulumu tamamlamasını sağlıyoruz.
  4. Eclipse'te yarattığımız projeye sağ tıklayıp Properties->Java Build Path->Libraries sekmesini açıyoruz.
  5. Bu sekmede Add External Jars diyerek j3D kurulum dizini altındaki jars dizinindeki tüm jar dosyalarını ekliyoruz. (Kurulum dizini c:\Program Files\Xj3D ise C:\Program Files\Xj3D\jars\ altındaki tüm jar dosyalarını)
  6. Artık projemizde Xj3D SAI kullanabiliriz.
Dünyayı Yüklemek
Bu örnekte basit bir dosya yükleyicisinin nasıl yazılacağını öğreneceksiniz. X3D tarayıcısının yaratılma temellerinden başlayıp dosyanın nasıl yükleneceği anlatılacaktır.
3B Penceresini Eklemek
3B Penceresini uygulamanıza eklemek kolaydır. SAI BrowserFactory sınıfını kullanarak X3D bileşenini yaratırsınız. Daha sonra bu bileşeni uygulamanıza eklersiniz. Aşağıdaki kod bu adımları göstermektedir:
import org.web3d.x3d.sai.*;
public class SimpleSAIDemo extends JFrame {
 public SimpleSAIDemo() {
 Container contentPane = getContentPane();
 // SAI bilesenini yaratalim
 X3DComponent x3dComp = BrowserFactory.createX3DComponent(null);
 // UI’ye bu bileseni ekleyelim
 JComponent x3dPanel = (JComponent)x3dComp.getImplementation();
 contentPane.add(x3dPanel, BorderLayout.CENTER);

SAI erişimi için gereken tüm sınıflar org.web3d.x3d.sai paketinde bulunmaktadır. Xj3D javadoc’u SAI kodu yazarken kullanışlı bir kaynaktır. 3B penceresini uygulamanıza eklemek için gerekenler bunlardır. Bir sonraki kısım dosya yüklemeyi gösterecektir.
Dosya Yükleme
Dosya yüklemeden önce tarayıcı kavramını anlatmak gerekiyor. SAI’de tarayıcı sistemle etkileşim için gereken basit bir arayüzdür. Dosya yükleme, düğüm yaratma ve çerçeve oranını getirme gibi işler yapmanıza olanak sağlar. Browser sınıfı dışsal ve içsel SAI programları için mevcuttur.
ExternalBrowser arayüzü dışsal SAI programlarının imgelemeyi duraklatma ve tarayıcı dinleyicisi ekleme gibi daha fazla işlevselliğe erişmelerini sağlar. Bu işlemleri sadece dışsal kodtan yapabilirsiniz. Dosya yükleyebilmek için yarattığımız X3DComponent bileşeninden tarayıcı (Browser) referansını alırız.
// Dissal tarayici alalim
ExternalBrowser x3dBrowser = x3dComp.getBrowser();
Tarayıcı referansını elde ettikten sonra bu referansı dosya yüklemek için kullanabiliriz. Bu işi yapmak için bir kaç yöntem vardır. Bu ilk örnek için en kolayını kullanacağız. Bu dosya indirilip gösterilmeye hazırlanana kadar bloklanmış createX3DFromURL çağrısıdır. Bu metod X3D sahnesini kapsayan X3DScene nesnesini döndürür. Daha sonra biz şu an için boş olan güncel sahneyi bu yeni sahne ile değiştiririz.
// Dosya yukleyerek bir X3D sahnesi olustur
X3DScene mainScene = x3dBrowser.createX3DFromURL(new String[] { "moving_box.x3dv" });
// Varolan dunyayi yenisiyle degistir
x3dBrowser.replaceWorld(mainScene); 
Bu örneğin tam kodunu şurada bulabilirsiniz : SimleSAIDemo
Eğer bu kodu başarılı bir şekilde çalıştırabilirseniz Xj3D kurulumunu tamamladınız demektir.
Daha gelişmiş örnekler için şu adresi inceleyebilirsiniz.

URL İşleme Tarzı


Bu noktada anlaşılması gereken kavram URL’lerin nasıl ele alındığıdır. createX3DFromURL girdi olarak URL katarı almaktadır. Bu katardaki URL’lerden birine ulaşıp başarıyla indirene kadar arama gerçekleşir. URL internet üzerindeki veya kendi yerel makinemizdeki nesnenin konumunu belirtme yöntemi sağlar. Eğer sadece dosya adı veya kısmi dizin ve dosya yolu (örneğin “examples/foo.xd3v”) verirsek göreceli URL sağlanmıştır. X3D belirtimi bu URL’lerin o an çalışılan dizinden başlaması gerektiğini söylemektedir. Daha ayrıntılı bilgi için X3D Java binding specification(ISO/IEC 19777-2:2005) 3.3.4.2 maddesini inceleyin.

Hiç yorum yok: