germaniumweb training for cxa2010

93
Setup 1. Bookmark http://www.germanium3d.com/ cxa2010/links 2. Wi-Fi: Connect to rpguest network 3. Install a web debugger if you don’t have one: Firebug for Firefox; or IE Developer Tools for IE 4. Training will begin at 10:00

Upload: ianloh13

Post on 23-Jan-2015

758 views

Category:

Technology


1 download

DESCRIPTION

GermaniumWeb training session for code::XtremeApps:: 2010 participants

TRANSCRIPT

Page 1: GermaniumWeb training for CXA2010

Setup1. Bookmark

http://www.germanium3d.com/cxa2010/links

2. Wi-Fi: Connect to rpguest network

3. Install a web debugger if you don’t have one:• Firebug for Firefox; or• IE Developer Tools for IE

4. Training will begin at 10:00

Page 2: GermaniumWeb training for CXA2010

GermaniumWebTraining Session

Ian LohTechnical Product Manager

Page 3: GermaniumWeb training for CXA2010

Why?

Page 4: GermaniumWeb training for CXA2010

Why GermaniumWeb?

Page 5: GermaniumWeb training for CXA2010

Geospatial mapping with Google Earth

Page 6: GermaniumWeb training for CXA2010

Interior mapping with GermaniumWeb

Page 7: GermaniumWeb training for CXA2010

What?

Page 8: GermaniumWeb training for CXA2010
Page 9: GermaniumWeb training for CXA2010
Page 10: GermaniumWeb training for CXA2010

JavaScript API

Page 11: GermaniumWeb training for CXA2010

How?

Page 12: GermaniumWeb training for CXA2010

www.example.com

index.html

api.germanium3d.com

JSAPI

WebDeveloper

+GermaniumWeb

IE pluginIE User

How it Works

Page 13: GermaniumWeb training for CXA2010

++Firefox User

GermaniumWebFirefox plugin

www.example.com

index.html

api.germanium3d.com

JSAPI

WebDeveloper

How it Works

Page 14: GermaniumWeb training for CXA2010

+Firefox User

GermaniumWebFirefox plugin

+GermaniumWeb

IE plugin IE User

Page 15: GermaniumWeb training for CXA2010

+Firefox User

GermaniumWebFirefox plugin

www.example.com

index.html

api.germanium3d.com

JSAPI

WebDeveloper

How it Works

Page 16: GermaniumWeb training for CXA2010

Basic Anatomy

Page 17: GermaniumWeb training for CXA2010

1. Target the JavaScript API<script

src="http://api.germanium3d.com/?v=1.4&key=your_API_key"></script>

Page 18: GermaniumWeb training for CXA2010

2. Add a <div> to containGermaniumWeb

<body><div id="germdiv" style="width:100%;

height:100%"></div></body>

Page 19: GermaniumWeb training for CXA2010

3. Initialize GermaniumWeb<body onload="Init()">

<div id="germdiv" style="width:100%; height:100%"></div></body>

<script type="text/javascript">var germ = null;

function Init() {Germanium.CreateInstance("germdiv", OnInitOk);

}

function OnInitOk(webControl) {germ = webControl;

}</script>

Page 20: GermaniumWeb training for CXA2010

4. Load a buildingfunction OnInitOk(webControl) {

germ = webControl;germ.Load("http://www.germanium3d.com/static/

sample/generic_building/2.0/

generic_building.xlcl");}

Page 21: GermaniumWeb training for CXA2010

Complete Examplehttp://www.germanium3d.com/cxa2010/links

Page 22: GermaniumWeb training for CXA2010

IntroductionBuildings & EyePlacemarksOther FeaturesWeb Development

Page 23: GermaniumWeb training for CXA2010

IntroductionBuildings & EyePlacemarksOther FeaturesWeb Development

Page 24: GermaniumWeb training for CXA2010

IntroductionBuildings & EyePlacemarksOther FeaturesWeb Development

Page 25: GermaniumWeb training for CXA2010

IntroductionBuildings & EyePlacemarksOther FeaturesWeb Development

Page 26: GermaniumWeb training for CXA2010

IntroductionBuildings & EyePlacemarksOther FeaturesWeb Development

Page 27: GermaniumWeb training for CXA2010

IntroductionBuildings & EyePlacemarksOther FeaturesWeb Development

Page 28: GermaniumWeb training for CXA2010

IntroductionBuildings & EyePlacemarksOther FeaturesWeb Development

Page 29: GermaniumWeb training for CXA2010

Buildings

Page 30: GermaniumWeb training for CXA2010

BuildingsBlocksLevels

Page 31: GermaniumWeb training for CXA2010

BuildingsBlocksLevels

Page 32: GermaniumWeb training for CXA2010

BBL Example: Office buildinghttp://www.germanium3d.com/cxa2010/links - Office Building

Page 33: GermaniumWeb training for CXA2010

BBL Code Sampleshttp://www.germanium3d.com/cxa2010/links - Code Samples

Page 34: GermaniumWeb training for CXA2010

The Eye

Page 35: GermaniumWeb training for CXA2010

The Eye

Page 36: GermaniumWeb training for CXA2010

3D Coordinate System

Page 37: GermaniumWeb training for CXA2010

3D Coordinate System - Position

Right-hand, Y-up, in metres

Page 38: GermaniumWeb training for CXA2010

3D Coordinate System - Position

Right-hand, Y-up, in metres

Page 39: GermaniumWeb training for CXA2010

3D Coordinate System - Orientation

Default orientation of (0°, 0°, 0°) points down the negative z-axis

Page 40: GermaniumWeb training for CXA2010

3D Coordinate System - Orientation

(0°, 45°, 0°) means a 45° rotation around the Y-axis

Page 41: GermaniumWeb training for CXA2010

3D Coordinate System - Orientation

If you point right thumb in axis direction, fingers will point in positive rotation direction

Page 42: GermaniumWeb training for CXA2010

3D Coordinate System - Orientation

All possible rotation axes

Page 43: GermaniumWeb training for CXA2010

3D Coordinate System - Orientation

var right_angle = Germanium.DegreeToRadian(90);

To work in degrees instead of radians:

Page 44: GermaniumWeb training for CXA2010

The Eye - Setting the positionhttp://www.germanium3d.com/cxa2010/links - Code Samples

“Let’s meet up here!”

Page 45: GermaniumWeb training for CXA2010

The Eye - Gliding2 types –1. Look at/from somewhere

or2. Look at something,

e.g. a level, placemark

- GlideTargetTo(), GlideEyeTo() - GlideEyeToFit()

Page 46: GermaniumWeb training for CXA2010

The Eye - GlidingSpecify parameters in an associative array

germ.GetEye().GlideEyeTo({

position: [10, 0, 10],targetDistance: 5,duration: 10, // 10 seconds

});

Full list of parameters in API documentation, underEye > Specifying glide parameters

Page 47: GermaniumWeb training for CXA2010

The Eye - Glidinghttp://www.germanium3d.com/cxa2010/links - Code Samples

Page 48: GermaniumWeb training for CXA2010

Break

Page 49: GermaniumWeb training for CXA2010

How do I get the position to glide to?

“I can see the point that I want, if only I could just click it!”

Page 50: GermaniumWeb training for CXA2010

How do I get the position to glide to?

Answer:

mouse click event+

Eye.Compute3DIntersection()

“But… what are events?”

Page 51: GermaniumWeb training for CXA2010

Eventssimilar to callbacks,

tell you when something has happened

Page 52: GermaniumWeb training for CXA2010

Callback

“You do something, tell me when you’re done”

Page 53: GermaniumWeb training for CXA2010

Event

“Tell meevery time

this thing happens”

Page 54: GermaniumWeb training for CXA2010

Load Callback vs Event// Load callbacksgerm.Load(

url,options,successCallback,failureCallback);

// Load eventgerm.AddEventHandler(

Germanium.Event.OnLoadEnds,eventHandler);

Page 55: GermaniumWeb training for CXA2010

Event Types• Mouse and Keyboard• Eye• File loading• BBL• Placemark and Callout• ClipPlane• Errors

Full list of events in API documentation, underEvent > Event names

Page 56: GermaniumWeb training for CXA2010

How do I get the position to glide to?

http://www.germanium3d.com/cxa2010/links - Code Samples

mouse click event+

Eye.Compute3DIntersection()

Page 57: GermaniumWeb training for CXA2010

IntroductionBuildings & EyePlacemarksOther FeaturesWeb Development

Page 58: GermaniumWeb training for CXA2010

IntroductionBuildings & EyePlacemarksOther FeaturesWeb Development

Page 59: GermaniumWeb training for CXA2010

Placemarks

Page 60: GermaniumWeb training for CXA2010

Placemark Structure

Placemark

Geometry StyleSet

GeometryStyle

fundamental shape

visual look

Page 61: GermaniumWeb training for CXA2010

Placemark Types• Diamond (point)• Arrow (point)• Icon (point)• Line• Polygon

Page 62: GermaniumWeb training for CXA2010

Diamond Placemark

Placemark

DiamondStyle

PointGeometry StyleSet

Page 63: GermaniumWeb training for CXA2010

Arrow Placemark

Placemark

ArrowStyle

PointGeometry StyleSet

Page 64: GermaniumWeb training for CXA2010

Icon Placemark

Placemark

PointGeometry StyleSet

IconStyle

Page 65: GermaniumWeb training for CXA2010

Line Placemark

Placemark

LineStringGeometry StyleSet

LineStyle

Page 66: GermaniumWeb training for CXA2010

Polygon Placemark

Placemark

PolygonGeometry StyleSet

PolygonStyle

Page 67: GermaniumWeb training for CXA2010

Customizable Label

Placemark

PointGeometry StyleSet

LabelStyleDiamondStyle

Page 68: GermaniumWeb training for CXA2010

Customizable Callout Balloon

Placemark

PointGeometry StyleSet

BalloonStyleDiamondStyle

Page 69: GermaniumWeb training for CXA2010

Putting it all together

Placemark

Geometry StyleSet

BalloonStyleLabelStyleGeometryStyle

pointlinestringpolygon

diamond, arrow, iconlinepolygon

Page 70: GermaniumWeb training for CXA2010

Placemarks - Code Examples

http://www.germanium3d.com/cxa2010/links - Code Samples

Page 71: GermaniumWeb training for CXA2010

Hands-on Session

Page 72: GermaniumWeb training for CXA2010

IntroductionBuildings & EyePlacemarksOther FeaturesWeb Development

Page 73: GermaniumWeb training for CXA2010

IntroductionBuildings & EyePlacemarksOther FeaturesWeb Development

Page 74: GermaniumWeb training for CXA2010

GermaniumWeb Playground

http://www.germanium3d.com/cxa2010/links - Playground

Page 75: GermaniumWeb training for CXA2010

IntroductionBuildings & EyePlacemarksOther FeaturesWeb Development

Page 76: GermaniumWeb training for CXA2010

IntroductionBuildings & EyePlacemarksOther FeaturesWeb Development

Page 77: GermaniumWeb training for CXA2010

+Firefox User

GermaniumWebFirefox plugin

www.example.com

index.html

api.germanium3d.com

JSAPI

WebDeveloper

How it Works

Page 78: GermaniumWeb training for CXA2010

www.example.com

index.html

api.germanium3d.com(GermaniumWeb API server)

JSAPI

User

A typical web environment

Browser: IE/Firefox/Chrome/OperaPlugins: GermaniumWeb/Flash/Silverlight/JavaClient-side scripts: VBScript, JavaScript + jQuery/MooTools/YUI

data.example.com(data server)

Static files: .xlcl (Germanium buildings)

Feeds: Project Nimbus/ Google Data APIs

Webserver: JBoss/Apache/Tomcat/IISscripts: PHP/Python/Perl/Ruby

Appserver: JBoss/WebSphere/IISlogic: Java servlets/JSP/ASP.NET

Database: MySQL/MS SQL

Data

form

ats:

JSO

N, X

ML

Page 79: GermaniumWeb training for CXA2010

Common Web Dev Tasks1. Setting up the server environment2. Common webapp operations3. Bringing your own building (BYOB)• Modeling• Deploying

Page 80: GermaniumWeb training for CXA2010

1. Setting up the serverenvironment

Page 81: GermaniumWeb training for CXA2010

Setting up the server environment

webserverdatabase

scripting language

www.example.com

index.html

- Apache- MySQL- PHP

- Apache- MySQL- PHP

JBoss/e.g. WAMP, LAMP, XAMPP

Page 82: GermaniumWeb training for CXA2010

2. Common webapp operations

Page 83: GermaniumWeb training for CXA2010

Common webapp operations1. Store local state, e.g. cookies2. Provide user-specific interactions, e.g. sessions3. Query live data from the server4. Save user data to the server5. Perform all of the above asynchronously

Page 84: GermaniumWeb training for CXA2010

3. Bring Your Own Building

Page 85: GermaniumWeb training for CXA2010

Provided buildings

Coming soon

Shopping Mall Office Building

NUS School of Computing Republic Polytechnic

http://www.germanium3d.com/code/SampleBuildings

Page 86: GermaniumWeb training for CXA2010

BYOB - ModelingQuick and easy way:

KML Building Importer

Page 87: GermaniumWeb training for CXA2010

BYOB - ModelingFull 3D way:

COLLADA

Page 88: GermaniumWeb training for CXA2010

BYOB - Modeling

Real-time modeling guide

Page 89: GermaniumWeb training for CXA2010

3. BYOB - Deploying

Page 90: GermaniumWeb training for CXA2010

BYOB – Deploying filesThings to look out for:1. Use relative paths 2. Preserve directory structure3. Check your filename capitalization

e.g. Floor.jpg vs floor.jpg

4. Hosted webapps are not allowed to load local files• Local webapp -> local file OK• Hosted webapp -> local file Not allowed• Hosted webapp -> hosted file OK

Page 91: GermaniumWeb training for CXA2010

IntroductionBuildings & EyePlacemarksOther FeaturesWeb Development

Page 92: GermaniumWeb training for CXA2010

IntroductionBuildings & EyePlacemarksOther FeaturesWeb Development

Page 93: GermaniumWeb training for CXA2010

Questions?

blog.germanium3d.comwww.germanium3d.com/forumtechnical: [email protected]: [email protected]

Please give feedback:http://tinyurl.com/cxagermsurvey