From mixed convetion (_, and camel case) to all camel case
This commit is contained in:
parent
f136ce833f
commit
74cad3824b
|
@ -206,7 +206,7 @@ DBReq.Info.prototype.loadCameras = function() {
|
||||||
DBReq.Info.prototype.loadCoins = function() {
|
DBReq.Info.prototype.loadCoins = function() {
|
||||||
var self = this;
|
var self = this;
|
||||||
this.client.query(
|
this.client.query(
|
||||||
"SELECT coin_id, time FROM coinclicked WHERE exp_id = $1 ORDER BY time;",
|
"SELECT coin_id AS \"coinId\", time FROM coinclicked WHERE exp_id = $1 ORDER BY time;",
|
||||||
[self.id],
|
[self.id],
|
||||||
function(err,result) {
|
function(err,result) {
|
||||||
if (err !== null) {
|
if (err !== null) {
|
||||||
|
@ -218,7 +218,7 @@ DBReq.Info.prototype.loadCoins = function() {
|
||||||
{
|
{
|
||||||
type: 'coin',
|
type: 'coin',
|
||||||
time: result.rows[i].time,
|
time: result.rows[i].time,
|
||||||
id: result.rows[i].coin_id
|
id: result.rows[i].coinId
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -236,7 +236,7 @@ DBReq.Info.prototype.loadCoins = function() {
|
||||||
DBReq.Info.prototype.loadArrows = function() {
|
DBReq.Info.prototype.loadArrows = function() {
|
||||||
var self = this;
|
var self = this;
|
||||||
this.client.query(
|
this.client.query(
|
||||||
"SELECT arrow_id, time FROM arrowclicked WHERE exp_id = $1 ORDER BY time;",
|
"SELECT arrow_id AS \"arrowId\", time FROM arrowclicked WHERE exp_id = $1 ORDER BY time;",
|
||||||
[self.id],
|
[self.id],
|
||||||
function(err, result) {
|
function(err, result) {
|
||||||
if (err !== null) {
|
if (err !== null) {
|
||||||
|
@ -248,7 +248,7 @@ DBReq.Info.prototype.loadArrows = function() {
|
||||||
{
|
{
|
||||||
type: 'arrow',
|
type: 'arrow',
|
||||||
time: result.rows[i].time,
|
time: result.rows[i].time,
|
||||||
id: result.rows[i].arrow_id
|
id: result.rows[i].arrowId
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -342,7 +342,7 @@ DBReq.Info.prototype.loadPreviousNext = function () {
|
||||||
DBReq.Info.prototype.loadHovered = function() {
|
DBReq.Info.prototype.loadHovered = function() {
|
||||||
var self = this;
|
var self = this;
|
||||||
this.client.query(
|
this.client.query(
|
||||||
"SELECT start, time, arrow_id FROM hovered WHERE exp_id = $1 ORDER BY time;",
|
"SELECT start, time, arrow_id AS \"arrowId\" FROM hovered WHERE exp_id = $1 ORDER BY time;",
|
||||||
[self.id],
|
[self.id],
|
||||||
function(err, result) {
|
function(err, result) {
|
||||||
if (err !== null) {
|
if (err !== null) {
|
||||||
|
@ -355,7 +355,7 @@ DBReq.Info.prototype.loadHovered = function() {
|
||||||
type: "hovered",
|
type: "hovered",
|
||||||
time: result.rows[i].time,
|
time: result.rows[i].time,
|
||||||
start: result.rows[i].start,
|
start: result.rows[i].start,
|
||||||
id: result.rows[i].arrow_id
|
id: result.rows[i].arrowId
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
@ -433,14 +433,14 @@ DBReq.Info.prototype.loadSwitchedLockOption = function() {
|
||||||
DBReq.Info.prototype.loadRedCoins = function() {
|
DBReq.Info.prototype.loadRedCoins = function() {
|
||||||
var self = this;
|
var self = this;
|
||||||
this.client.query(
|
this.client.query(
|
||||||
"SELECT coin_1, \n" +
|
"SELECT coin_1 AS coin1, \n" +
|
||||||
" coin_2, \n" +
|
" coin_2 AS coin2, \n" +
|
||||||
" coin_3, \n" +
|
" coin_3 AS coin3, \n" +
|
||||||
" coin_4, \n" +
|
" coin_4 AS coin4, \n" +
|
||||||
" coin_5, \n" +
|
" coin_5 AS coin5, \n" +
|
||||||
" coin_6, \n" +
|
" coin_6 AS coin6, \n" +
|
||||||
" coin_7, \n" +
|
" coin_7 AS coin7, \n" +
|
||||||
" coin_8 \n" +
|
" coin_8 AS coin8 \n" +
|
||||||
"FROM CoinCombination, Experiment \n" +
|
"FROM CoinCombination, Experiment \n" +
|
||||||
"WHERE CoinCombination.id = Experiment.coin_combination_id AND \n" +
|
"WHERE CoinCombination.id = Experiment.coin_combination_id AND \n" +
|
||||||
" Experiment.id = $1;",
|
" Experiment.id = $1;",
|
||||||
|
@ -449,14 +449,14 @@ DBReq.Info.prototype.loadRedCoins = function() {
|
||||||
if (err !== null) {
|
if (err !== null) {
|
||||||
Log.dberror(err + ' in loadRedCoins');
|
Log.dberror(err + ' in loadRedCoins');
|
||||||
} else {
|
} else {
|
||||||
self.redCoins.push(result.rows[0].coin_1);
|
self.redCoins.push(result.rows[0].coin1);
|
||||||
self.redCoins.push(result.rows[0].coin_2);
|
self.redCoins.push(result.rows[0].coin2);
|
||||||
self.redCoins.push(result.rows[0].coin_3);
|
self.redCoins.push(result.rows[0].coin3);
|
||||||
self.redCoins.push(result.rows[0].coin_4);
|
self.redCoins.push(result.rows[0].coin4);
|
||||||
self.redCoins.push(result.rows[0].coin_5);
|
self.redCoins.push(result.rows[0].coin5);
|
||||||
self.redCoins.push(result.rows[0].coin_6);
|
self.redCoins.push(result.rows[0].coin6);
|
||||||
self.redCoins.push(result.rows[0].coin_7);
|
self.redCoins.push(result.rows[0].coin7);
|
||||||
self.redCoins.push(result.rows[0].coin_8);
|
self.redCoins.push(result.rows[0].coin8);
|
||||||
}
|
}
|
||||||
self.ready.redCoins = true;
|
self.ready.redCoins = true;
|
||||||
self.tryMerge();
|
self.tryMerge();
|
||||||
|
@ -515,16 +515,16 @@ DBReq.UserCreator.prototype.finish = function() {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class that creates an experiment
|
* Class that creates an experiment
|
||||||
* @param user_id {Number} id of the user that does the experiment
|
* @param userId {Number} id of the user that does the experiment
|
||||||
* @param scene_id {Number} id of the scene the experiment is based on
|
* @param sceneId {Number} id of the scene the experiment is based on
|
||||||
* @param finishAction {function} callback that has as a parameter the id of
|
* @param finishAction {function} callback that has as a parameter the id of
|
||||||
* the new experiment
|
* the new experiment
|
||||||
* @memberof DBReq
|
* @memberof DBReq
|
||||||
* @constructor
|
* @constructor
|
||||||
*/
|
*/
|
||||||
DBReq.ExpCreator = function(user_id, finishAction) {
|
DBReq.ExpCreator = function(userId, finishAction) {
|
||||||
this.finishAction = finishAction;
|
this.finishAction = finishAction;
|
||||||
this.user_id = user_id;
|
this.userId = userId;
|
||||||
this.finalResult = {};
|
this.finalResult = {};
|
||||||
|
|
||||||
// Connect to db
|
// Connect to db
|
||||||
|
@ -547,7 +547,18 @@ DBReq.ExpCreator = function(user_id, finishAction) {
|
||||||
DBReq.ExpCreator.prototype.execute = function() {
|
DBReq.ExpCreator.prototype.execute = function() {
|
||||||
var self = this;
|
var self = this;
|
||||||
this.client.query(
|
this.client.query(
|
||||||
"SELECT DISTINCT RecommendationStyle.name, CoinCombination.scene_id, CoinCombination.id, coin_1, coin_2, coin_3, coin_4, coin_5, coin_6, coin_7, coin_8\n" +
|
"SELECT DISTINCT \n" +
|
||||||
|
" RecommendationStyle.name, \n" +
|
||||||
|
" CoinCombination.scene_id AS \"sceneId\", \n" +
|
||||||
|
" CoinCombination.id, \n" +
|
||||||
|
" coin_1 AS coin1, \n" +
|
||||||
|
" coin_2 AS coin2, \n" +
|
||||||
|
" coin_3 AS coin3, \n" +
|
||||||
|
" coin_4 AS coin4, \n" +
|
||||||
|
" coin_5 AS coin5, \n" +
|
||||||
|
" coin_6 AS coin6, \n" +
|
||||||
|
" coin_7 AS coin7, \n" +
|
||||||
|
" coin_8 AS coin8\n" +
|
||||||
"FROM CoinCombination, Experiment, Users U, Users Other, RecommendationStyle, Scene\n" +
|
"FROM CoinCombination, Experiment, Users U, Users Other, RecommendationStyle, Scene\n" +
|
||||||
"WHERE\n" +
|
"WHERE\n" +
|
||||||
" Scene.id = CoinCombination.scene_id AND\n" +
|
" Scene.id = CoinCombination.scene_id AND\n" +
|
||||||
|
@ -578,22 +589,22 @@ DBReq.ExpCreator.prototype.execute = function() {
|
||||||
" WHERE Experiment.coin_combination_id = CoinCombination.id AND Experiment.user_id = $1\n" +
|
" WHERE Experiment.coin_combination_id = CoinCombination.id AND Experiment.user_id = $1\n" +
|
||||||
" )\n" +
|
" )\n" +
|
||||||
"LIMIT 1;",
|
"LIMIT 1;",
|
||||||
[self.user_id],
|
[self.userId],
|
||||||
function(err, result) {
|
function(err, result) {
|
||||||
if (result.rows.length > 0) {
|
if (result.rows.length > 0) {
|
||||||
// Set the result
|
// Set the result
|
||||||
self.finalResult.coin_combination_id = result.rows[0].id;
|
self.finalResult.coinCombinationId = result.rows[0].id;
|
||||||
self.finalResult.scene_id = result.rows[0].scene_id;
|
self.finalResult.sceneId = result.rows[0].sceneId;
|
||||||
self.finalResult.recommendation_style = result.rows[0].name;
|
self.finalResult.recommendationStyle = result.rows[0].name;
|
||||||
self.finalResult.coins = [
|
self.finalResult.coins = [
|
||||||
result.rows[0].coin_1,
|
result.rows[0].coin1,
|
||||||
result.rows[0].coin_2,
|
result.rows[0].coin2,
|
||||||
result.rows[0].coin_3,
|
result.rows[0].coin3,
|
||||||
result.rows[0].coin_4,
|
result.rows[0].coin4,
|
||||||
result.rows[0].coin_5,
|
result.rows[0].coin5,
|
||||||
result.rows[0].coin_6,
|
result.rows[0].coin6,
|
||||||
result.rows[0].coin_7,
|
result.rows[0].coin7,
|
||||||
result.rows[0].coin_8
|
result.rows[0].coin8
|
||||||
];
|
];
|
||||||
|
|
||||||
// There is a suggested experiment : create it
|
// There is a suggested experiment : create it
|
||||||
|
@ -601,9 +612,9 @@ DBReq.ExpCreator.prototype.execute = function() {
|
||||||
"INSERT INTO Experiment(user_id, coin_combination_id, recommendation_style)\n" +
|
"INSERT INTO Experiment(user_id, coin_combination_id, recommendation_style)\n" +
|
||||||
"VALUES($1,$2,$3)\n" +
|
"VALUES($1,$2,$3)\n" +
|
||||||
"RETURNING id",
|
"RETURNING id",
|
||||||
[self.user_id, result.rows[0].id, result.rows[0].name],
|
[self.userId, result.rows[0].id, result.rows[0].name],
|
||||||
function(err, result) {
|
function(err, result) {
|
||||||
self.finalResult.exp_id = result.rows[0].id;
|
self.finalResult.expId = result.rows[0].id;
|
||||||
self.finish();
|
self.finish();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -612,7 +623,7 @@ DBReq.ExpCreator.prototype.execute = function() {
|
||||||
} else {
|
} else {
|
||||||
// Find the scene / recommendation style for the new experiment
|
// Find the scene / recommendation style for the new experiment
|
||||||
self.client.query(
|
self.client.query(
|
||||||
"SELECT RecommendationStyle.name, Scene.id as scene_id\n" +
|
"SELECT RecommendationStyle.name, Scene.id AS \"sceneId\"\n" +
|
||||||
"FROM RecommendationStyle, Scene\n" +
|
"FROM RecommendationStyle, Scene\n" +
|
||||||
"WHERE\n" +
|
"WHERE\n" +
|
||||||
" RecommendationStyle.name NOT IN(\n" +
|
" RecommendationStyle.name NOT IN(\n" +
|
||||||
|
@ -632,11 +643,11 @@ DBReq.ExpCreator.prototype.execute = function() {
|
||||||
"\n" +
|
"\n" +
|
||||||
"ORDER BY RANDOM()\n" +
|
"ORDER BY RANDOM()\n" +
|
||||||
"LIMIT 1;",
|
"LIMIT 1;",
|
||||||
[self.user_id],
|
[self.userId],
|
||||||
function(err, result) {
|
function(err, result) {
|
||||||
if (result.rows.length > 0) {
|
if (result.rows.length > 0) {
|
||||||
self.finalResult.scene_id = result.rows[0].scene_id;
|
self.finalResult.sceneId = result.rows[0].sceneId;
|
||||||
self.finalResult.recommendation_style = result.rows[0].name;
|
self.finalResult.recommendationStyle = result.rows[0].name;
|
||||||
|
|
||||||
// Generate random coins
|
// Generate random coins
|
||||||
self.client.query(
|
self.client.query(
|
||||||
|
@ -645,7 +656,7 @@ DBReq.ExpCreator.prototype.execute = function() {
|
||||||
"WHERE Scene.id = $1\n" +
|
"WHERE Scene.id = $1\n" +
|
||||||
"ORDER BY RANDOM()\n" +
|
"ORDER BY RANDOM()\n" +
|
||||||
"LIMIT 8;",
|
"LIMIT 8;",
|
||||||
[self.finalResult.scene_id],
|
[self.finalResult.sceneId],
|
||||||
function(err, result) {
|
function(err, result) {
|
||||||
self.finalResult.coins = [];
|
self.finalResult.coins = [];
|
||||||
for (var i = 0; i < 8; i++) {
|
for (var i = 0; i < 8; i++) {
|
||||||
|
@ -658,7 +669,7 @@ DBReq.ExpCreator.prototype.execute = function() {
|
||||||
"VALUES($1,$2,$3,$4,$5,$6,$7,$8,$9)\n" +
|
"VALUES($1,$2,$3,$4,$5,$6,$7,$8,$9)\n" +
|
||||||
"RETURNING id;",
|
"RETURNING id;",
|
||||||
[
|
[
|
||||||
self.finalResult.scene_id,
|
self.finalResult.sceneId,
|
||||||
self.finalResult.coins[0],
|
self.finalResult.coins[0],
|
||||||
self.finalResult.coins[1],
|
self.finalResult.coins[1],
|
||||||
self.finalResult.coins[2],
|
self.finalResult.coins[2],
|
||||||
|
@ -669,16 +680,16 @@ DBReq.ExpCreator.prototype.execute = function() {
|
||||||
self.finalResult.coins[7],
|
self.finalResult.coins[7],
|
||||||
],
|
],
|
||||||
function(err, result) {
|
function(err, result) {
|
||||||
self.finalResult.coin_combination_id = result.rows[0].id;
|
self.finalResult.coinCombinationId = result.rows[0].id;
|
||||||
|
|
||||||
// And create the experiment
|
// And create the experiment
|
||||||
self.client.query(
|
self.client.query(
|
||||||
"INSERT INTO Experiment(user_id, coin_combination_id, recommendation_style)\n" +
|
"INSERT INTO Experiment(user_id, coin_combination_id, recommendation_style)\n" +
|
||||||
"VALUES($1,$2,$3)\n" +
|
"VALUES($1,$2,$3)\n" +
|
||||||
"RETURNING id;",
|
"RETURNING id;",
|
||||||
[self.user_id, self.finalResult.coin_combination_id, self.finalResult.recommendation_style],
|
[self.userId, self.finalResult.coinCombinationId, self.finalResult.recommendationStyle],
|
||||||
function(err, result) {
|
function(err, result) {
|
||||||
self.finalResult.exp_id = result.rows[0].id;
|
self.finalResult.expId = result.rows[0].id;
|
||||||
self.finish();
|
self.finish();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
@ -710,10 +721,10 @@ DBReq.ExpCreator.prototype.finish = function() {
|
||||||
self.release = null;
|
self.release = null;
|
||||||
|
|
||||||
self.finishAction(
|
self.finishAction(
|
||||||
self.finalResult.exp_id,
|
self.finalResult.expId,
|
||||||
self.finalResult.coin_combination_id,
|
self.finalResult.coinCombinationId,
|
||||||
self.finalResult.scene_id,
|
self.finalResult.sceneId,
|
||||||
self.finalResult.recommendation_style,
|
self.finalResult.recommendationStyle,
|
||||||
self.finalResult.coins
|
self.finalResult.coins
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
@ -829,13 +840,13 @@ DBReq.ExpIdChecker = function(id, finishAction) {
|
||||||
DBReq.ExpIdChecker.prototype.execute = function() {
|
DBReq.ExpIdChecker.prototype.execute = function() {
|
||||||
var self = this;
|
var self = this;
|
||||||
this.client.query(
|
this.client.query(
|
||||||
"SELECT scene_id FROM experiment, CoinCombination WHERE CoinCombination.id = Experiment.coin_combination_id AND Experiment.id = $1;",
|
"SELECT scene_id AS \"sceneId\" FROM experiment, CoinCombination WHERE CoinCombination.id = Experiment.coin_combination_id AND Experiment.id = $1;",
|
||||||
[self.id],
|
[self.id],
|
||||||
function(err, result) {
|
function(err, result) {
|
||||||
if (result === undefined || result.rows.length === 0) {
|
if (result === undefined || result.rows.length === 0) {
|
||||||
self.finalResult = null;
|
self.finalResult = null;
|
||||||
} else {
|
} else {
|
||||||
self.finalResult = result.rows[0].scene_id;
|
self.finalResult = result.rows[0].sceneId;
|
||||||
}
|
}
|
||||||
self.finish();
|
self.finish();
|
||||||
}
|
}
|
||||||
|
@ -879,10 +890,10 @@ DBReq.ExpGetter.prototype.execute = function() {
|
||||||
var self = this;
|
var self = this;
|
||||||
this.client.query(
|
this.client.query(
|
||||||
"SELECT " +
|
"SELECT " +
|
||||||
"experiment.id as exp_id, " +
|
"experiment.id AS \"expId\", " +
|
||||||
"users.worker_id as username, " +
|
"users.worker_id AS username, " +
|
||||||
"scene.name as scenename, " +
|
"scene.name AS scenename, " +
|
||||||
"users.id as user_id " +
|
"users.id AS \"userId\" " +
|
||||||
"FROM experiment, users, scene, CoinCombination " +
|
"FROM experiment, users, scene, CoinCombination " +
|
||||||
"WHERE experiment.user_id = users.id and scene.id = CoinCombination.scene_id AND " +
|
"WHERE experiment.user_id = users.id and scene.id = CoinCombination.scene_id AND " +
|
||||||
" Experiment.coin_combination_id = CoinCombination.id " +
|
" Experiment.coin_combination_id = CoinCombination.id " +
|
||||||
|
@ -923,7 +934,7 @@ DBReq.TutorialCreator.prototype.execute = function() {
|
||||||
var self = this;
|
var self = this;
|
||||||
this.client.query(
|
this.client.query(
|
||||||
// Generate random coins
|
// Generate random coins
|
||||||
"SELECT Scene.id AS scene_id, generate_series AS id\n" +
|
"SELECT Scene.id AS \"sceneId\", generate_series AS id\n" +
|
||||||
"FROM Scene, generate_series(0,Scene.coin_number-1)\n" +
|
"FROM Scene, generate_series(0,Scene.coin_number-1)\n" +
|
||||||
"WHERE Scene.name = 'peachcastle'\n" +
|
"WHERE Scene.name = 'peachcastle'\n" +
|
||||||
"ORDER BY RANDOM()\n" +
|
"ORDER BY RANDOM()\n" +
|
||||||
|
@ -934,13 +945,14 @@ DBReq.TutorialCreator.prototype.execute = function() {
|
||||||
for (var i = 0; i < 8; i++) {
|
for (var i = 0; i < 8; i++) {
|
||||||
self.finalResult.coins.push(result.rows[i].id);
|
self.finalResult.coins.push(result.rows[i].id);
|
||||||
}
|
}
|
||||||
|
console.log(result.rows[0]);
|
||||||
// Create CoinCombination
|
// Create CoinCombination
|
||||||
self.client.query(
|
self.client.query(
|
||||||
"INSERT INTO CoinCombination(scene_id, coin_1, coin_2, coin_3, coin_4, coin_5, coin_6, coin_7, coin_8)\n" +
|
"INSERT INTO CoinCombination(scene_id, coin_1, coin_2, coin_3, coin_4, coin_5, coin_6, coin_7, coin_8)\n" +
|
||||||
"VALUES($1,$2,$3,$4,$5,$6,$7,$8,$9)\n" +
|
"VALUES($1,$2,$3,$4,$5,$6,$7,$8,$9)\n" +
|
||||||
"RETURNING id;",
|
"RETURNING id;",
|
||||||
[
|
[
|
||||||
result.rows[0].scene_id,
|
result.rows[0].sceneId,
|
||||||
result.rows[0].id,
|
result.rows[0].id,
|
||||||
result.rows[1].id,
|
result.rows[1].id,
|
||||||
result.rows[2].id,
|
result.rows[2].id,
|
||||||
|
@ -951,6 +963,7 @@ DBReq.TutorialCreator.prototype.execute = function() {
|
||||||
result.rows[7].id
|
result.rows[7].id
|
||||||
],
|
],
|
||||||
function(err, result) {
|
function(err, result) {
|
||||||
|
console.log(err);
|
||||||
// Create experiment
|
// Create experiment
|
||||||
self.client.query(
|
self.client.query(
|
||||||
"INSERT INTO Experiment(user_id, coin_combination_id)\n" +
|
"INSERT INTO Experiment(user_id, coin_combination_id)\n" +
|
||||||
|
@ -1019,7 +1032,7 @@ DBReq.createUser = function(callback) {
|
||||||
* Creates an experiment
|
* Creates an experiment
|
||||||
* @memberof DBReq
|
* @memberof DBReq
|
||||||
* @param id {Number} id of the user doing the experiment
|
* @param id {Number} id of the user doing the experiment
|
||||||
* @param scene_id {Number} id of the scene on which the experiment is
|
* @param sceneId {Number} id of the scene on which the experiment is
|
||||||
* @param callback {function} callback called on the new experiment id
|
* @param callback {function} callback called on the new experiment id
|
||||||
*/
|
*/
|
||||||
DBReq.createExp = function(id, callback) {
|
DBReq.createExp = function(id, callback) {
|
||||||
|
@ -1050,8 +1063,8 @@ DBReq.checkUserName = function(name, callback) {
|
||||||
* @memberof DBReq
|
* @memberof DBReq
|
||||||
* @param id {Number} id of the experiment to check
|
* @param id {Number} id of the experiment to check
|
||||||
* @param callback {function} callback called on an object (null if the
|
* @param callback {function} callback called on an object (null if the
|
||||||
* experiment doesn't exist, an object containing username, scene_id,
|
* experiment doesn't exist, an object containing username, sceneId,
|
||||||
* scenename, and exp_id if it exists
|
* scenename, and expId if it exists
|
||||||
*/
|
*/
|
||||||
DBReq.checkExpId = function(id, callback) {
|
DBReq.checkExpId = function(id, callback) {
|
||||||
new DBReq.ExpIdChecker(id, callback);
|
new DBReq.ExpIdChecker(id, callback);
|
||||||
|
|
|
@ -26,9 +26,9 @@ var sceneToFunction = function(scene) {
|
||||||
|
|
||||||
module.exports.game = function(req, res) {
|
module.exports.game = function(req, res) {
|
||||||
|
|
||||||
db.tryUser(req.session.user_id, function(id) {
|
db.tryUser(req.session.userId, function(id) {
|
||||||
|
|
||||||
req.session.user_id = id;
|
req.session.userId = id;
|
||||||
|
|
||||||
db.createExp(id, function(expId, coinCombinationId, sceneId, recommendationStyle, coins) {
|
db.createExp(id, function(expId, coinCombinationId, sceneId, recommendationStyle, coins) {
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ module.exports.game = function(req, res) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
req.session.exp_id = expId;
|
req.session.expId = expId;
|
||||||
req.session.save();
|
req.session.save();
|
||||||
|
|
||||||
res.locals.scene = sceneToFunction(sceneId);
|
res.locals.scene = sceneToFunction(sceneId);
|
||||||
|
@ -62,7 +62,7 @@ module.exports.sponza = function(req, res) {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports.replay_info = function(req, res) {
|
module.exports.replayInfo = function(req, res) {
|
||||||
res.setHeader('Content-Type', 'text/plain');
|
res.setHeader('Content-Type', 'text/plain');
|
||||||
|
|
||||||
// Parse id
|
// Parse id
|
||||||
|
@ -77,13 +77,13 @@ module.exports.replay = function(req, res, next) {
|
||||||
// Get id parameter
|
// Get id parameter
|
||||||
res.locals.id = tools.filterInt(req.params.id);
|
res.locals.id = tools.filterInt(req.params.id);
|
||||||
|
|
||||||
db.checkExpId(res.locals.id, function(scene_id) {
|
db.checkExpId(res.locals.id, function(sceneId) {
|
||||||
if (scene_id === null) {
|
if (sceneId === null) {
|
||||||
var err = new Error("This replay does not exist");
|
var err = new Error("This replay does not exist");
|
||||||
err.status = 404;
|
err.status = 404;
|
||||||
next(err);
|
next(err);
|
||||||
} else {
|
} else {
|
||||||
res.locals.initjs = sceneToFunction(scene_id);
|
res.locals.initjs = sceneToFunction(sceneId);
|
||||||
res.setHeader('Content-Type', 'text/html');
|
res.setHeader('Content-Type', 'text/html');
|
||||||
res.render('prototype_replays.jade', res.locals, function(err, result) {
|
res.render('prototype_replays.jade', res.locals, function(err, result) {
|
||||||
res.send(result);
|
res.send(result);
|
||||||
|
@ -92,7 +92,7 @@ module.exports.replay = function(req, res, next) {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
module.exports.replay_index = function(req, res, next) {
|
module.exports.replayIndex = function(req, res, next) {
|
||||||
db.getAllExps(function(result) {
|
db.getAllExps(function(result) {
|
||||||
res.locals.users = result;
|
res.locals.users = result;
|
||||||
|
|
||||||
|
@ -105,12 +105,12 @@ module.exports.replay_index = function(req, res, next) {
|
||||||
|
|
||||||
module.exports.tutorial = function(req, res) {
|
module.exports.tutorial = function(req, res) {
|
||||||
|
|
||||||
db.tryUser(req.session.user_id, function(id) {
|
db.tryUser(req.session.userId, function(id) {
|
||||||
req.session.user_id = id;
|
req.session.userId = id;
|
||||||
|
|
||||||
// 1 is the ID of peach scene
|
// 1 is the ID of peach scene
|
||||||
db.createTutorial(id, function(id, coins) {
|
db.createTutorial(id, function(id, coins) {
|
||||||
req.session.exp_id = id;
|
req.session.expId = id;
|
||||||
res.locals.coins = coins;
|
res.locals.coins = coins;
|
||||||
req.session.save();
|
req.session.save();
|
||||||
|
|
||||||
|
|
|
@ -1,9 +1,9 @@
|
||||||
module.exports = {
|
module.exports = {
|
||||||
'/prototype': 'index',
|
'/prototype': 'index',
|
||||||
'/prototype/game': 'game',
|
'/prototype/game': 'game',
|
||||||
'/prototype/replay': 'replay_index',
|
'/prototype/replay': 'replayIndex',
|
||||||
'/prototype/replay/:id': 'replay',
|
'/prototype/replay/:id': 'replay',
|
||||||
'/prototype/replay_info/:id': 'replay_info',
|
'/prototype/replay-info/:id': 'replayInfo',
|
||||||
'/prototype/tutorial': 'tutorial',
|
'/prototype/tutorial': 'tutorial',
|
||||||
'/prototype/sponza': 'sponza',
|
'/prototype/sponza': 'sponza',
|
||||||
'/prototype/coin-creator/:scene': 'clicker',
|
'/prototype/coin-creator/:scene': 'clicker',
|
||||||
|
|
|
@ -14,4 +14,4 @@ block content
|
||||||
a(href="reverse/") Reversed arrows looking like funnel
|
a(href="reverse/") Reversed arrows looking like funnel
|
||||||
li
|
li
|
||||||
a(href="viewports/") Viewports
|
a(href="viewports/") Viewports
|
||||||
p You can also watch replays of previous experiences <a href="#{urls.replay_index}">here</a>.
|
p You can also watch replays of previous experiences <a href="#{urls.replayIndex}">here</a>.
|
||||||
|
|
|
@ -10,4 +10,4 @@ block content
|
||||||
else
|
else
|
||||||
ol
|
ol
|
||||||
each elt in users
|
each elt in users
|
||||||
li <a href="/prototype/replay/#{elt.exp_id}">User <em>#{elt.username} (#{elt.user_id})</em> for scene <em>#{elt.scenename}</em></a>
|
li <a href="/prototype/replay/#{elt.expId}">User <em>#{elt.username} (#{elt.userId})</em> for scene <em>#{elt.scenename}</em></a>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
var BouncingCube = function(size, style) {
|
var BouncingCube = function(size, style) {
|
||||||
L3D.Cube.call(this, size, style);
|
L3D.Cube.call(this, size, style);
|
||||||
|
|
||||||
this.fixed_center = new THREE.Vector3();
|
this.fixedCenter = new THREE.Vector3();
|
||||||
this.center = new THREE.Vector3();
|
this.center = new THREE.Vector3();
|
||||||
|
|
||||||
this.speed = new THREE.Vector3(0,0,300);
|
this.speed = new THREE.Vector3(0,0,300);
|
||||||
|
@ -11,13 +11,13 @@ BouncingCube.prototype.constructor = BouncingCube;
|
||||||
|
|
||||||
BouncingCube.prototype.update = function() {
|
BouncingCube.prototype.update = function() {
|
||||||
// Compute new center
|
// Compute new center
|
||||||
var speed_clone = this.speed.clone();
|
var speedClone = this.speed.clone();
|
||||||
speed_clone.multiply(BouncingCube.DT);
|
speedClone.multiply(BouncingCube.DT);
|
||||||
|
|
||||||
this.speed.add(BouncingCube.G);
|
this.speed.add(BouncingCube.G);
|
||||||
|
|
||||||
if (this.speed.dot(this.speed) > 100) {
|
if (this.speed.dot(this.speed) > 100) {
|
||||||
this.center.add(speed_clone);
|
this.center.add(speedClone);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.center.z < 0) {
|
if (this.center.z < 0) {
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
var renderer, scene, camera, controls, cube, container, plane, mouse= {x:0, y:0};
|
var renderer, scene, camera, controls, cube, container, plane, mouse= {x:0, y:0};
|
||||||
var raycaster;
|
var raycaster;
|
||||||
var objects = [];
|
var objects = [];
|
||||||
var container_size = {};
|
var containerSize = {};
|
||||||
var previousTime;
|
var previousTime;
|
||||||
container_size.width = 1067;
|
containerSize.width = 1067;
|
||||||
container_size.height = 600;
|
containerSize.height = 600;
|
||||||
|
|
||||||
init();
|
init();
|
||||||
animate();
|
animate();
|
||||||
|
@ -12,10 +12,10 @@ animate();
|
||||||
function init() {
|
function init() {
|
||||||
// on initialise le moteur de rendu
|
// on initialise le moteur de rendu
|
||||||
container = document.getElementById('container');
|
container = document.getElementById('container');
|
||||||
container.style.height = container_size.height + 'px';
|
container.style.height = containerSize.height + 'px';
|
||||||
container.style.width = container_size.width + 'px';
|
container.style.width = containerSize.width + 'px';
|
||||||
renderer = new THREE.WebGLRenderer({alpha:"true"});
|
renderer = new THREE.WebGLRenderer({alpha:"true"});
|
||||||
renderer.setSize(container_size.width, container_size.height);
|
renderer.setSize(containerSize.width, containerSize.height);
|
||||||
renderer.shadowMapEnabled = true;
|
renderer.shadowMapEnabled = true;
|
||||||
document.getElementById('container').appendChild(renderer.domElement);
|
document.getElementById('container').appendChild(renderer.domElement);
|
||||||
|
|
||||||
|
@ -24,16 +24,16 @@ function init() {
|
||||||
raycaster = new THREE.Raycaster();
|
raycaster = new THREE.Raycaster();
|
||||||
|
|
||||||
// init light
|
// init light
|
||||||
var directional_light = new THREE.DirectionalLight(0xffffff);
|
var directionalLight = new THREE.DirectionalLight(0xffffff);
|
||||||
directional_light.position.set(1, 0.5, 1).normalize();
|
directionalLight.position.set(1, 0.5, 1).normalize();
|
||||||
directional_light.castShadow = true;
|
directionalLight.castShadow = true;
|
||||||
scene.add(directional_light);
|
scene.add(directionalLight);
|
||||||
|
|
||||||
var ambient_light = new THREE.AmbientLight(0x444444);
|
var ambientLight = new THREE.AmbientLight(0x444444);
|
||||||
scene.add(ambient_light);
|
scene.add(ambientLight);
|
||||||
|
|
||||||
// on initialise la camera que l’on place ensuite sur la scène
|
// on initialise la camera que l’on place ensuite sur la scène
|
||||||
camera = new L3D.Camera(50, container_size.width / container_size.height, 1, 10000);
|
camera = new L3D.Camera(50, containerSize.width / containerSize.height, 1, 10000);
|
||||||
scene.add(camera);
|
scene.add(camera);
|
||||||
|
|
||||||
window.addEventListener('resize', onWindowResize, false);
|
window.addEventListener('resize', onWindowResize, false);
|
||||||
|
|
|
@ -1,15 +1,15 @@
|
||||||
var mesh_number = 25;
|
var meshNumber = 25;
|
||||||
var renderer, scene, camera, controls, cube, container, plane, mouse= {x:0, y:0};
|
var renderer, scene, camera, controls, cube, container, plane, mouse= {x:0, y:0};
|
||||||
var raycaster;
|
var raycaster;
|
||||||
var objects = [];
|
var objects = [];
|
||||||
var spheres = new Array(mesh_number);
|
var spheres = new Array(meshNumber);
|
||||||
var visible = 0;
|
var visible = 0;
|
||||||
|
|
||||||
var loader, previousTime;
|
var loader, previousTime;
|
||||||
|
|
||||||
var container_size = {};
|
var containerSize = {};
|
||||||
container_size.width = 1067;
|
containerSize.width = 1067;
|
||||||
container_size.height = 600;
|
containerSize.height = 600;
|
||||||
|
|
||||||
init();
|
init();
|
||||||
animate();
|
animate();
|
||||||
|
@ -34,10 +34,10 @@ function loadSphere(i) {
|
||||||
function init() {
|
function init() {
|
||||||
// on initialise le moteur de rendu
|
// on initialise le moteur de rendu
|
||||||
container = document.getElementById('container');
|
container = document.getElementById('container');
|
||||||
container.style.height = container_size.height + 'px';
|
container.style.height = containerSize.height + 'px';
|
||||||
container.style.width = container_size.width + 'px';
|
container.style.width = containerSize.width + 'px';
|
||||||
renderer = new THREE.WebGLRenderer({alpha:"true"});
|
renderer = new THREE.WebGLRenderer({alpha:"true"});
|
||||||
renderer.setSize(container_size.width, container_size.height);
|
renderer.setSize(containerSize.width, containerSize.height);
|
||||||
renderer.shadowMapEnabled = true;
|
renderer.shadowMapEnabled = true;
|
||||||
document.getElementById('container').appendChild(renderer.domElement);
|
document.getElementById('container').appendChild(renderer.domElement);
|
||||||
|
|
||||||
|
@ -46,16 +46,16 @@ function init() {
|
||||||
raycaster = new THREE.Raycaster();
|
raycaster = new THREE.Raycaster();
|
||||||
|
|
||||||
// init light
|
// init light
|
||||||
var directional_light = new THREE.DirectionalLight(0xffffff);
|
var directionalLight = new THREE.DirectionalLight(0xffffff);
|
||||||
directional_light.position.set(1, 0.5, 1).normalize();
|
directionalLight.position.set(1, 0.5, 1).normalize();
|
||||||
directional_light.castShadow = true;
|
directionalLight.castShadow = true;
|
||||||
scene.add(directional_light);
|
scene.add(directionalLight);
|
||||||
|
|
||||||
var ambient_light = new THREE.AmbientLight(0x444444);
|
var ambientLight = new THREE.AmbientLight(0x444444);
|
||||||
scene.add(ambient_light);
|
scene.add(ambientLight);
|
||||||
|
|
||||||
// on initialise la camera que l’on place ensuite sur la scène
|
// on initialise la camera que l’on place ensuite sur la scène
|
||||||
camera = new L3D.Camera(50, container_size.width / container_size.height, 1, 10000);
|
camera = new L3D.Camera(50, containerSize.width / containerSize.height, 1, 10000);
|
||||||
scene.add(camera);
|
scene.add(camera);
|
||||||
|
|
||||||
window.addEventListener('resize', onWindowResize, false);
|
window.addEventListener('resize', onWindowResize, false);
|
||||||
|
@ -65,7 +65,7 @@ function init() {
|
||||||
// Création d'un objloader
|
// Création d'un objloader
|
||||||
loader = new THREE.OBJLoader();
|
loader = new THREE.OBJLoader();
|
||||||
|
|
||||||
for (var i = 0; i < mesh_number; i++) {
|
for (var i = 0; i < meshNumber; i++) {
|
||||||
|
|
||||||
loadSphere(i);
|
loadSphere(i);
|
||||||
|
|
||||||
|
|
|
@ -39,8 +39,8 @@ Coin.setSize = function(width,height) {
|
||||||
|
|
||||||
Coin.initSize = function() {
|
Coin.initSize = function() {
|
||||||
try {
|
try {
|
||||||
Coin.domElement.width = container_size.width();
|
Coin.domElement.width = containerSize.width();
|
||||||
Coin.domElement.height = container_size.height();
|
Coin.domElement.height = containerSize.height();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
setTimeout(100, Coin.initSize);
|
setTimeout(100, Coin.initSize);
|
||||||
return;
|
return;
|
||||||
|
@ -51,9 +51,9 @@ Coin.update = function() {
|
||||||
|
|
||||||
var x;
|
var x;
|
||||||
try {
|
try {
|
||||||
x = container_size.width() * 4.75 / 5;
|
x = containerSize.width() * 4.75 / 5;
|
||||||
Coin.domElement.width = container_size.width();
|
Coin.domElement.width = containerSize.width();
|
||||||
Coin.domElement.height = container_size.height();
|
Coin.domElement.height = containerSize.height();
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -108,7 +108,7 @@ Coin.set = function() {
|
||||||
Coin.set(newLvl);
|
Coin.set(newLvl);
|
||||||
},50);
|
},50);
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
||||||
// Coin.image.onload = Coin.update;
|
// Coin.image.onload = Coin.update;
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
// Auto-resize case
|
// Auto-resize case
|
||||||
// var main_section = document.getElementById('main-section');
|
// var mainSection = document.getElementById('main-section');
|
||||||
//
|
//
|
||||||
// var container_size = {
|
// var containerSize = {
|
||||||
// width: function() { if (!isFullscreen) return main_section.clientWidth; else return screen.width;},
|
// width: function() { if (!isFullscreen) return mainSection.clientWidth; else return screen.width;},
|
||||||
// height: function() {
|
// height: function() {
|
||||||
// if (!isFullscreen)
|
// if (!isFullscreen)
|
||||||
// return main_section.clientHeight
|
// return mainSection.clientHeight
|
||||||
// - document.getElementById('nav').offsetHeight
|
// - document.getElementById('nav').offsetHeight
|
||||||
// - document.getElementById('main-div').offsetHeight;
|
// - document.getElementById('main-div').offsetHeight;
|
||||||
// else
|
// else
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
// }
|
// }
|
||||||
// };
|
// };
|
||||||
|
|
||||||
var container_size = {
|
var containerSize = {
|
||||||
|
|
||||||
width: function() { return 1134; },
|
width: function() { return 1134; },
|
||||||
height: function() { return 768; }
|
height: function() { return 768; }
|
||||||
|
@ -54,7 +54,7 @@ function objectClickerOnHover(camera1, previewer, recommendations, container) {
|
||||||
if (obj instanceof L3D.BaseRecommendation) {
|
if (obj instanceof L3D.BaseRecommendation) {
|
||||||
// The newly hovered object is different and is a recommendation
|
// The newly hovered object is different and is a recommendation
|
||||||
|
|
||||||
event.arrow_id = recommendations.indexOf(obj);
|
event.arrowId = recommendations.indexOf(obj);
|
||||||
event.start = true;
|
event.start = true;
|
||||||
event.send();
|
event.send();
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ function objectClickerOnHover(camera1, previewer, recommendations, container) {
|
||||||
// but the previous one is : we must log
|
// but the previous one is : we must log
|
||||||
|
|
||||||
// Unhovered
|
// Unhovered
|
||||||
event.arrow_id = 0;
|
event.arrowId = 0;
|
||||||
event.start = false;
|
event.start = false;
|
||||||
event.send();
|
event.send();
|
||||||
|
|
||||||
|
@ -94,7 +94,7 @@ function objectClickerOnClick(camera1, buttonManager, recommendations, coins) {
|
||||||
|
|
||||||
// Send event to DB
|
// Send event to DB
|
||||||
event = new L3D.DB.Event.CoinClicked();
|
event = new L3D.DB.Event.CoinClicked();
|
||||||
event.coin_id = obj.id;
|
event.coinId = obj.id;
|
||||||
event.send();
|
event.send();
|
||||||
|
|
||||||
} else if (obj instanceof L3D.BaseRecommendation) {
|
} else if (obj instanceof L3D.BaseRecommendation) {
|
||||||
|
@ -104,7 +104,7 @@ function objectClickerOnClick(camera1, buttonManager, recommendations, coins) {
|
||||||
|
|
||||||
// Send event to DB
|
// Send event to DB
|
||||||
event = new L3D.DB.Event.ArrowClicked();
|
event = new L3D.DB.Event.ArrowClicked();
|
||||||
event.arrow_id = recommendations.indexOf(obj);
|
event.arrowId = recommendations.indexOf(obj);
|
||||||
event.send();
|
event.send();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -133,7 +133,7 @@ var hide = createVisibilityFunction(false);
|
||||||
|
|
||||||
function resizeElements() {
|
function resizeElements() {
|
||||||
|
|
||||||
var width = container_size.width(), height = container_size.height();
|
var width = containerSize.width(), height = containerSize.height();
|
||||||
|
|
||||||
for (var i = 0; i < arguments.length; i++) {
|
for (var i = 0; i < arguments.length; i++) {
|
||||||
|
|
||||||
|
|
|
@ -97,7 +97,7 @@ function initThreeElements() {
|
||||||
// Initialize pointer camera
|
// Initialize pointer camera
|
||||||
camera1 = new L3D.PointerCamera(
|
camera1 = new L3D.PointerCamera(
|
||||||
50,
|
50,
|
||||||
container_size.width() / container_size.height(),
|
containerSize.width() / containerSize.height(),
|
||||||
0.01, 100000, renderer, container
|
0.01, 100000, renderer, container
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -236,7 +236,7 @@ function render() {
|
||||||
// Set current position of camera
|
// Set current position of camera
|
||||||
camera1.look();
|
camera1.look();
|
||||||
|
|
||||||
var left = 0, bottom = 0, width = container_size.width(), height = container_size.height();
|
var left = 0, bottom = 0, width = containerSize.width(), height = containerSize.height();
|
||||||
renderer.setScissor(left, bottom, width, height);
|
renderer.setScissor(left, bottom, width, height);
|
||||||
renderer.enableScissorTest(true);
|
renderer.enableScissorTest(true);
|
||||||
renderer.setViewport(left, bottom, width, height);
|
renderer.setViewport(left, bottom, width, height);
|
||||||
|
@ -252,7 +252,7 @@ function render() {
|
||||||
THREEx.Transparency.update(camera1);
|
THREEx.Transparency.update(camera1);
|
||||||
|
|
||||||
// Render preview
|
// Render preview
|
||||||
previewer.render(container_size.width(), container_size.height());
|
previewer.render(containerSize.width(), containerSize.height());
|
||||||
|
|
||||||
// Finish stats
|
// Finish stats
|
||||||
stats.end();
|
stats.end();
|
||||||
|
@ -264,7 +264,7 @@ function onWindowResize() {
|
||||||
resizeElements(renderer, container, previewer, pointer, startCanvas);
|
resizeElements(renderer, container, previewer, pointer, startCanvas);
|
||||||
|
|
||||||
recommendations.forEach(function(reco) {
|
recommendations.forEach(function(reco) {
|
||||||
resetCameraAspect(reco.camera, container_size.width(), container_size.height());
|
resetCameraAspect(reco.camera, containerSize.width(), containerSize.height());
|
||||||
});
|
});
|
||||||
|
|
||||||
render();
|
render();
|
||||||
|
|
|
@ -103,7 +103,7 @@ function initThreeElements() {
|
||||||
// Initialize pointer camera
|
// Initialize pointer camera
|
||||||
camera1 = new L3D.PointerCamera(
|
camera1 = new L3D.PointerCamera(
|
||||||
50,
|
50,
|
||||||
container_size.width() / container_size.height(),
|
containerSize.width() / containerSize.height(),
|
||||||
0.01, 100000, renderer, container
|
0.01, 100000, renderer, container
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -233,7 +233,7 @@ function render() {
|
||||||
// Set current position of camera
|
// Set current position of camera
|
||||||
camera1.look();
|
camera1.look();
|
||||||
|
|
||||||
var left = 0, bottom = 0, width = container_size.width(), height = container_size.height();
|
var left = 0, bottom = 0, width = containerSize.width(), height = containerSize.height();
|
||||||
renderer.setScissor(left, bottom, width, height);
|
renderer.setScissor(left, bottom, width, height);
|
||||||
renderer.enableScissorTest(true);
|
renderer.enableScissorTest(true);
|
||||||
renderer.setViewport(left, bottom, width, height);
|
renderer.setViewport(left, bottom, width, height);
|
||||||
|
@ -249,7 +249,7 @@ function render() {
|
||||||
THREEx.Transparency.update(camera1);
|
THREEx.Transparency.update(camera1);
|
||||||
|
|
||||||
// Render preview
|
// Render preview
|
||||||
previewer.render(container_size.width(), container_size.height());
|
previewer.render(containerSize.width(), containerSize.height());
|
||||||
|
|
||||||
// Finish stats
|
// Finish stats
|
||||||
stats.end();
|
stats.end();
|
||||||
|
@ -261,7 +261,7 @@ function onWindowResize() {
|
||||||
resizeElements(renderer, container, previewer, pointer, startCanvas);
|
resizeElements(renderer, container, previewer, pointer, startCanvas);
|
||||||
|
|
||||||
recommendations.forEach(function(reco) {
|
recommendations.forEach(function(reco) {
|
||||||
resetCameraAspect(reco.camera, container_size.width(), container_size.height());
|
resetCameraAspect(reco.camera, containerSize.width(), containerSize.height());
|
||||||
});
|
});
|
||||||
|
|
||||||
render();
|
render();
|
||||||
|
|
|
@ -103,7 +103,7 @@ function initThreeElements() {
|
||||||
// Initialize pointer camera
|
// Initialize pointer camera
|
||||||
camera1 = new L3D.PointerCamera(
|
camera1 = new L3D.PointerCamera(
|
||||||
50,
|
50,
|
||||||
container_size.width() / container_size.height(),
|
containerSize.width() / containerSize.height(),
|
||||||
0.01, 100000, renderer, container
|
0.01, 100000, renderer, container
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -239,7 +239,7 @@ function render() {
|
||||||
// Set current position of camera
|
// Set current position of camera
|
||||||
camera1.look();
|
camera1.look();
|
||||||
|
|
||||||
var left = 0, bottom = 0, width = container_size.width(), height = container_size.height();
|
var left = 0, bottom = 0, width = containerSize.width(), height = containerSize.height();
|
||||||
renderer.setScissor(left, bottom, width, height);
|
renderer.setScissor(left, bottom, width, height);
|
||||||
renderer.enableScissorTest(true);
|
renderer.enableScissorTest(true);
|
||||||
renderer.setViewport(left, bottom, width, height);
|
renderer.setViewport(left, bottom, width, height);
|
||||||
|
@ -255,7 +255,7 @@ function render() {
|
||||||
THREEx.Transparency.update(camera1);
|
THREEx.Transparency.update(camera1);
|
||||||
|
|
||||||
// Render preview
|
// Render preview
|
||||||
previewer.render(container_size.width(), container_size.height());
|
previewer.render(containerSize.width(), containerSize.height());
|
||||||
|
|
||||||
// Finish stats
|
// Finish stats
|
||||||
stats.end();
|
stats.end();
|
||||||
|
@ -267,7 +267,7 @@ function onWindowResize() {
|
||||||
resizeElements(renderer, container, previewer, pointer, startCanvas);
|
resizeElements(renderer, container, previewer, pointer, startCanvas);
|
||||||
|
|
||||||
recommendations.forEach(function(reco) {
|
recommendations.forEach(function(reco) {
|
||||||
resetCameraAspect(reco.camera, container_size.width(), container_size.height());
|
resetCameraAspect(reco.camera, containerSize.width(), containerSize.height());
|
||||||
});
|
});
|
||||||
|
|
||||||
render();
|
render();
|
||||||
|
|
|
@ -92,7 +92,7 @@ function initThreeElements() {
|
||||||
// Initialize pointer camera
|
// Initialize pointer camera
|
||||||
camera1 = new L3D.PointerCamera(
|
camera1 = new L3D.PointerCamera(
|
||||||
50,
|
50,
|
||||||
container_size.width() / container_size.height(),
|
containerSize.width() / containerSize.height(),
|
||||||
0.01, 100000, renderer, container
|
0.01, 100000, renderer, container
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -189,7 +189,7 @@ function render() {
|
||||||
// Set current position of camera
|
// Set current position of camera
|
||||||
camera1.look();
|
camera1.look();
|
||||||
|
|
||||||
var left = 0, bottom = 0, width = container_size.width(), height = container_size.height();
|
var left = 0, bottom = 0, width = containerSize.width(), height = containerSize.height();
|
||||||
renderer.setScissor(left, bottom, width, height);
|
renderer.setScissor(left, bottom, width, height);
|
||||||
renderer.enableScissorTest(true);
|
renderer.enableScissorTest(true);
|
||||||
renderer.setViewport(left, bottom, width, height);
|
renderer.setViewport(left, bottom, width, height);
|
||||||
|
@ -205,7 +205,7 @@ function render() {
|
||||||
THREEx.Transparency.update(camera1);
|
THREEx.Transparency.update(camera1);
|
||||||
|
|
||||||
// Render preview
|
// Render preview
|
||||||
previewer.render(container_size.width(), container_size.height());
|
previewer.render(containerSize.width(), containerSize.height());
|
||||||
|
|
||||||
// Finish stats
|
// Finish stats
|
||||||
stats.end();
|
stats.end();
|
||||||
|
@ -217,7 +217,7 @@ function onWindowResize() {
|
||||||
resizeElements(renderer, container, previewer, Coin, pointer, startCanvas);
|
resizeElements(renderer, container, previewer, Coin, pointer, startCanvas);
|
||||||
|
|
||||||
recommendations.forEach(function(reco) {
|
recommendations.forEach(function(reco) {
|
||||||
resetCameraAspect(reco.camera, container_size.width(), container_size.height());
|
resetCameraAspect(reco.camera, containerSize.width(), containerSize.height());
|
||||||
});
|
});
|
||||||
|
|
||||||
render();
|
render();
|
||||||
|
|
|
@ -20,7 +20,7 @@ function main() {
|
||||||
initThreeElements();
|
initThreeElements();
|
||||||
|
|
||||||
var xhr = new XMLHttpRequest();
|
var xhr = new XMLHttpRequest();
|
||||||
xhr.open("GET", "/prototype/replay_info/" + params.get.id, true);
|
xhr.open("GET", "/prototype/replay-info/" + params.get.id, true);
|
||||||
|
|
||||||
xhr.onreadystatechange = function() {
|
xhr.onreadystatechange = function() {
|
||||||
if (xhr.readyState == 4 && xhr.status == 200) {
|
if (xhr.readyState == 4 && xhr.status == 200) {
|
||||||
|
@ -60,7 +60,7 @@ function init(data) {
|
||||||
container.appendChild(renderer.domElement);
|
container.appendChild(renderer.domElement);
|
||||||
|
|
||||||
// Initialize replay camera
|
// Initialize replay camera
|
||||||
camera1 = new L3D.ReplayCamera(50, container_size.width()/container_size.height(), 0.01, 100000, coins, data);
|
camera1 = new L3D.ReplayCamera(50, containerSize.width()/containerSize.height(), 0.01, 100000, coins, data);
|
||||||
recommendations = initMainScene(camera1, scene, coins, undefined, data.redCoins);
|
recommendations = initMainScene(camera1, scene, coins, undefined, data.redCoins);
|
||||||
camera1.cameras = recommendations;
|
camera1.cameras = recommendations;
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@ var TutoCamera = function() {
|
||||||
this.renderer = arguments[4];
|
this.renderer = arguments[4];
|
||||||
this.onWindowResize = arguments[6];
|
this.onWindowResize = arguments[6];
|
||||||
var scene = arguments[5];
|
var scene = arguments[5];
|
||||||
var container_size = arguments[7];
|
var containerSize = arguments[7];
|
||||||
var coins = arguments[8];
|
var coins = arguments[8];
|
||||||
|
|
||||||
if (arguments[9] === undefined)
|
if (arguments[9] === undefined)
|
||||||
|
@ -76,7 +76,7 @@ var TutoCamera = function() {
|
||||||
this.collisions = true;
|
this.collisions = true;
|
||||||
|
|
||||||
// Create tutorial
|
// Create tutorial
|
||||||
this.tutorial = new TutorialSteps(this, scene, coins, this.onWindowResize, container_size, arguments[10]);
|
this.tutorial = new TutorialSteps(this, scene, coins, this.onWindowResize, containerSize, arguments[10]);
|
||||||
|
|
||||||
this.shouldLock = true;
|
this.shouldLock = true;
|
||||||
|
|
||||||
|
@ -191,14 +191,14 @@ TutoCamera.prototype.update = function(time) {
|
||||||
};
|
};
|
||||||
|
|
||||||
TutoCamera.prototype.linearMotion = function(time) {
|
TutoCamera.prototype.linearMotion = function(time) {
|
||||||
var position_direction = L3D.Tools.diff(this.new_position, this.position);
|
var positionDirection = L3D.Tools.diff(this.newPosition, this.position);
|
||||||
var target_direction = L3D.Tools.diff(this.new_target, this.target);
|
var targetDirection = L3D.Tools.diff(this.newTarget, this.target);
|
||||||
|
|
||||||
this.position.add(L3D.Tools.mul(position_direction, 0.05 * time / 20));
|
this.position.add(L3D.Tools.mul(positionDirection, 0.05 * time / 20));
|
||||||
this.target.add(L3D.Tools.mul(target_direction, 0.05 * time / 20));
|
this.target.add(L3D.Tools.mul(targetDirection, 0.05 * time / 20));
|
||||||
|
|
||||||
if (L3D.Tools.norm2(L3D.Tools.diff(this.position, this.new_position)) < 0.01 &&
|
if (L3D.Tools.norm2(L3D.Tools.diff(this.position, this.newPosition)) < 0.01 &&
|
||||||
L3D.Tools.norm2(L3D.Tools.diff(this.target, this.new_target)) < 0.01) {
|
L3D.Tools.norm2(L3D.Tools.diff(this.target, this.newTarget)) < 0.01) {
|
||||||
this.moving = false;
|
this.moving = false;
|
||||||
this.anglesFromVectors();
|
this.anglesFromVectors();
|
||||||
}
|
}
|
||||||
|
@ -352,11 +352,11 @@ TutoCamera.prototype.move = function(recommendation, toSave) {
|
||||||
this.moving = true;
|
this.moving = true;
|
||||||
this.movingHermite = false;
|
this.movingHermite = false;
|
||||||
|
|
||||||
this.new_target = otherCamera.target.clone();
|
this.newTarget = otherCamera.target.clone();
|
||||||
this.new_position = otherCamera.position.clone();
|
this.newPosition = otherCamera.position.clone();
|
||||||
var t = [0,1];
|
var t = [0,1];
|
||||||
var f = [this.position.clone(), this.new_position];
|
var f = [this.position.clone(), this.newPosition];
|
||||||
var fp = [L3D.Tools.diff(this.target, this.position), L3D.Tools.diff(this.new_target, this.new_position)];
|
var fp = [L3D.Tools.diff(this.target, this.position), L3D.Tools.diff(this.newTarget, this.newPosition)];
|
||||||
this.hermite = new L3D.Hermite.Polynom(t,f,fp);
|
this.hermite = new L3D.Hermite.Polynom(t,f,fp);
|
||||||
this.t = 0;
|
this.t = 0;
|
||||||
|
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
var nextStep;
|
var nextStep;
|
||||||
var TutorialSteps = function(tutoCamera, scene, coins, onWindowResize, container_size, clickableObjects) {
|
var TutorialSteps = function(tutoCamera, scene, coins, onWindowResize, containerSize, clickableObjects) {
|
||||||
this.camera = tutoCamera;
|
this.camera = tutoCamera;
|
||||||
this.step = 0;
|
this.step = 0;
|
||||||
this.coinNumber = 0;
|
this.coinNumber = 0;
|
||||||
this.camera.allowed = {};
|
this.camera.allowed = {};
|
||||||
this.onWindowResize = onWindowResize;
|
this.onWindowResize = onWindowResize;
|
||||||
this.container_size = container_size;
|
this.containerSize = containerSize;
|
||||||
this.coins = coins;
|
this.coins = coins;
|
||||||
this.clickableObjects = clickableObjects;
|
this.clickableObjects = clickableObjects;
|
||||||
|
|
||||||
|
@ -193,7 +193,7 @@ TutorialSteps.prototype.nextStep = function() {
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
case 14:
|
case 14:
|
||||||
this.firstReco = L3D.createPeachRecommendations(this.container_size.width(), this.container_size.height())[0];
|
this.firstReco = L3D.createPeachRecommendations(this.containerSize.width(), this.containerSize.height())[0];
|
||||||
this.addRecommendation(this.firstReco);
|
this.addRecommendation(this.firstReco);
|
||||||
this.camera.move({
|
this.camera.move({
|
||||||
position: new THREE.Vector3(-9.157274598933608,3.6852142459329533,2.1820896816244444),
|
position: new THREE.Vector3(-9.157274598933608,3.6852142459329533,2.1820896816244444),
|
||||||
|
@ -201,7 +201,7 @@ TutorialSteps.prototype.nextStep = function() {
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
case 16:
|
case 16:
|
||||||
this.secondReco = L3D.createPeachRecommendations(this.container_size.width(), this.container_size.height(), L3D.ViewportRecommendation)[1];
|
this.secondReco = L3D.createPeachRecommendations(this.containerSize.width(), this.containerSize.height(), L3D.ViewportRecommendation)[1];
|
||||||
this.addRecommendation(this.secondReco);
|
this.addRecommendation(this.secondReco);
|
||||||
this.secondReco.raycastable = true;
|
this.secondReco.raycastable = true;
|
||||||
this.camera.move({
|
this.camera.move({
|
||||||
|
@ -217,7 +217,7 @@ TutorialSteps.prototype.nextStep = function() {
|
||||||
});
|
});
|
||||||
}, 3*60*1000);
|
}, 3*60*1000);
|
||||||
|
|
||||||
var cams = L3D.createPeachRecommendations(this.container_size.width(), this.container_size.height());
|
var cams = L3D.createPeachRecommendations(this.containerSize.width(), this.containerSize.height());
|
||||||
for (var i = 2; i < cams.length; i++) {
|
for (var i = 2; i < cams.length; i++) {
|
||||||
this.addRecommendation(cams[i]);
|
this.addRecommendation(cams[i]);
|
||||||
}
|
}
|
||||||
|
|
|
@ -92,8 +92,8 @@ function initThreeElements() {
|
||||||
// Initialize pointer camera
|
// Initialize pointer camera
|
||||||
camera1 = new TutoCamera(
|
camera1 = new TutoCamera(
|
||||||
50,
|
50,
|
||||||
container_size.width() / container_size.height(),
|
containerSize.width() / containerSize.height(),
|
||||||
0.01, 100000, renderer, scene, onWindowResize, container_size, coins, container, clickableObjects
|
0.01, 100000, renderer, scene, onWindowResize, containerSize, coins, container, clickableObjects
|
||||||
);
|
);
|
||||||
|
|
||||||
tutorial = camera1.tutorial;
|
tutorial = camera1.tutorial;
|
||||||
|
@ -186,7 +186,7 @@ function render() {
|
||||||
// Set current position of camera
|
// Set current position of camera
|
||||||
camera1.look();
|
camera1.look();
|
||||||
|
|
||||||
var left = 0, bottom = 0, width = container_size.width(), height = container_size.height();
|
var left = 0, bottom = 0, width = containerSize.width(), height = containerSize.height();
|
||||||
renderer.setScissor(left, bottom, width, height);
|
renderer.setScissor(left, bottom, width, height);
|
||||||
renderer.enableScissorTest(true);
|
renderer.enableScissorTest(true);
|
||||||
renderer.setViewport(left, bottom, width, height);
|
renderer.setViewport(left, bottom, width, height);
|
||||||
|
@ -202,7 +202,7 @@ function render() {
|
||||||
THREEx.Transparency.update(camera1);
|
THREEx.Transparency.update(camera1);
|
||||||
|
|
||||||
// Render preview
|
// Render preview
|
||||||
previewer.render(container_size.width(), container_size.height());
|
previewer.render(containerSize.width(), containerSize.height());
|
||||||
|
|
||||||
// Finish stats
|
// Finish stats
|
||||||
stats.end();
|
stats.end();
|
||||||
|
@ -214,7 +214,7 @@ function onWindowResize() {
|
||||||
resizeElements(renderer, container, previewer, Coin, pointer, startCanvas);
|
resizeElements(renderer, container, previewer, Coin, pointer, startCanvas);
|
||||||
|
|
||||||
recommendations.forEach(function(reco) {
|
recommendations.forEach(function(reco) {
|
||||||
resetCameraAspect(reco.camera, container_size.width(), container_size.height());
|
resetCameraAspect(reco.camera, containerSize.width(), containerSize.height());
|
||||||
});
|
});
|
||||||
|
|
||||||
render();
|
render();
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
var mesh_number = 25;
|
var meshNumber = 25;
|
||||||
var renderer, scene, controls, cube, container, plane, mouse= {x:0, y:0}, sphere, sphereLoader;
|
var renderer, scene, controls, cube, container, plane, mouse= {x:0, y:0}, sphere, sphereLoader;
|
||||||
var bigmesh;
|
var bigmesh;
|
||||||
var raycaster;
|
var raycaster;
|
||||||
var objects = [];
|
var objects = [];
|
||||||
var spheres = new Array(mesh_number);
|
var spheres = new Array(meshNumber);
|
||||||
var visible = 0;
|
var visible = 0;
|
||||||
var previousTime;
|
var previousTime;
|
||||||
var loader;
|
var loader;
|
||||||
|
|
||||||
var container_size = {width: 1067, height: 600};
|
var containerSize = {width: 1067, height: 600};
|
||||||
|
|
||||||
init();
|
init();
|
||||||
animate();
|
animate();
|
||||||
|
@ -16,10 +16,10 @@ animate();
|
||||||
function init() {
|
function init() {
|
||||||
// on initialise le moteur de rendu
|
// on initialise le moteur de rendu
|
||||||
container = document.getElementById('container');
|
container = document.getElementById('container');
|
||||||
container.style.height = container_size.height + 'px';
|
container.style.height = containerSize.height + 'px';
|
||||||
container.style.width = container_size.width + 'px';
|
container.style.width = containerSize.width + 'px';
|
||||||
renderer = new THREE.WebGLRenderer({alpha:"true"});
|
renderer = new THREE.WebGLRenderer({alpha:"true"});
|
||||||
renderer.setSize(container_size.width, container_size.height);
|
renderer.setSize(containerSize.width, containerSize.height);
|
||||||
renderer.shadowMapEnabled = true;
|
renderer.shadowMapEnabled = true;
|
||||||
// renderer.setClearColor(0x000000);
|
// renderer.setClearColor(0x000000);
|
||||||
document.getElementById('container').appendChild(renderer.domElement);
|
document.getElementById('container').appendChild(renderer.domElement);
|
||||||
|
@ -29,16 +29,16 @@ function init() {
|
||||||
raycaster = new THREE.Raycaster();
|
raycaster = new THREE.Raycaster();
|
||||||
|
|
||||||
// init light
|
// init light
|
||||||
var directional_light = new THREE.DirectionalLight(0x999999);
|
var directionalLight = new THREE.DirectionalLight(0x999999);
|
||||||
directional_light.position.set(1, 0.5, 1).normalize();
|
directionalLight.position.set(1, 0.5, 1).normalize();
|
||||||
directional_light.castShadow = true;
|
directionalLight.castShadow = true;
|
||||||
scene.add(directional_light);
|
scene.add(directionalLight);
|
||||||
|
|
||||||
var ambient_light = new THREE.AmbientLight(0x333333);
|
var ambientLight = new THREE.AmbientLight(0x333333);
|
||||||
scene.add(ambient_light);
|
scene.add(ambientLight);
|
||||||
|
|
||||||
// on initialise la camera que l’on place ensuite sur la scène
|
// on initialise la camera que l’on place ensuite sur la scène
|
||||||
camera = new L3D.Camera(50, container_size.width / container_size.height, 1, 100000);
|
camera = new L3D.Camera(50, containerSize.width / containerSize.height, 1, 100000);
|
||||||
scene.add(camera);
|
scene.add(camera);
|
||||||
|
|
||||||
window.addEventListener('resize', onWindowResize, false);
|
window.addEventListener('resize', onWindowResize, false);
|
||||||
|
|
|
@ -294,14 +294,14 @@ L3D.PointerCamera.prototype.update = function(time) {
|
||||||
* @param {Number} time number of milliseconds between the previous and the next frame
|
* @param {Number} time number of milliseconds between the previous and the next frame
|
||||||
*/
|
*/
|
||||||
L3D.PointerCamera.prototype.linearMotion = function(time) {
|
L3D.PointerCamera.prototype.linearMotion = function(time) {
|
||||||
var position_direction = L3D.Tools.diff(this.new_position, this.position);
|
var positionDirection = L3D.Tools.diff(this.newPosition, this.position);
|
||||||
var target_direction = L3D.Tools.diff(this.new_target, this.target);
|
var targetDirection = L3D.Tools.diff(this.newTarget, this.target);
|
||||||
|
|
||||||
this.position.add(L3D.Tools.mul(position_direction, 0.05 * time / 20));
|
this.position.add(L3D.Tools.mul(positionDirection, 0.05 * time / 20));
|
||||||
this.target.add(L3D.Tools.mul(target_direction, 0.05 * time / 20));
|
this.target.add(L3D.Tools.mul(targetDirection, 0.05 * time / 20));
|
||||||
|
|
||||||
if (L3D.Tools.norm2(L3D.Tools.diff(this.position, this.new_position)) < 0.01 &&
|
if (L3D.Tools.norm2(L3D.Tools.diff(this.position, this.newPosition)) < 0.01 &&
|
||||||
L3D.Tools.norm2(L3D.Tools.diff(this.target, this.new_target)) < 0.01) {
|
L3D.Tools.norm2(L3D.Tools.diff(this.target, this.newTarget)) < 0.01) {
|
||||||
this.moving = false;
|
this.moving = false;
|
||||||
this.anglesFromVectors();
|
this.anglesFromVectors();
|
||||||
}
|
}
|
||||||
|
@ -461,11 +461,11 @@ L3D.PointerCamera.prototype.move = function(recommendation, toSave) {
|
||||||
this.movingHermite = false;
|
this.movingHermite = false;
|
||||||
this.moving = true;
|
this.moving = true;
|
||||||
|
|
||||||
this.new_target = otherCamera.target.clone();
|
this.newTarget = otherCamera.target.clone();
|
||||||
this.new_position = otherCamera.position.clone();
|
this.newPosition = otherCamera.position.clone();
|
||||||
var t = [0,1];
|
var t = [0,1];
|
||||||
var f = [this.position.clone(), this.new_position];
|
var f = [this.position.clone(), this.newPosition];
|
||||||
var fp = [L3D.Tools.diff(this.target, this.position), L3D.Tools.diff(this.new_target, this.new_position)];
|
var fp = [L3D.Tools.diff(this.target, this.position), L3D.Tools.diff(this.newTarget, this.newPosition)];
|
||||||
this.hermite = new L3D.Hermite.Polynom(t,f,fp);
|
this.hermite = new L3D.Hermite.Polynom(t,f,fp);
|
||||||
this.t = 0;
|
this.t = 0;
|
||||||
|
|
||||||
|
|
|
@ -9,8 +9,8 @@ L3D.ReplayCamera = function() {
|
||||||
|
|
||||||
this.position = new THREE.Vector3();
|
this.position = new THREE.Vector3();
|
||||||
this.target = new THREE.Vector3();
|
this.target = new THREE.Vector3();
|
||||||
this.new_position = new THREE.Vector3();
|
this.newPosition = new THREE.Vector3();
|
||||||
this.new_target = new THREE.Vector3();
|
this.newTarget = new THREE.Vector3();
|
||||||
|
|
||||||
this.data = arguments[5];
|
this.data = arguments[5];
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ L3D.ReplayCamera.prototype.update = function(time) {
|
||||||
};
|
};
|
||||||
|
|
||||||
L3D.ReplayCamera.prototype.linearMotion = function(time) {
|
L3D.ReplayCamera.prototype.linearMotion = function(time) {
|
||||||
var tmp = L3D.Tools.sum(L3D.Tools.mul(this.old_position, 1-this.t), L3D.Tools.mul(this.new_position, this.t));
|
var tmp = L3D.Tools.sum(L3D.Tools.mul(this.oldPosition, 1-this.t), L3D.Tools.mul(this.newPosition, this.t));
|
||||||
this.position.copy(tmp);
|
this.position.copy(tmp);
|
||||||
this.t += 0.1 * time / 20;
|
this.t += 0.1 * time / 20;
|
||||||
|
|
||||||
|
@ -65,9 +65,9 @@ L3D.ReplayCamera.prototype.linearMotion = function(time) {
|
||||||
|
|
||||||
L3D.ReplayCamera.prototype.cameraMotion = function(time) {
|
L3D.ReplayCamera.prototype.cameraMotion = function(time) {
|
||||||
|
|
||||||
var tmp = L3D.Tools.sum(L3D.Tools.mul(this.old_position, 1-this.t), L3D.Tools.mul(this.new_position, this.t));
|
var tmp = L3D.Tools.sum(L3D.Tools.mul(this.oldPosition, 1-this.t), L3D.Tools.mul(this.newPosition, this.t));
|
||||||
this.position.copy(tmp);
|
this.position.copy(tmp);
|
||||||
this.target = L3D.Tools.sum(L3D.Tools.mul(this.old_target, 1-this.t), L3D.Tools.mul(this.new_target, this.t));
|
this.target = L3D.Tools.sum(L3D.Tools.mul(this.oldTarget, 1-this.t), L3D.Tools.mul(this.newTarget, this.t));
|
||||||
this.t += 1 / (((new Date(this.path[this.counter].time)).getTime() - (new Date(this.path[this.counter-1].time)).getTime()) / 20);
|
this.t += 1 / (((new Date(this.path[this.counter].time)).getTime() - (new Date(this.path[this.counter-1].time)).getTime()) / 20);
|
||||||
|
|
||||||
if (this.t > 1) {
|
if (this.t > 1) {
|
||||||
|
@ -171,10 +171,10 @@ L3D.ReplayCamera.prototype.move = function(recommendation) {
|
||||||
var otherCamera = recommendation.camera || recommendation;
|
var otherCamera = recommendation.camera || recommendation;
|
||||||
|
|
||||||
this.moving = true;
|
this.moving = true;
|
||||||
this.old_target = this.target.clone();
|
this.oldTarget = this.target.clone();
|
||||||
this.old_position = this.position.clone();
|
this.oldPosition = this.position.clone();
|
||||||
this.new_target = new THREE.Vector3(otherCamera.target.x, otherCamera.target.y, otherCamera.target.z);
|
this.newTarget = new THREE.Vector3(otherCamera.target.x, otherCamera.target.y, otherCamera.target.z);
|
||||||
this.new_position = new THREE.Vector3(otherCamera.position.x, otherCamera.position.y, otherCamera.position.z);
|
this.newPosition = new THREE.Vector3(otherCamera.position.x, otherCamera.position.y, otherCamera.position.z);
|
||||||
this.t = 0;
|
this.t = 0;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -132,11 +132,11 @@ L3D.MousePointer.prototype.render = function(style, force) {
|
||||||
|
|
||||||
this.domElement.width = this.domElement.width;
|
this.domElement.width = this.domElement.width;
|
||||||
|
|
||||||
var i = container_size.width() / 2;
|
var i = containerSize.width() / 2;
|
||||||
var imin = i - this.size;
|
var imin = i - this.size;
|
||||||
var imax = i + this.size;
|
var imax = i + this.size;
|
||||||
|
|
||||||
var j = container_size.height() / 2;
|
var j = containerSize.height() / 2;
|
||||||
var jmin = j - this.size;
|
var jmin = j - this.size;
|
||||||
var jmax = j + this.size;
|
var jmax = j + this.size;
|
||||||
|
|
||||||
|
|
|
@ -61,15 +61,15 @@ L3D.Previewer = function(renderer, scene) {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Renders the preview
|
* Renders the preview
|
||||||
* @param {Number} container_width width of the container
|
* @param {Number} containerWidth width of the container
|
||||||
* @param {Number} container_height height of the container
|
* @param {Number} containerHeight height of the container
|
||||||
*/
|
*/
|
||||||
L3D.Previewer.prototype.render = function(container_width, container_height) {
|
L3D.Previewer.prototype.render = function(containerWidth, containerHeight) {
|
||||||
var width, height, left, bottom;
|
var width, height, left, bottom;
|
||||||
|
|
||||||
if (this.camera) {
|
if (this.camera) {
|
||||||
width = Math.floor(container_width / 5);
|
width = Math.floor(containerWidth / 5);
|
||||||
height = Math.floor(container_height / 5);
|
height = Math.floor(containerHeight / 5);
|
||||||
if (!this.fixed) {
|
if (!this.fixed) {
|
||||||
left = Math.floor(this.mouse.x - width/2);
|
left = Math.floor(this.mouse.x - width/2);
|
||||||
bottom = Math.floor(this.renderer.domElement.height - this.mouse.y + height/5);
|
bottom = Math.floor(this.renderer.domElement.height - this.mouse.y + height/5);
|
||||||
|
@ -88,22 +88,22 @@ L3D.Previewer.prototype.render = function(container_width, container_height) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Draw border
|
// Draw border
|
||||||
var can_bottom = container_height - bottom - height ;
|
var canBottom = containerHeight - bottom - height ;
|
||||||
this.ctx.strokeStyle = "#ffffff";
|
this.ctx.strokeStyle = "#ffffff";
|
||||||
this.ctx.beginPath();
|
this.ctx.beginPath();
|
||||||
this.ctx.moveTo(left-1, can_bottom);
|
this.ctx.moveTo(left-1, canBottom);
|
||||||
this.ctx.lineTo(left-1, can_bottom + height);
|
this.ctx.lineTo(left-1, canBottom + height);
|
||||||
this.ctx.lineTo(left + width-1, can_bottom + height);
|
this.ctx.lineTo(left + width-1, canBottom + height);
|
||||||
this.ctx.lineTo(left + width-1, can_bottom);
|
this.ctx.lineTo(left + width-1, canBottom);
|
||||||
this.ctx.closePath();
|
this.ctx.closePath();
|
||||||
this.ctx.stroke();
|
this.ctx.stroke();
|
||||||
|
|
||||||
this.ctx.strokeStyle = "#000000";
|
this.ctx.strokeStyle = "#000000";
|
||||||
this.ctx.beginPath();
|
this.ctx.beginPath();
|
||||||
this.ctx.moveTo(left, can_bottom + 1);
|
this.ctx.moveTo(left, canBottom + 1);
|
||||||
this.ctx.lineTo(left, can_bottom + height - 1);
|
this.ctx.lineTo(left, canBottom + height - 1);
|
||||||
this.ctx.lineTo(left + width - 2 , can_bottom + height-1);
|
this.ctx.lineTo(left + width - 2 , canBottom + height-1);
|
||||||
this.ctx.lineTo(left + width - 2, can_bottom+1);
|
this.ctx.lineTo(left + width - 2, canBottom+1);
|
||||||
this.ctx.closePath();
|
this.ctx.closePath();
|
||||||
this.ctx.stroke();
|
this.ctx.stroke();
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@ L3D.StartCanvas.prototype.render = function(force) {
|
||||||
this.ctx.font = '30px Verdana';
|
this.ctx.font = '30px Verdana';
|
||||||
this.ctx.globalAlpha = 1;
|
this.ctx.globalAlpha = 1;
|
||||||
this.ctx.fillStyle = 'black';
|
this.ctx.fillStyle = 'black';
|
||||||
this.ctx.fillText('Click here to lock the pointer !', container_size.width()/3.25, container_size.height()/2-10);
|
this.ctx.fillText('Click here to lock the pointer !', containerSize.width()/3.25, containerSize.height()/2-10);
|
||||||
|
|
||||||
|
|
||||||
this.shown = true;
|
this.shown = true;
|
||||||
|
|
|
@ -2,9 +2,9 @@ var container = document.getElementById('content');
|
||||||
|
|
||||||
function print(text) {
|
function print(text) {
|
||||||
var content = document.createTextNode(text);
|
var content = document.createTextNode(text);
|
||||||
var new_line = document.createElement('br');
|
var newLine = document.createElement('br');
|
||||||
container.appendChild(content);
|
container.appendChild(content);
|
||||||
container.appendChild(new_line);
|
container.appendChild(newLine);
|
||||||
}
|
}
|
||||||
|
|
||||||
function toString(variable) {
|
function toString(variable) {
|
||||||
|
|
|
@ -190,26 +190,26 @@ L3D.BaseRecommendation.prototype.update = function(mainCamera) {
|
||||||
// Compute distance between center of camera and position
|
// Compute distance between center of camera and position
|
||||||
dist = L3D.Tools.norm2(L3D.Tools.diff(mainCamera.position, this.center));
|
dist = L3D.Tools.norm2(L3D.Tools.diff(mainCamera.position, this.center));
|
||||||
|
|
||||||
var low_bound = 1;
|
var lowBound = 1;
|
||||||
var high_bound = 5;
|
var highBound = 5;
|
||||||
var new_value;
|
var newValue;
|
||||||
|
|
||||||
if (dist < low_bound) {
|
if (dist < lowBound) {
|
||||||
new_value = 0;
|
newValue = 0;
|
||||||
} else if (dist > high_bound) {
|
} else if (dist > highBound) {
|
||||||
new_value = 1;
|
newValue = 1;
|
||||||
} else {
|
} else {
|
||||||
new_value = (dist - low_bound)/(high_bound - low_bound);
|
newValue = (dist - lowBound)/(highBound - lowBound);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Update opacity
|
// Update opacity
|
||||||
var self = this;
|
var self = this;
|
||||||
this.object3D.traverse(function(elt) {
|
this.object3D.traverse(function(elt) {
|
||||||
if (elt instanceof THREE.Mesh) {
|
if (elt instanceof THREE.Mesh) {
|
||||||
elt.material.transparent = new_value < 0.9;
|
elt.material.transparent = newValue < 0.9;
|
||||||
elt.material.opacity = new_value;
|
elt.material.opacity = newValue;
|
||||||
|
|
||||||
if (new_value < 0.1)
|
if (newValue < 0.1)
|
||||||
self.raycastable = elt.raycastable = elt.material.transparent = elt.visible = false;
|
self.raycastable = elt.raycastable = elt.material.transparent = elt.visible = false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -42,8 +42,8 @@ L3D.ViewportRecommendation = function(arg1, arg2, arg3, arg4, position, target)
|
||||||
(function(self, direction, left, other) {
|
(function(self, direction, left, other) {
|
||||||
var material = new THREE.LineBasicMaterial({ color: '0x000000'});
|
var material = new THREE.LineBasicMaterial({ color: '0x000000'});
|
||||||
var geometry = new THREE.Geometry();
|
var geometry = new THREE.Geometry();
|
||||||
var tmp_direction = L3D.Tools.mul(direction, -2);
|
var tmpDirection = L3D.Tools.mul(direction, -2);
|
||||||
var target = L3D.Tools.sum(self.camera.position, tmp_direction);
|
var target = L3D.Tools.sum(self.camera.position, tmpDirection);
|
||||||
// geometry.vertices.push(self.camera.position, target);
|
// geometry.vertices.push(self.camera.position, target);
|
||||||
geometry.vertices.push(
|
geometry.vertices.push(
|
||||||
L3D.Tools.sum(L3D.Tools.sum(self.camera.position, left), other),
|
L3D.Tools.sum(L3D.Tools.sum(self.camera.position, left), other),
|
||||||
|
@ -53,16 +53,16 @@ L3D.ViewportRecommendation = function(arg1, arg2, arg3, arg4, position, target)
|
||||||
L3D.Tools.sum(L3D.Tools.sum(self.camera.position, left), other),
|
L3D.Tools.sum(L3D.Tools.sum(self.camera.position, left), other),
|
||||||
L3D.Tools.sum(L3D.Tools.diff(self.camera.position, other), left),
|
L3D.Tools.sum(L3D.Tools.diff(self.camera.position, other), left),
|
||||||
|
|
||||||
L3D.Tools.sum(self.camera.position, tmp_direction),
|
L3D.Tools.sum(self.camera.position, tmpDirection),
|
||||||
L3D.Tools.sum(L3D.Tools.sum(self.camera.position, left), other),
|
L3D.Tools.sum(L3D.Tools.sum(self.camera.position, left), other),
|
||||||
|
|
||||||
L3D.Tools.sum(self.camera.position, tmp_direction),
|
L3D.Tools.sum(self.camera.position, tmpDirection),
|
||||||
L3D.Tools.diff(L3D.Tools.sum(self.camera.position, other),left),
|
L3D.Tools.diff(L3D.Tools.sum(self.camera.position, other),left),
|
||||||
|
|
||||||
L3D.Tools.sum(self.camera.position, tmp_direction),
|
L3D.Tools.sum(self.camera.position, tmpDirection),
|
||||||
L3D.Tools.diff(L3D.Tools.diff(self.camera.position, left),other),
|
L3D.Tools.diff(L3D.Tools.diff(self.camera.position, left),other),
|
||||||
|
|
||||||
L3D.Tools.sum(self.camera.position, tmp_direction),
|
L3D.Tools.sum(self.camera.position, tmpDirection),
|
||||||
L3D.Tools.sum(L3D.Tools.diff(self.camera.position, other), left)
|
L3D.Tools.sum(L3D.Tools.diff(self.camera.position, other), left)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -73,14 +73,14 @@ L3D.ViewportRecommendation = function(arg1, arg2, arg3, arg4, position, target)
|
||||||
|
|
||||||
var material = new THREE.MeshBasicMaterial();
|
var material = new THREE.MeshBasicMaterial();
|
||||||
var geometry = new THREE.Geometry();
|
var geometry = new THREE.Geometry();
|
||||||
var tmp_direction = L3D.Tools.mul(direction, -2);
|
var tmpDirection = L3D.Tools.mul(direction, -2);
|
||||||
|
|
||||||
geometry.vertices = [
|
geometry.vertices = [
|
||||||
L3D.Tools.sum(L3D.Tools.sum(self.camera.position, left), other),
|
L3D.Tools.sum(L3D.Tools.sum(self.camera.position, left), other),
|
||||||
L3D.Tools.diff(L3D.Tools.sum(self.camera.position, other),left),
|
L3D.Tools.diff(L3D.Tools.sum(self.camera.position, other),left),
|
||||||
L3D.Tools.diff(L3D.Tools.diff(self.camera.position, left),other),
|
L3D.Tools.diff(L3D.Tools.diff(self.camera.position, left),other),
|
||||||
L3D.Tools.sum(L3D.Tools.diff(self.camera.position, other), left),
|
L3D.Tools.sum(L3D.Tools.diff(self.camera.position, other), left),
|
||||||
L3D.Tools.sum(self.camera.position, tmp_direction)
|
L3D.Tools.sum(self.camera.position, tmpDirection)
|
||||||
];
|
];
|
||||||
|
|
||||||
geometry.faces = [
|
geometry.faces = [
|
||||||
|
@ -145,22 +145,22 @@ L3D.ViewportRecommendation.prototype.update = function(position) {
|
||||||
// Compute distance between center of camera and position
|
// Compute distance between center of camera and position
|
||||||
dist = L3D.Tools.norm2(L3D.Tools.diff(position.position, this.camera.position));
|
dist = L3D.Tools.norm2(L3D.Tools.diff(position.position, this.camera.position));
|
||||||
|
|
||||||
var low_bound = 0.5;
|
var lowBound = 0.5;
|
||||||
var high_bound = 5;
|
var highBound = 5;
|
||||||
var new_value;
|
var newValue;
|
||||||
var max_value = 0.5;
|
var maxValue = 0.5;
|
||||||
|
|
||||||
if (dist < low_bound)
|
if (dist < lowBound)
|
||||||
new_value = 0;
|
newValue = 0;
|
||||||
else if (dist > high_bound)
|
else if (dist > highBound)
|
||||||
new_value = max_value;
|
newValue = maxValue;
|
||||||
else
|
else
|
||||||
new_value = max_value * (dist - low_bound)/(high_bound - low_bound);
|
newValue = maxValue * (dist - lowBound)/(highBound - lowBound);
|
||||||
|
|
||||||
this.mesh.material.transparent = new_value < 0.9;
|
this.mesh.material.transparent = newValue < 0.9;
|
||||||
this.mesh.material.opacity = new_value;
|
this.mesh.material.opacity = newValue;
|
||||||
|
|
||||||
this.raycastable = this.line.visible = this.mesh.material.transparent = this.mesh.visible = new_value > 0.1;
|
this.raycastable = this.line.visible = this.mesh.material.transparent = this.mesh.visible = newValue > 0.1;
|
||||||
};
|
};
|
||||||
|
|
||||||
L3D.ViewportRecommendation.prototype.setSize = function(size) {
|
L3D.ViewportRecommendation.prototype.setSize = function(size) {
|
||||||
|
@ -187,8 +187,8 @@ L3D.ViewportRecommendation.prototype.setSize = function(size) {
|
||||||
|
|
||||||
(function(self, direction, left, other, size) {
|
(function(self, direction, left, other, size) {
|
||||||
|
|
||||||
var tmp_direction = L3D.Tools.mul(direction, -2 * size);
|
var tmpDirection = L3D.Tools.mul(direction, -2 * size);
|
||||||
var target = L3D.Tools.sum(self.camera.position, tmp_direction);
|
var target = L3D.Tools.sum(self.camera.position, tmpDirection);
|
||||||
|
|
||||||
var vertices = [
|
var vertices = [
|
||||||
L3D.Tools.sum(L3D.Tools.sum(self.camera.position, left), other),
|
L3D.Tools.sum(L3D.Tools.sum(self.camera.position, left), other),
|
||||||
|
@ -198,16 +198,16 @@ L3D.ViewportRecommendation.prototype.setSize = function(size) {
|
||||||
L3D.Tools.sum(L3D.Tools.sum(self.camera.position, left), other),
|
L3D.Tools.sum(L3D.Tools.sum(self.camera.position, left), other),
|
||||||
L3D.Tools.sum(L3D.Tools.diff(self.camera.position, other), left),
|
L3D.Tools.sum(L3D.Tools.diff(self.camera.position, other), left),
|
||||||
|
|
||||||
L3D.Tools.sum(self.camera.position, tmp_direction),
|
L3D.Tools.sum(self.camera.position, tmpDirection),
|
||||||
L3D.Tools.sum(L3D.Tools.sum(self.camera.position, left), other),
|
L3D.Tools.sum(L3D.Tools.sum(self.camera.position, left), other),
|
||||||
|
|
||||||
L3D.Tools.sum(self.camera.position, tmp_direction),
|
L3D.Tools.sum(self.camera.position, tmpDirection),
|
||||||
L3D.Tools.diff(L3D.Tools.sum(self.camera.position, other),left),
|
L3D.Tools.diff(L3D.Tools.sum(self.camera.position, other),left),
|
||||||
|
|
||||||
L3D.Tools.sum(self.camera.position, tmp_direction),
|
L3D.Tools.sum(self.camera.position, tmpDirection),
|
||||||
L3D.Tools.diff(L3D.Tools.diff(self.camera.position, left),other),
|
L3D.Tools.diff(L3D.Tools.diff(self.camera.position, left),other),
|
||||||
|
|
||||||
L3D.Tools.sum(self.camera.position, tmp_direction),
|
L3D.Tools.sum(self.camera.position, tmpDirection),
|
||||||
L3D.Tools.sum(L3D.Tools.diff(self.camera.position, other), left)
|
L3D.Tools.sum(L3D.Tools.diff(self.camera.position, other), left)
|
||||||
];
|
];
|
||||||
|
|
||||||
|
@ -218,14 +218,14 @@ L3D.ViewportRecommendation.prototype.setSize = function(size) {
|
||||||
|
|
||||||
(function(self, direction, left, other) {
|
(function(self, direction, left, other) {
|
||||||
|
|
||||||
var tmp_direction = L3D.Tools.mul(direction, -2 * size);
|
var tmpDirection = L3D.Tools.mul(direction, -2 * size);
|
||||||
|
|
||||||
self.collidingObject.geometry.vertices = [
|
self.collidingObject.geometry.vertices = [
|
||||||
L3D.Tools.sum(L3D.Tools.sum(self.camera.position, left), other),
|
L3D.Tools.sum(L3D.Tools.sum(self.camera.position, left), other),
|
||||||
L3D.Tools.diff(L3D.Tools.sum(self.camera.position, other),left),
|
L3D.Tools.diff(L3D.Tools.sum(self.camera.position, other),left),
|
||||||
L3D.Tools.diff(L3D.Tools.diff(self.camera.position, left),other),
|
L3D.Tools.diff(L3D.Tools.diff(self.camera.position, left),other),
|
||||||
L3D.Tools.sum(L3D.Tools.diff(self.camera.position, other), left),
|
L3D.Tools.sum(L3D.Tools.diff(self.camera.position, other), left),
|
||||||
L3D.Tools.sum(self.camera.position, tmp_direction)
|
L3D.Tools.sum(self.camera.position, tmpDirection)
|
||||||
];
|
];
|
||||||
|
|
||||||
})(this, direction, left, other, size);
|
})(this, direction, left, other, size);
|
||||||
|
|
|
@ -8,13 +8,13 @@ L3D.LogFunction = function(a,b) {
|
||||||
};
|
};
|
||||||
|
|
||||||
L3D.addLight = function(scene) {
|
L3D.addLight = function(scene) {
|
||||||
var directional_light = new THREE.DirectionalLight(0xdddddd);
|
var directionalLight = new THREE.DirectionalLight(0xdddddd);
|
||||||
directional_light.position.set(1, 2.5, 1).normalize();
|
directionalLight.position.set(1, 2.5, 1).normalize();
|
||||||
directional_light.castShadow = false;
|
directionalLight.castShadow = false;
|
||||||
scene.add(directional_light);
|
scene.add(directionalLight);
|
||||||
|
|
||||||
var ambient_light = new THREE.AmbientLight(0x555555);
|
var ambientLight = new THREE.AmbientLight(0x555555);
|
||||||
scene.add(ambient_light);
|
scene.add(ambientLight);
|
||||||
};
|
};
|
||||||
|
|
||||||
L3D.initPeachCastle = function(scene, collidableObjects, recommendation, clickable) {
|
L3D.initPeachCastle = function(scene, collidableObjects, recommendation, clickable) {
|
||||||
|
@ -52,7 +52,7 @@ L3D.resetPeachElements = function() {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
L3D.initPeach = function(camera, scene, coins, clickable, coin_ids) {
|
L3D.initPeach = function(camera, scene, coins, clickable, coinIds) {
|
||||||
L3D.addLight(scene);
|
L3D.addLight(scene);
|
||||||
|
|
||||||
var collidableObjects = [];
|
var collidableObjects = [];
|
||||||
|
@ -67,7 +67,7 @@ L3D.initPeach = function(camera, scene, coins, clickable, coin_ids) {
|
||||||
|
|
||||||
scene.add(camera);
|
scene.add(camera);
|
||||||
|
|
||||||
var tmp = L3D.generateCoins(L3D.createPeachCoins(), coin_ids);
|
var tmp = L3D.generateCoins(L3D.createPeachCoins(), coinIds);
|
||||||
|
|
||||||
for (var i in tmp) {
|
for (var i in tmp) {
|
||||||
coins.push(tmp[i]);
|
coins.push(tmp[i]);
|
||||||
|
@ -195,12 +195,12 @@ L3D.resetBobombElements = function() {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
L3D.generateCoins = function(totalCoins, coin_ids) {
|
L3D.generateCoins = function(totalCoins, coinIds) {
|
||||||
|
|
||||||
var i = 0;
|
var i = 0;
|
||||||
var tmp = [];
|
var tmp = [];
|
||||||
|
|
||||||
if (coin_ids === undefined) {
|
if (coinIds === undefined) {
|
||||||
|
|
||||||
tmp = [];
|
tmp = [];
|
||||||
|
|
||||||
|
@ -215,17 +215,17 @@ L3D.generateCoins = function(totalCoins, coin_ids) {
|
||||||
totalCoins.push(tmp[coinsId[i]]);
|
totalCoins.push(tmp[coinsId[i]]);
|
||||||
}
|
}
|
||||||
|
|
||||||
} else if (coin_ids === null) {
|
} else if (coinIds === null) {
|
||||||
|
|
||||||
return [];
|
return [];
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
for (i = 0; i < coin_ids.length; i++) {
|
for (i = 0; i < coinIds.length; i++) {
|
||||||
|
|
||||||
for (var j = 0; j < totalCoins.length; j++) {
|
for (var j = 0; j < totalCoins.length; j++) {
|
||||||
|
|
||||||
if (coin_ids[i] === totalCoins[j].id) {
|
if (coinIds[i] === totalCoins[j].id) {
|
||||||
|
|
||||||
// Swap i and j
|
// Swap i and j
|
||||||
tmp = totalCoins[i];
|
tmp = totalCoins[i];
|
||||||
|
@ -241,7 +241,7 @@ L3D.generateCoins = function(totalCoins, coin_ids) {
|
||||||
var indices = [];
|
var indices = [];
|
||||||
var coins = [];
|
var coins = [];
|
||||||
|
|
||||||
var bound = (coin_ids instanceof Array && coin_ids.length === 0) ? totalCoins.length : 8;
|
var bound = (coinIds instanceof Array && coinIds.length === 0) ? totalCoins.length : 8;
|
||||||
|
|
||||||
for (i = 0; i < bound; i++) {
|
for (i = 0; i < bound; i++) {
|
||||||
coins.push(totalCoins[i].coin);
|
coins.push(totalCoins[i].coin);
|
||||||
|
@ -317,7 +317,7 @@ L3D.createBobombRecommendations = function(width, height) {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
L3D.initBobomb = function(camera, scene, coins, clickable, coin_ids) {
|
L3D.initBobomb = function(camera, scene, coins, clickable, coinIds) {
|
||||||
L3D.addLight(scene);
|
L3D.addLight(scene);
|
||||||
|
|
||||||
var collidableObjects = [];
|
var collidableObjects = [];
|
||||||
|
@ -333,13 +333,13 @@ L3D.initBobomb = function(camera, scene, coins, clickable, coin_ids) {
|
||||||
scene.add(camera);
|
scene.add(camera);
|
||||||
|
|
||||||
Coin.init();
|
Coin.init();
|
||||||
var tmp = L3D.generateCoins(L3D.createBobombCoins(), coin_ids);
|
var tmp = L3D.generateCoins(L3D.createBobombCoins(), coinIds);
|
||||||
|
|
||||||
for (var i in tmp) {
|
for (var i in tmp) {
|
||||||
coins.push(tmp[i]);
|
coins.push(tmp[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
var recommendations = L3D.createBobombRecommendations(container_size.width(), container_size.height());
|
var recommendations = L3D.createBobombRecommendations(containerSize.width(), containerSize.height());
|
||||||
|
|
||||||
recommendations.forEach(function(reco) {reco.addToScene(scene);});
|
recommendations.forEach(function(reco) {reco.addToScene(scene);});
|
||||||
|
|
||||||
|
@ -473,7 +473,7 @@ L3D.resetWhompElements = function() {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
L3D.initWhomp = function(recommendation, scene, coins, clickable, coin_ids) {
|
L3D.initWhomp = function(recommendation, scene, coins, clickable, coinIds) {
|
||||||
L3D.addLight(scene);
|
L3D.addLight(scene);
|
||||||
|
|
||||||
var collidableObjects = [];
|
var collidableObjects = [];
|
||||||
|
@ -489,13 +489,13 @@ L3D.initWhomp = function(recommendation, scene, coins, clickable, coin_ids) {
|
||||||
scene.add(recommendation);
|
scene.add(recommendation);
|
||||||
|
|
||||||
Coin.init(0.002);
|
Coin.init(0.002);
|
||||||
var tmp = L3D.generateCoins(L3D.createWhompCoins(), coin_ids);
|
var tmp = L3D.generateCoins(L3D.createWhompCoins(), coinIds);
|
||||||
|
|
||||||
for (var i in tmp) {
|
for (var i in tmp) {
|
||||||
coins.push(tmp[i]);
|
coins.push(tmp[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
var recommendations = L3D.createWhompRecommendations(container_size.width(), container_size.height());
|
var recommendations = L3D.createWhompRecommendations(containerSize.width(), containerSize.height());
|
||||||
|
|
||||||
recommendations.forEach(function(reco) {reco.addToScene(scene);});
|
recommendations.forEach(function(reco) {reco.addToScene(scene);});
|
||||||
|
|
||||||
|
@ -610,7 +610,7 @@ L3D.resetMountainElements = function() {
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
L3D.initMountain = function(recommendation, scene, coins, clickable, coin_ids) {
|
L3D.initMountain = function(recommendation, scene, coins, clickable, coinIds) {
|
||||||
L3D.addLight(scene);
|
L3D.addLight(scene);
|
||||||
|
|
||||||
var collidableObjects = [];
|
var collidableObjects = [];
|
||||||
|
@ -626,13 +626,13 @@ L3D.initMountain = function(recommendation, scene, coins, clickable, coin_ids) {
|
||||||
scene.add(recommendation);
|
scene.add(recommendation);
|
||||||
|
|
||||||
Coin.init();
|
Coin.init();
|
||||||
var tmp = L3D.generateCoins(L3D.createMountainCoins(), coin_ids);
|
var tmp = L3D.generateCoins(L3D.createMountainCoins(), coinIds);
|
||||||
|
|
||||||
for (var i in tmp) {
|
for (var i in tmp) {
|
||||||
coins.push(tmp[i]);
|
coins.push(tmp[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
var recommendations = L3D.createMountainRecommendations(container_size.width(), container_size.height());
|
var recommendations = L3D.createMountainRecommendations(containerSize.width(), containerSize.height());
|
||||||
|
|
||||||
recommendations.forEach(function(reco) {reco.addToScene(scene);});
|
recommendations.forEach(function(reco) {reco.addToScene(scene);});
|
||||||
|
|
||||||
|
@ -691,8 +691,6 @@ L3D.initSponzaScene = function(scene, collidableObjects, recommendation, clickab
|
||||||
collidableObjects.push(loader.obj);
|
collidableObjects.push(loader.obj);
|
||||||
loader.obj.raycastable = true;
|
loader.obj.raycastable = true;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// ProgressiveLoader('/static/data/sponza/sponza.obj', scene,
|
// ProgressiveLoader('/static/data/sponza/sponza.obj', scene,
|
||||||
// function(obj) {
|
// function(obj) {
|
||||||
// obj.scale.set(0.1,0.1,0.1);
|
// obj.scale.set(0.1,0.1,0.1);
|
||||||
|
@ -749,7 +747,7 @@ L3D.initSponza = function(recommendation, scene, coins, clickable) {
|
||||||
coins.push(tmp[i]);
|
coins.push(tmp[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
var recommendations = L3D.createSponzaRecommendations(container_size.width(), container_size.height());
|
var recommendations = L3D.createSponzaRecommendations(containerSize.width(), containerSize.height());
|
||||||
|
|
||||||
recommendations.forEach(function(reco) {reco.addToScene(scene);});
|
recommendations.forEach(function(reco) {reco.addToScene(scene);});
|
||||||
|
|
||||||
|
|
|
@ -100,7 +100,7 @@ L3D.DB.Event.ArrowClicked = function() {
|
||||||
* Id of the arrow
|
* Id of the arrow
|
||||||
* @type {Number}
|
* @type {Number}
|
||||||
*/
|
*/
|
||||||
this.arrow_id = null;
|
this.arrowId = null;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -109,7 +109,7 @@ L3D.DB.Event.ArrowClicked = function() {
|
||||||
*/
|
*/
|
||||||
L3D.DB.Event.ArrowClicked.prototype.send = function() {
|
L3D.DB.Event.ArrowClicked.prototype.send = function() {
|
||||||
var url = "/posts/arrow-clicked";
|
var url = "/posts/arrow-clicked";
|
||||||
var data = {arrow_id: this.arrow_id};
|
var data = {arrowId: this.arrowId};
|
||||||
L3D.DB.Private.sendData(url, data);
|
L3D.DB.Private.sendData(url, data);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -124,7 +124,7 @@ L3D.DB.Event.CoinClicked = function() {
|
||||||
* Id of the coin taken
|
* Id of the coin taken
|
||||||
* @type {Number}
|
* @type {Number}
|
||||||
*/
|
*/
|
||||||
this.coin_id = null;
|
this.coinId = null;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -132,7 +132,7 @@ L3D.DB.Event.CoinClicked = function() {
|
||||||
*/
|
*/
|
||||||
L3D.DB.Event.CoinClicked.prototype.send = function() {
|
L3D.DB.Event.CoinClicked.prototype.send = function() {
|
||||||
var url = "/posts/coin-clicked";
|
var url = "/posts/coin-clicked";
|
||||||
var data = {coin_id: this.coin_id};
|
var data = {coinId: this.coinId};
|
||||||
L3D.DB.Private.sendData(url, data);
|
L3D.DB.Private.sendData(url, data);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -222,7 +222,7 @@ L3D.DB.Event.Hovered = function() {
|
||||||
* The id of the arrow hovered
|
* The id of the arrow hovered
|
||||||
* @type {Number}
|
* @type {Number}
|
||||||
*/
|
*/
|
||||||
this.arrow_id = null;
|
this.arrowId = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* true if the hover starts, false if finishes
|
* true if the hover starts, false if finishes
|
||||||
|
@ -239,7 +239,7 @@ L3D.DB.Event.Hovered.prototype.send = function() {
|
||||||
var url = "/posts/hovered";
|
var url = "/posts/hovered";
|
||||||
var data = {
|
var data = {
|
||||||
start: this.start,
|
start: this.start,
|
||||||
arrow_id: this.arrow_id
|
arrowId: this.arrowId
|
||||||
};
|
};
|
||||||
|
|
||||||
L3D.DB.Private.sendData(url, data);
|
L3D.DB.Private.sendData(url, data);
|
||||||
|
|
|
@ -7,7 +7,7 @@ module.exports.index = function(req, res) {
|
||||||
pg.connect(secret.url, function(err, client, release) {
|
pg.connect(secret.url, function(err, client, release) {
|
||||||
client.query(
|
client.query(
|
||||||
"INSERT INTO coinclicked(exp_id, coin_id, time) VALUES($1,$2, to_timestamp($3));",
|
"INSERT INTO coinclicked(exp_id, coin_id, time) VALUES($1,$2, to_timestamp($3));",
|
||||||
[req.session.exp_id, req.body.coin_id, req.body.time],
|
[req.session.expId, req.body.coinId, req.body.time],
|
||||||
function(err, result) {
|
function(err, result) {
|
||||||
if (err !== null)
|
if (err !== null)
|
||||||
Log.dberror(err + ' in coin-clicked');
|
Log.dberror(err + ' in coin-clicked');
|
||||||
|
|
|
@ -7,7 +7,7 @@ module.exports.index = function(req, res) {
|
||||||
pg.connect(secret.url, function(err, client, release) {
|
pg.connect(secret.url, function(err, client, release) {
|
||||||
client.query(
|
client.query(
|
||||||
"INSERT INTO fpscounter(exp_id, fps, time) VALUES($1,$2,to_timestamp($3));",
|
"INSERT INTO fpscounter(exp_id, fps, time) VALUES($1,$2,to_timestamp($3));",
|
||||||
[req.session.exp_id, req.body.fps, req.body.time],
|
[req.session.expId, req.body.fps, req.body.time],
|
||||||
function(err, result) {
|
function(err, result) {
|
||||||
if (err !== null)
|
if (err !== null)
|
||||||
Log.dberror(err + ' in fps');
|
Log.dberror(err + ' in fps');
|
||||||
|
|
|
@ -9,10 +9,10 @@ module.exports.index = function(req, res) {
|
||||||
"INSERT INTO hovered(exp_id, time, start, arrow_id)" +
|
"INSERT INTO hovered(exp_id, time, start, arrow_id)" +
|
||||||
"VALUES($1, to_timestamp($2), $3, $4);" ,
|
"VALUES($1, to_timestamp($2), $3, $4);" ,
|
||||||
[
|
[
|
||||||
req.session.exp_id,
|
req.session.expId,
|
||||||
req.body.time,
|
req.body.time,
|
||||||
req.body.start ? true : false,
|
req.body.start ? true : false,
|
||||||
req.body.arrow_id
|
req.body.arrowId
|
||||||
],
|
],
|
||||||
function(err, result) {
|
function(err, result) {
|
||||||
if (err !== null)
|
if (err !== null)
|
||||||
|
|
|
@ -7,8 +7,8 @@ module.exports.index = function(req, res) {
|
||||||
|
|
||||||
db.checkUserName(req.body.inputId, function(ok) {
|
db.checkUserName(req.body.inputId, function(ok) {
|
||||||
if (!ok) {
|
if (!ok) {
|
||||||
db.tryUser(req.session.user_id, function(id) {
|
db.tryUser(req.session.userId, function(id) {
|
||||||
req.session.user_id = id;
|
req.session.userId = id;
|
||||||
req.session.save();
|
req.session.save();
|
||||||
|
|
||||||
pg.connect(secret.url, function(err, client, release) {
|
pg.connect(secret.url, function(err, client, release) {
|
||||||
|
@ -18,7 +18,7 @@ module.exports.index = function(req, res) {
|
||||||
req.body.inputId,
|
req.body.inputId,
|
||||||
req.body.inputAge,
|
req.body.inputAge,
|
||||||
req.body.inputGender === 'male',
|
req.body.inputGender === 'male',
|
||||||
req.session.user_id,
|
req.session.userId,
|
||||||
req.body.input3dskills,
|
req.body.input3dskills,
|
||||||
req.body.inputLastTime
|
req.body.inputLastTime
|
||||||
],
|
],
|
||||||
|
|
|
@ -9,7 +9,7 @@ module.exports.index = function(req, res) {
|
||||||
"INSERT INTO keyboardevent(exp_id, camera, time, keycode, keypressed)" +
|
"INSERT INTO keyboardevent(exp_id, camera, time, keycode, keypressed)" +
|
||||||
"VALUES($1, ROW(ROW($2,$3,$4),ROW($5,$6,$7)), to_timestamp($8), $9, $10);" ,
|
"VALUES($1, ROW(ROW($2,$3,$4),ROW($5,$6,$7)), to_timestamp($8), $9, $10);" ,
|
||||||
[
|
[
|
||||||
req.session.exp_id,
|
req.session.expId,
|
||||||
req.body.camera.position.x,
|
req.body.camera.position.x,
|
||||||
req.body.camera.position.y,
|
req.body.camera.position.y,
|
||||||
req.body.camera.position.z,
|
req.body.camera.position.z,
|
||||||
|
|
|
@ -7,10 +7,10 @@ module.exports.index = function(req, res) {
|
||||||
pg.connect(secret.url, function(err, client, release) {
|
pg.connect(secret.url, function(err, client, release) {
|
||||||
client.query(
|
client.query(
|
||||||
"INSERT INTO pointerlocked(exp_id, locked, time) VALUES($1,$2,to_timestamp($3));",
|
"INSERT INTO pointerlocked(exp_id, locked, time) VALUES($1,$2,to_timestamp($3));",
|
||||||
[req.session.exp_id, req.body.locked, req.body.time],
|
[req.session.expId, req.body.locked, req.body.time],
|
||||||
function(err, result) {
|
function(err, result) {
|
||||||
if (err !== null)
|
if (err !== null)
|
||||||
Log.dberror(err + ' in fps');
|
Log.dberror(err + ' in pointer-lock');
|
||||||
release();
|
release();
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
|
@ -9,7 +9,7 @@ module.exports.index = function(req, res) {
|
||||||
"INSERT INTO previousnextclicked(exp_id, previousnext, time, camera)" +
|
"INSERT INTO previousnextclicked(exp_id, previousnext, time, camera)" +
|
||||||
"VALUES($1, $2, to_timestamp($3), ROW(ROW($4,$5,$6), ROW($7,$8,$9)));" ,
|
"VALUES($1, $2, to_timestamp($3), ROW(ROW($4,$5,$6), ROW($7,$8,$9)));" ,
|
||||||
[
|
[
|
||||||
req.session.exp_id,
|
req.session.expId,
|
||||||
req.body.previous ? 'p' : 'n',
|
req.body.previous ? 'p' : 'n',
|
||||||
req.body.time,
|
req.body.time,
|
||||||
req.body.camera.position.x,
|
req.body.camera.position.x,
|
||||||
|
|
|
@ -9,7 +9,7 @@ module.exports.index = function(req, res) {
|
||||||
"INSERT INTO resetclicked(exp_id, time)" +
|
"INSERT INTO resetclicked(exp_id, time)" +
|
||||||
"VALUES($1, to_timestamp($2));" ,
|
"VALUES($1, to_timestamp($2));" ,
|
||||||
[
|
[
|
||||||
req.session.exp_id,
|
req.session.expId,
|
||||||
req.body.time
|
req.body.time
|
||||||
],
|
],
|
||||||
function(err, result) {
|
function(err, result) {
|
||||||
|
|
|
@ -10,7 +10,7 @@ module.exports.index = function(req, res) {
|
||||||
pg.connect(secret.url, function(err, client, release) {
|
pg.connect(secret.url, function(err, client, release) {
|
||||||
client.query(
|
client.query(
|
||||||
"INSERT INTO switchedlockoption(exp_id, locked, time) VALUES($1,$2,to_timestamp($3));",
|
"INSERT INTO switchedlockoption(exp_id, locked, time) VALUES($1,$2,to_timestamp($3));",
|
||||||
[req.session.exp_id, req.body.locked, req.body.time],
|
[req.session.expId, req.body.locked, req.body.time],
|
||||||
function(err, result) {
|
function(err, result) {
|
||||||
if (err !== null)
|
if (err !== null)
|
||||||
Log.dberror(err + ' in swithched lock option');
|
Log.dberror(err + ' in swithched lock option');
|
||||||
|
|
14
server.js
14
server.js
|
@ -91,17 +91,17 @@ app.use(function(req, res) {
|
||||||
});
|
});
|
||||||
|
|
||||||
// Set ports and ip address
|
// Set ports and ip address
|
||||||
var server_port, server_ip_address;
|
var serverPort, serverIpAddress;
|
||||||
if ( isDev ) {
|
if ( isDev ) {
|
||||||
server_port = 4000;
|
serverPort = 4000;
|
||||||
server_ip_address = 'localhost';
|
serverIpAddress = 'localhost';
|
||||||
} else {
|
} else {
|
||||||
// Openhift conf
|
// Openhift conf
|
||||||
server_port = process.env.OPENSHIFT_NODEJS_PORT || 8080;
|
serverPort = process.env.OPENSHIFT_NODEJS_PORT || 8080;
|
||||||
server_ip_address = process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1';
|
serverIpAddress = process.env.OPENSHIFT_NODEJS_IP || '127.0.0.1';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Start server
|
// Start server
|
||||||
http.listen(server_port, server_ip_address, function() {
|
http.listen(serverPort, serverIpAddress, function() {
|
||||||
Log.ready("Now listening " + server_ip_address + ":" + server_port);
|
Log.ready("Now listening " + serverIpAddress + ":" + serverPort);
|
||||||
});
|
});
|
||||||
|
|
2
urls.js
2
urls.js
|
@ -7,6 +7,6 @@ module.exports.viewports = '/prototype/viewports/';
|
||||||
module.exports.stream = '/stream/';
|
module.exports.stream = '/stream/';
|
||||||
module.exports.reverse = '/prototype/reverse/';
|
module.exports.reverse = '/prototype/reverse/';
|
||||||
module.exports.sponza = '/prototype/sponza/';
|
module.exports.sponza = '/prototype/sponza/';
|
||||||
module.exports.replay_index = '/prototype/replay/';
|
module.exports.replayIndex = '/prototype/replay/';
|
||||||
module.exports.tutorial = '/prototype/tutorial';
|
module.exports.tutorial = '/prototype/tutorial';
|
||||||
module.exports.logout = '/logout';
|
module.exports.logout = '/logout';
|
||||||
|
|
Loading…
Reference in New Issue