arjs-session.js 1.8 KB
Newer Older
J
Jerome Etienne 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13
var ARjs = ARjs || {}

/**
 * define a ARjs.Session
 * 
 * @param {Object} parameters - parameters for this session
 */
ARjs.Session = function(parameters){
	var _this = this

	this.renderer = parameters.renderer
	this.camera = parameters.camera
	this.scene = parameters.scene
J
Jerome Etienne 已提交
14
	
15 16
	// log the version
	console.log('AR.js', THREEx.ArToolkitContext.REVISION, '- trackingBackend:', parameters.contextParameters.trackingBackend)
J
Jerome Etienne 已提交
17

J
Jerome Etienne 已提交
18 19 20 21 22 23
	//////////////////////////////////////////////////////////////////////////////
	//		init arSource
	//////////////////////////////////////////////////////////////////////////////
	var arSource = _this.arSource = new THREEx.ArToolkitSource(parameters.sourceParameters)

	arSource.init(function onReady(){
J
Jerome Etienne 已提交
24
		arSource.onResize(arContext, _this.renderer, _this.camera)
J
Jerome Etienne 已提交
25 26 27 28
	})
	
	// handle resize
	window.addEventListener('resize', function(){
J
Jerome Etienne 已提交
29
		arSource.onResize(arContext, _this.renderer, _this.camera)
J
Jerome Etienne 已提交
30 31 32 33 34
	})	
	
	//////////////////////////////////////////////////////////////////////////////
	//		init arContext
	//////////////////////////////////////////////////////////////////////////////
J
Jerome Etienne 已提交
35

J
Jerome Etienne 已提交
36 37 38 39 40 41 42
	// create atToolkitContext
	var arContext = _this.arContext = new THREEx.ArToolkitContext(parameters.contextParameters)
	
	// initialize it
	_this.arContext.init()
	
	arContext.addEventListener('initialized', function(event){
J
Jerome Etienne 已提交
43
		arSource.onResize(arContext, _this.renderer, _this.camera)
J
Jerome Etienne 已提交
44 45
	})
	
J
Jerome Etienne 已提交
46 47 48
	//////////////////////////////////////////////////////////////////////////////
	//		update function
	//////////////////////////////////////////////////////////////////////////////
J
Jerome Etienne 已提交
49
	// update artoolkit on every frame
J
Jerome Etienne 已提交
50
	this.update = function(){
J
Jerome Etienne 已提交
51 52 53
		if( arSource.ready === false )	return
		
		arContext.update( arSource.domElement )
J
Jerome Etienne 已提交
54
	}
J
Jerome Etienne 已提交
55
}
J
Jerome Etienne 已提交
56 57 58 59

ARjs.Session.prototype.onResize = function () {
	this.arSource.onResize(this.arContext, this.renderer, this.camera)	
};