Skip to content

Commit

Permalink
added streaming
Browse files Browse the repository at this point in the history
  • Loading branch information
Andor committed Jul 21, 2010
1 parent eb14282 commit 91ae2f3
Show file tree
Hide file tree
Showing 6 changed files with 57 additions and 43 deletions.
5 changes: 0 additions & 5 deletions demos/acorn/acorn.asc
Expand Up @@ -57505,8 +57505,3 @@
3.195539 -2.805503 9.74251 80 56 40 0.105032 -0.066927 0.992214
3.195539 -2.6774240000000002 9.74251 80 56 40 0.145090 0.073766 0.986665
3.195539 -2.549348 9.74251 72 48 24 0.223254 0.128481 0.966256





1 change: 1 addition & 0 deletions demos/acorn/acorn.html
Expand Up @@ -57,6 +57,7 @@
<input type="button" value="clear" onClick="clearPNG();"/><br />
<canvas id="canvas" width="300" height="500"></canvas>
<span id="thumbnails"></span>
<span id="debug"></span>
<br />
<span>Last key Pressed:</span> <span id="key">None</span>
<br />
Expand Down
3 changes: 3 additions & 0 deletions demos/acorn/acorn.js
Expand Up @@ -65,11 +65,14 @@ function render() {
curCoords[1] = ps.mouseY;
}


// transform point cloud
ps.translate(0,0,zoomed);

ps.rotateY(rot[0]);
ps.rotateX(rot[1]);

ps.translate(-2.4899933996557677,-0.6635081899594929,-3.009662628949344);

ps.attenuation( $("#constant").slider("value"),
$("#linear").slider("value"),
Expand Down
3 changes: 2 additions & 1 deletion demos/lion/lion.js
Expand Up @@ -45,7 +45,8 @@ function render() {

ps.rotateY(rot[0]);
ps.rotateX(rot[1]);

ps.translate(281.32617943646534,205.61656736098982,290.55082983174293);

// redraw
ps.clear();
ps.render();
Expand Down
2 changes: 1 addition & 1 deletion demos/mickey/mickey.js
Expand Up @@ -29,7 +29,7 @@ function mouseReleased(){
}

function render() {

//document.getElementById('debug').innerHTML +="r";
var deltaX = ps.mouseX - curCoords[0];
var deltaY = ps.mouseY - curCoords[1];

Expand Down
86 changes: 50 additions & 36 deletions psapi.js
@@ -1,3 +1,8 @@
var allVerts = 0;
var objCenter = [0,0,0];
var remainder = "";
var lastPlace = 0;
var again = true;
/*
Copyright (c) 2010 Seneca College
MIT LICENSE
Expand All @@ -15,7 +20,7 @@ function PointStream(){
var renderCallback;

var bk = [1,1,1,1];
var VBOs;
var VBOs = [];

// defaults
var attn = [0.01, 0.0, 0.003];
Expand Down Expand Up @@ -563,7 +568,7 @@ function PointStream(){

// if VBOs already exist, recreate them
if(VBOs) {
VBOs = createVBOs(verts, cols, norms);
// VBOs = createVBOs(verts, cols, norms);

if(cols.length > 0){
uniformf(progObj, "light.pos", [0,0,-1]);
Expand All @@ -587,19 +592,21 @@ function PointStream(){
frames++;
xb.frameCount++;
var now = new Date();


for(var k = 0; k < VBOs.length; k++){

if(ctx && VBOs){
vertexAttribPointer(progObj, "aVertex", 3, VBOs.posBuffer);
vertexAttribPointer(progObj, "aVertex", 3, VBOs[k].posBuffer);

if(VBOs.colBuffer){
vertexAttribPointer(progObj, "aColor", 3, VBOs.colBuffer);
if(VBOs[k].colBuffer){
vertexAttribPointer(progObj, "aColor", 3, VBOs[k].colBuffer);
}
else{
disableVertexAttribPointer(progObj, "aColor");
}

if(VBOs.normBuffer){
vertexAttribPointer(progObj, "aNormal", 3, VBOs.normBuffer);
if(VBOs[k].normBuffer){
vertexAttribPointer(progObj, "aNormal", 3, VBOs[k].normBuffer);
uniformf(progObj, "light.col", [1,1,1]);
uniformf(progObj, "light.pos", [0,0,-1]);
uniformi(progObj, "lightCount", 1);
Expand All @@ -614,7 +621,8 @@ function PointStream(){

uniformMatrix(progObj, "model", false, model);

ctx.drawArrays(ctx.POINTS, 0, VBOs.size/3);
ctx.drawArrays(ctx.POINTS, 0, VBOs[k].size/3);
}
}

// if more than 1 second has elapsed, recalculate fps
Expand Down Expand Up @@ -860,27 +868,28 @@ function PointStream(){
}

if(AJAX.readyState === XHR_DONE){
objCenter[0] /= allVerts;
objCenter[1] /= allVerts;
objCenter[2] /= allVerts;
//alert(objCenter);
}

if(AJAX.responseText && again == true){

var code = 9;
var normalsPresent = true;
var colorsPresent = true;

var code = getDataLayout(AJAX.responseText);
var lastNewLineIndex = AJAX.responseText.lastIndexOf("\n");

var normalsPresent = false;
var colorsPresent = false;
remaining = AJAX.responseText.substring(lastNewLineIndex+1, AJAX.responseText.length);

var chunk = AJAX.responseText.substring(lastPlace, lastNewLineIndex);

if(code == 1 ){
code = 6;
normalsPresent = true;
}
else if(code == 2 ){
code = 6;
colorsPresent = true;
}
if(code == 9){
normalsPresent = true;
colorsPresent = true;
}
lastPlace = lastNewLineIndex;

// trim leading and trailing whitespace
var values = AJAX.responseText;
var values = chunk;//AJAX.responseText;

// trim trailing spaces
values = values.replace(/\s+$/,"");
Expand All @@ -889,10 +898,13 @@ function PointStream(){
values = values.replace(/^\s+/,"");

values = values.split(/\s+/);

const numVerts = values.length/code;

var objCenter = [0,0,0];
allVerts += numVerts;

verts = [];
cols = [];
norms = [];

// xyz rgb normals
for(var i = 0, len = values.length; i < len; i += code){
Expand Down Expand Up @@ -925,25 +937,27 @@ function PointStream(){
}

// if the user wants to center the point cloud
if(autoCenter){
objCenter[0] /= numVerts;
objCenter[1] /= numVerts;
objCenter[2] /= numVerts;
}
// if(autoCenter){
// objCenter[0] /= numVerts;
// objCenter[1] /= numVerts;
// objCenter[2] /= numVerts;
// }

// if the user wanted to autocenter the point cloud,
// iterate over all the verts and subtract by the
// point cloud's current center.
if(autoCenter){
/* if(autoCenter){
for(var i = 0; i < numVerts; i++){
verts[i*3] -= objCenter[0];
verts[i*3+1] -= objCenter[1];
verts[i*3+2] -= objCenter[2];
}
}
}*/

VBOs = createVBOs(verts, cols, norms);

// VBOs[0] = createVBOs(verts, cols, norms);
VBOs.push(createVBOs(verts, cols, norms));
// document.getElementById('debug').innerHTML +="d";
file.status = 4;
}
}
Expand Down

0 comments on commit 91ae2f3

Please sign in to comment.