Skip to content

Commit

Permalink
make Atmosphere basically work,#16
Browse files Browse the repository at this point in the history
  • Loading branch information
iSpring committed Dec 1, 2016
1 parent f93b197 commit bf74219
Show file tree
Hide file tree
Showing 7 changed files with 27 additions and 16 deletions.
8 changes: 6 additions & 2 deletions main.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
window.onload = function() {
require(["world/Kernel", "world/Globe", "world/layers/BingTiledLayer", "world/layers/NokiaTiledLayer", "world/layers/OsmTiledLayer",
"world/layers/SosoTiledLayer", "world/layers/TiandituTiledLayer", "world/layers/GoogleTiledLayer",
"world/layers/SosoTiledLayer", "world/layers/TiandituTiledLayer", "world/layers/GoogleTiledLayer", "world/graphics/Atmosphere",
"world/layers/PoiLayer"],
function(Kernel, Globe, BingTiledLayer, NokiaTiledLayer, OsmTiledLayer, SosoTiledLayer, TiandituTiledLayer, GoogleTiledLayer,
PoiLayer) {
Atmosphere, PoiLayer) {

window.Kernel = Kernel;

Expand All @@ -15,6 +15,10 @@
mapSelector.onchange = changeTiledLayer;
changeTiledLayer();

var atmosphere = Atmosphere.getInstance();

window.globe.scene.add(atmosphere);

var poiLayer = new PoiLayer();
window.globe.scene.add(poiLayer);
}
Expand Down
4 changes: 2 additions & 2 deletions src/world/Globe.ts
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class Globe {
this.renderer = Kernel.renderer = new Renderer(canvas);
this.scene = new Scene();
var radio = canvas.width / canvas.height;
this.camera = new Camera(30, radio, 1, Kernel.EARTH_RADIUS * 2);
this.camera = new Camera(30, radio, 1, Kernel.EARTH_RADIUS * 4);
this.renderer.setScene(this.scene);
this.renderer.setCamera(this.camera);
this.setLevel(0);
Expand Down Expand Up @@ -66,7 +66,7 @@ class Globe {
url: ""
};
args.url = this.tiledLayer.getImageUrl(args.level, args.row, args.column);
var tile = Tile.getTile(args.level, args.row, args.column, args.url);
var tile = Tile.getInstance(args.level, args.row, args.column, args.url);
subLayer1.add(tile);
}
}
Expand Down
8 changes: 5 additions & 3 deletions src/world/geometries/Atmosphere.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ import Vertice = require("../math/Vertice");
import Matrix = require("../math/Matrix");

class Atmosphere extends Mesh {
private readonly segment: number = 36;
private readonly segment: number = 360;
private readonly radius1: number = Kernel.EARTH_RADIUS;
private readonly radius2: number = Kernel.EARTH_RADIUS * 1.2;
private readonly radius2: number = Kernel.EARTH_RADIUS * 1.01;

constructor() {
super();
Expand All @@ -29,7 +29,7 @@ class Atmosphere extends Mesh {
mat2.setColumnTrans(0, this.radius2, 0);
var meshVertices2: MeshVertice[] = [];

var deltaRadian: number = Math.PI * 2 / this.segment;
var deltaRadian: number = - Math.PI * 2 / this.segment;
var deltaS: number = 1.0 / this.segment;
var u: number = 0;

Expand Down Expand Up @@ -64,6 +64,8 @@ class Atmosphere extends Mesh {
mat1.worldRotateZ(deltaRadian);
mat2.worldRotateZ(deltaRadian);
}

this.vertices.push(...meshVertices1, ...meshVertices2);
}
}

Expand Down
15 changes: 10 additions & 5 deletions src/world/graphics/Atmosphere.ts
Original file line number Diff line number Diff line change
@@ -1,18 +1,23 @@
///<amd-module name="world/graphics/Poi"/>
///<amd-module name="world/graphics/Atmosphere"/>

import Kernel = require("../Kernel");
import MeshGraphic = require('./MeshGraphic');
import Marker = require('../geometries/Marker');
import AtmosphereGeometry = require("../geometries/Atmosphere");
import MeshTextureMaterial = require('../materials/MeshTextureMaterial');
import Program = require("../Program");
import Camera from "../Camera";
import AtmosphereGeometry = require("../geometries/Atmosphere");

class Atmosphere extends MeshGraphic {
constructor(public geometry: AtmosphereGeometry, public material: MeshTextureMaterial){
private constructor(public geometry: AtmosphereGeometry, public material: MeshTextureMaterial){
super(geometry, material);
}

static getInstance(): Atmosphere{
var geometry = new AtmosphereGeometry();
var imageUrl = "/WebGlobe/src/world/images/atmosphere64.png";
var material = new MeshTextureMaterial(imageUrl, false);
return new Atmosphere(geometry, material);
}

onDraw(camera: Camera){
super.onDraw(camera);
// var gl = Kernel.gl;
Expand Down
4 changes: 2 additions & 2 deletions src/world/graphics/Tile.ts
Original file line number Diff line number Diff line change
Expand Up @@ -151,11 +151,11 @@ class TileInfo {
class Tile extends MeshGraphic {
subTiledLayer: any;

constructor(public geometry: TileGeometry, public material: TileMaterial, public tileInfo: TileInfo) {
private constructor(public geometry: TileGeometry, public material: TileMaterial, public tileInfo: TileInfo) {
super(geometry, material);
}

static getTile(level: number, row: number, column: number, url: string) {
static getInstance(level: number, row: number, column: number, url: string) {
var tileInfo = new TileInfo(level, row, column, url);
return new Tile(tileInfo.geometry, tileInfo.material, tileInfo);
}
Expand Down
2 changes: 1 addition & 1 deletion src/world/layers/SubTiledLayer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ class SubTiledLayer extends GraphicGroup {
url: ""
};
args.url = this.tiledLayer.getImageUrl(args.level, args.row, args.column);
tile = Tile.getTile(args.level, args.row, args.column, args.url);
tile = Tile.getInstance(args.level, args.row, args.column, args.url);
this.add(tile);
}
}
Expand Down
2 changes: 1 addition & 1 deletion src/world/materials/MeshTextureMaterial.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ class MeshTextureMaterial extends Material {
private ready:boolean = false;
private deleted: boolean = false;

constructor(imageOrUrl?: ImageType, public flipY: boolean = true) {
constructor(imageOrUrl: ImageType = null, public flipY: boolean = true) {
super();
this.texture = Kernel.gl.createTexture();
if(imageOrUrl){
Expand Down

0 comments on commit bf74219

Please sign in to comment.