From 834821d005cbe0bd57638dec6f741d208fe1d596 Mon Sep 17 00:00:00 2001 From: Philip Rosedale Date: Wed, 10 Apr 2013 18:25:54 -0700 Subject: [PATCH 1/6] Removed the lattice object --- interface/src/Lattice.cpp | 106 -------------------------------------- interface/src/Lattice.h | 39 -------------- interface/src/main.cpp | 15 ++---- 3 files changed, 5 insertions(+), 155 deletions(-) delete mode 100644 interface/src/Lattice.cpp delete mode 100644 interface/src/Lattice.h diff --git a/interface/src/Lattice.cpp b/interface/src/Lattice.cpp deleted file mode 100644 index 10a11b8763..0000000000 --- a/interface/src/Lattice.cpp +++ /dev/null @@ -1,106 +0,0 @@ -// -// Lattice.cpp -// interface -// -// Created by Philip on 1/19/13. -// Copyright (c) 2013 High Fidelity, Inc. All rights reserved. -// - -#include "Lattice.h" - -Lattice::Lattice(int w, int h) { - width = w; - height = h; - tilegap = 2; - lastindex = -1; - tiles = new Tile[width*height]; - for (int i = 0; i < (width*height); i++) { - tiles[i].color[0] = tiles[i].color[1] = tiles[i].color[2] = 0.2f + randFloat()*0.3f; - tiles[i].x = static_cast(i % width); - tiles[i].y = static_cast(i/width); - tiles[i].brightness = 1.0; - tiles[i].type = 0; - tiles[i].excited = tiles[i].inhibited = 0.0; - } -} - -void Lattice::render(int screenWidth, int screenHeight) { - float tilewidth = static_cast(screenWidth/width); - float tileheight = static_cast(screenHeight/height); - float tilecolor[3]; - glBegin(GL_QUADS); - for (int i = 0; i < (width*height); i++) { - if (tiles[i].type == 0) { - tilecolor[0] = 0.25; tilecolor[1] = 0.25; tilecolor[2] = 0.25; - } else if (tiles[i].type == 1) { - if (tiles[i].inhibited >= 0.1) { - tilecolor[0] = 0.5f; tilecolor[1] = 0.0; tilecolor[2] = 0.0; - } else { - tilecolor[0] = 0.2f; tilecolor[1] = 0.0; tilecolor[2] = 0.5f; - } - } - glColor3f(tilecolor[0]*(1.f+tiles[i].excited), tilecolor[1]*(1.f+tiles[i].excited), tilecolor[2]*(1.f+tiles[i].excited)); - glVertex2f(tiles[i].x*tilewidth, tiles[i].y*tileheight); - glVertex2f((tiles[i].x + 1)*tilewidth - tilegap, tiles[i].y*tileheight); - glVertex2f((tiles[i].x + 1)*tilewidth - tilegap, (tiles[i].y + 1)*tileheight - tilegap); - glVertex2f(tiles[i].x*tilewidth, (tiles[i].y + 1)*tileheight - tilegap); - } - glEnd(); -} - -void Lattice::mouseClick(float x, float y) { - // Update lattice based on mouse location, where x and y are floats between 0 and 1 corresponding to screen location clicked - // Change the clicked cell to a different type - //printf("X = %3.1f Y = %3.1f\n", x, y); - int index = int(x*(float)width) + int(y*(float)height)*width; - if (index != lastindex) { - tiles[index].type++; - if (tiles[index].type == 2) tiles[index].type = 0; - lastindex = index; - } -} - -void Lattice::mouseOver(float x, float y) { - // Update lattice based on mouse location, where x and y are floats between 0 and 1 corresponding to screen location clicked - // Excite the hovered cell a bit toward firing - //printf("X = %3.1f Y = %3.1f\n", x, y); - if (0) { - int index = int(x*(float)width) + int(y*(float)height)*width; - if (tiles[index].type > 0) tiles[index].excited += 0.05f; - //printf("excited = %3.1f, inhibited = %3.1f\n", tiles[index].excited, tiles[index].inhibited); - } -} - -void Lattice::simulate(float deltaTime) { - int index; - for (int i = 0; i < (width*height); i++) { - if (tiles[i].type > 0) { - if ((tiles[i].excited > 0.5) && (tiles[i].inhibited < 0.1)) { - tiles[i].excited = 1.0; - tiles[i].inhibited = 1.0; - // Add Energy to neighbors - for (int j = 0; j < 8; j++) { - if (j == 0) index = i - width - 1; - else if (j == 1) index = i - width; - else if (j == 2) index = i - width + 1; - else if (j == 3) index = i - 1; - else if (j == 4) index = i + 1; - else if (j == 5) index = i + width - 1; - else if (j == 6) index = i + width; - else index = i + width + 1; - if ((index > 0) && (index < width*height)) { - if (tiles[index].inhibited < 0.1) tiles[index].excited += 0.5; - } - - } - } - tiles[i].excited *= 0.98f; - tiles[i].inhibited *= 0.98f; - } - } -} - - - - - diff --git a/interface/src/Lattice.h b/interface/src/Lattice.h deleted file mode 100644 index 82d56cc7ae..0000000000 --- a/interface/src/Lattice.h +++ /dev/null @@ -1,39 +0,0 @@ -// -// Lattice.h -// interface -// -// Created by Philip on 1/19/13. -// Copyright (c) 2013 High Fidelity, Inc. All rights reserved. -// - -#ifndef __interface__Lattice__ -#define __interface__Lattice__ - -#include -#include "Util.h" -#include "world.h" -#include "InterfaceConfig.h" -#include - -class Lattice { -public: - Lattice(int width, int height); - void simulate(float deltaTime); - void render(int screenWidth, int screenHeight); - void mouseClick(float x, float y); - void mouseOver(float x, float y); -private: - int lastindex; - int width, height; - int tilegap; - struct Tile { - float x,y; - float color[3]; - float brightness; - float excited; - float inhibited; - int type; - } *tiles; -}; - -#endif /* defined(__interface__lattice__) */ diff --git a/interface/src/main.cpp b/interface/src/main.cpp index 3953a657f1..de5a731a39 100644 --- a/interface/src/main.cpp +++ b/interface/src/main.cpp @@ -69,7 +69,6 @@ #include #include #include "VoxelSystem.h" -#include "Lattice.h" #include "Finger.h" #include "Oscilloscope.h" #include "UDPSocket.h" @@ -130,7 +129,6 @@ Cloud cloud(0, // Particles VoxelSystem voxels; -Lattice lattice(160,100); Finger myFinger(WIDTH, HEIGHT); Field field; @@ -337,6 +335,8 @@ void init(void) } myAvatar.setPos(start_location ); myCamera.setPosition( start_location ); + + myFinger.setTarget(WIDTH/2, HEIGHT/2); #ifdef MARKER_CAPTURE if(marker_capture_enabled){ @@ -793,8 +793,8 @@ void display(void) glDisable(GL_DEPTH_TEST); glDisable(GL_LIGHTING); - //lattice.render(WIDTH, HEIGHT); - //myFinger.render(); + myFinger.render(); + #ifndef _WIN32 audio.render(WIDTH, HEIGHT); if (audioScope.getState()) audioScope.render(); @@ -1198,7 +1198,6 @@ void idle(void) myAvatar.simulate(1.f/FPS); balls.simulate(1.f/FPS); cloud.simulate(1.f/FPS); - lattice.simulate(1.f/FPS); myFinger.simulate(1.f/FPS); glutPostRedisplay(); @@ -1242,7 +1241,6 @@ void mouseFunc( int button, int state, int x, int y ) mouseX = x; mouseY = y; mousePressed = 1; - lattice.mouseClick((float)x/(float)WIDTH, (float)y/(float)HEIGHT); mouseStartX = x; mouseStartY = y; } @@ -1259,8 +1257,6 @@ void motionFunc( int x, int y) { mouseX = x; mouseY = y; - - lattice.mouseClick((float)x/(float)WIDTH,(float)y/(float)HEIGHT); } void mouseoverFunc( int x, int y) @@ -1270,8 +1266,7 @@ void mouseoverFunc( int x, int y) mouseY = y; if (mousePressed == 0) { -// lattice.mouseOver((float)x/(float)WIDTH,(float)y/(float)HEIGHT); -// myFinger.setTarget(mouseX, mouseY); + myFinger.setTarget(mouseX, mouseY); } } From 5ea6a9a69680b34fe636e41113c4e031b40d4252 Mon Sep 17 00:00:00 2001 From: Philip Rosedale Date: Wed, 10 Apr 2013 18:57:09 -0700 Subject: [PATCH 2/6] Add little balls to the end of the world coordinate axis markers when shown --- interface/src/Util.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/interface/src/Util.cpp b/interface/src/Util.cpp index fdd207ce48..3d58c6faa5 100644 --- a/interface/src/Util.cpp +++ b/interface/src/Util.cpp @@ -80,6 +80,23 @@ void render_world_box() glVertex3f(0,0,0); glVertex3f(0, 0, WORLD_SIZE); glEnd(); + // Draw little marker dots along the axis + glEnable(GL_LIGHTING); + glPushMatrix(); + glTranslatef(WORLD_SIZE,0,0); + glColor3f(1,0,0); + glutSolidSphere(0.125,10,10); + glPopMatrix(); + glPushMatrix(); + glTranslatef(0,WORLD_SIZE,0); + glColor3f(0,1,0); + glutSolidSphere(0.125,10,10); + glPopMatrix(); + glPushMatrix(); + glTranslatef(0,0,WORLD_SIZE); + glColor3f(0,0,1); + glutSolidSphere(0.125,10,10); + glPopMatrix(); } double diffclock(timeval *clock1,timeval *clock2) From e0a704935d282a815dbb54be555865575ca27ff9 Mon Sep 17 00:00:00 2001 From: Philip Rosedale Date: Wed, 10 Apr 2013 19:08:22 -0700 Subject: [PATCH 3/6] made display a bit cleaner --- interface/src/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interface/src/main.cpp b/interface/src/main.cpp index de5a731a39..59aac4c447 100644 --- a/interface/src/main.cpp +++ b/interface/src/main.cpp @@ -250,7 +250,7 @@ void displayStats(void) glm::vec3 avatarPos = myAvatar.getPos(); char stats[200]; - sprintf(stats, "FPS = %3.0f Pkts/s = %d Bytes/s = %d Head(x,y,z)=( %f , %f , %f )", + sprintf(stats, "FPS = %3.0f Pkts/s = %d Bytes/s = %d Head(x,y,z)= %4.2f, %4.2f, %4.2f ", FPS, packetsPerSecond, bytesPerSecond, avatarPos.x,avatarPos.y,avatarPos.z); drawtext(10, statsVerticalOffset + 49, 0.10f, 0, 1.0, 0, stats); if (serialPort.active) { From 407da2aea8610f161cab31e727588b7f7aa676cf Mon Sep 17 00:00:00 2001 From: Philip Rosedale Date: Thu, 11 Apr 2013 00:11:31 -0700 Subject: [PATCH 4/6] Added a startup timer --- interface/src/main.cpp | 13 ++++++++++++- shared/src/AgentList.cpp | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/interface/src/main.cpp b/interface/src/main.cpp index 0a356d746a..74987ba10f 100644 --- a/interface/src/main.cpp +++ b/interface/src/main.cpp @@ -196,6 +196,9 @@ float FPS = 120.f; timeval timerStart, timerEnd; timeval lastTimeIdle; double elapsedTime; +timeval applicationStartupTime; +bool justStarted = true; + #ifdef MARKER_CAPTURE @@ -783,7 +786,7 @@ void display(void) float sphereRadius = 0.25f; glColor3f(1,0,0); glPushMatrix(); - glTranslatef( 0.0f, sphereRadius, 0.0f ); + //glTranslatef( 0.0f, sphereRadius, 0.0f ); glutSolidSphere( sphereRadius, 15, 15 ); glPopMatrix(); @@ -915,6 +918,13 @@ void display(void) glutSwapBuffers(); frameCount++; + + // If application has just started, report time from startup to now (first frame display) + if (justStarted) { + printf("Startup Time: %4.2f\n", + (usecTimestampNow() - usecTimestamp(&applicationStartupTime))/1000000.0); + justStarted = false; + } } int setValue(int state, int *value) { @@ -1349,6 +1359,7 @@ void audioMixerUpdate(in_addr_t newMixerAddress, in_port_t newMixerPort) { int main(int argc, const char * argv[]) { + gettimeofday(&applicationStartupTime, NULL); const char* domainIP = getCmdOption(argc, argv, "--domain"); if (domainIP) { strcpy(DOMAIN_IP,domainIP); diff --git a/shared/src/AgentList.cpp b/shared/src/AgentList.cpp index 1add03d6ff..ce4dc21223 100644 --- a/shared/src/AgentList.cpp +++ b/shared/src/AgentList.cpp @@ -327,7 +327,7 @@ void *checkInWithDomainServer(void *args) { sockaddr_in tempAddress; memcpy(&tempAddress.sin_addr, pHostInfo->h_addr_list[0], pHostInfo->h_length); strcpy(DOMAIN_IP, inet_ntoa(tempAddress.sin_addr)); - printf("Domain server %s: \n", DOMAIN_HOSTNAME); + printf("Domain server: %s \n", DOMAIN_HOSTNAME); } else { printf("Failed lookup domainserver\n"); From 27c032270c6e5129607bf5602919f8dc82f08d85 Mon Sep 17 00:00:00 2001 From: Philip Rosedale Date: Thu, 11 Apr 2013 17:49:43 -0700 Subject: [PATCH 5/6] Resolved merge --- interface/src/main.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/interface/src/main.cpp b/interface/src/main.cpp index 8c420d3d9c..c3671f6e6b 100644 --- a/interface/src/main.cpp +++ b/interface/src/main.cpp @@ -1367,6 +1367,7 @@ int main(int argc, const char * argv[]) { AgentList::createInstance(AGENT_TYPE_INTERFACE); + gettimeofday(&applicationStartupTime, NULL); const char* domainIP = getCmdOption(argc, argv, "--domain"); if (domainIP) { strcpy(DOMAIN_IP,domainIP); From 76e2ca301e4bbecaf843a017745330d8575de163 Mon Sep 17 00:00:00 2001 From: Philip Rosedale Date: Thu, 11 Apr 2013 17:53:57 -0700 Subject: [PATCH 6/6] Fixes stephen asked for - remove finger stuff --- interface/src/Finger.cpp | 201 --------------------------------------- interface/src/Finger.h | 47 --------- interface/src/main.cpp | 11 +-- 3 files changed, 1 insertion(+), 258 deletions(-) delete mode 100644 interface/src/Finger.cpp delete mode 100644 interface/src/Finger.h diff --git a/interface/src/Finger.cpp b/interface/src/Finger.cpp deleted file mode 100644 index 1ea3b26fe6..0000000000 --- a/interface/src/Finger.cpp +++ /dev/null @@ -1,201 +0,0 @@ -// -// Finger.cpp -// interface -// -// Created by Philip on 1/21/13. -// Copyright (c) 2013 High Fidelity, Inc. All rights reserved. -// - -#include "Finger.h" - -#ifdef _WIN32 - -float fminf( float x, float y ) -{ - return x < y ? x : y; -} - -#endif - -const int NUM_BEADS = 75; -const float RADIUS = 50; // Radius of beads around finger - -const int NUM_PUCKS = 10; - -Finger::Finger(int w, int h) { - width = w; - height = h; - pos.x = pos.y = 0; - vel.x = vel.y = 0; - target.x = target.y = 0; - m = 1; - pressure = 0; - start = true; - // Create surface beads - beads = new bead[NUM_BEADS]; - pucks = new puck[NUM_PUCKS]; - - float alpha = 0; - for (int i = 0; i < NUM_BEADS; i++) { - beads[i].target.x = cosf(alpha)*RADIUS + 2.0f*(randFloat() - 0.5f); - beads[i].target.y = sinf(alpha)*RADIUS + 2.0f*(randFloat() - 0.5f); - beads[i].pos.x = beads[i].pos.y = 0.0; - beads[i].vel.x = beads[i].vel.y = 0.0; - alpha += 2.0f*PIf/NUM_BEADS; - beads[i].color[0] = randFloat()*0.05f; beads[i].color[1] = randFloat()*0.05f; beads[i].color[2] = 0.75f + randFloat()*0.25f; - beads[i].brightness = 0.0; - } - for (int i = 0; i < NUM_PUCKS; i++) { - pucks[i].pos.x = randFloat()*width; - pucks[i].pos.y = randFloat()*height; - pucks[i].radius = 5.0f + randFloat()*30.0f; - pucks[i].vel.x = pucks[i].vel.y = 0.0; - pucks[i].mass = pucks[i].radius*pucks[i].radius/25.0f; - } - -} - -const float SHADOW_COLOR[4] = {0.0, 0.0, 0.0, 0.75}; -const float SHADOW_OFFSET = 2.5; - -void Finger::render() { - glEnable(GL_POINT_SMOOTH); - - glPointSize(30.0f); - glBegin(GL_POINTS); - glColor4fv(SHADOW_COLOR); - glVertex2f(pos.x + SHADOW_OFFSET, pos.y + SHADOW_OFFSET); - glColor4f(0.0, 0.0, 0.7f, 1.0); - glVertex2f(pos.x, pos.y); - glEnd(); - - // Render Pucks - for (int i = 0; i < NUM_PUCKS; i++) { - glColor4fv(SHADOW_COLOR); - glPointSize(pucks[i].radius*2.f); - glBegin(GL_POINTS); - glVertex2f(pucks[i].pos.x + SHADOW_OFFSET, pucks[i].pos.y + SHADOW_OFFSET); - glColor4f(1.0, 0.0, 0.0, 1.0); - glVertex2f(pucks[i].pos.x, pucks[i].pos.y); - glEnd(); - } - - // Render beads - glPointSize(5.0f); - glLineWidth(3.0); - - glBegin(GL_POINTS); - for (int i = 0; i < NUM_BEADS; i++) { - glColor4fv(SHADOW_COLOR); - glVertex2f(beads[i].pos.x + SHADOW_OFFSET, beads[i].pos.y + SHADOW_OFFSET); - glColor3f(beads[i].color[0]+beads[i].brightness, beads[i].color[1]+beads[i].brightness, beads[i].color[2]+beads[i].brightness); - glVertex2f(beads[i].pos.x, beads[i].pos.y); - } - glEnd(); - -} - -void Finger::setTarget(int x, int y) { - target.x = static_cast(x); - target.y = static_cast(y); - if (start) { - // On startup, set finger to first target location - pos.x = target.x; - pos.y = target.y; - vel.x = vel.y = 0.0; - start = false; - } -} - -void Finger::simulate(float deltaTime) { - // Using the new target position x and y as where the mouse intends the finger to be, move the finger - if (!start) { - - // Move the finger - float distance = glm::distance(pos, target); - //float spring_length = 0; - const float SPRING_FORCE = 1000.0; - - if (distance > 0.1) { - vel += glm::normalize(target - pos)*deltaTime*SPRING_FORCE*distance; - } - // Decay Velocity (Drag) - - vel *= 0.8; - //vel *= (1.f - CONSTANT_DAMPING*deltaTime); - - // Update position - pos += vel*deltaTime; - - // Update the beads - const float BEAD_SPRING_FORCE = 500.0; - const float BEAD_NEIGHBOR_FORCE = 200.0; - const float HARD_SPHERE_FORCE = 2500.0; - const float PRESSURE_FACTOR = 0.00; - float separation, contact; - float newPressure = 0; - int n1, n2; - float d1, d2; - - for (int i = 0; i < NUM_BEADS; i++) { - distance = glm::distance(beads[i].pos, pos + beads[i].target * (1.f + pressure*PRESSURE_FACTOR)); - if (distance > 0.1) { - beads[i].vel += glm::normalize((pos + (beads[i].target*(1.f + pressure*PRESSURE_FACTOR))) - beads[i].pos)*deltaTime*BEAD_SPRING_FORCE*distance; - } - // Add forces from 2 neighboring beads - if ((i-1)>=0) n1 = i - 1; - else n1 = NUM_PUCKS - 1; - if ((i+1) 0.01) beads[i].vel += glm::normalize(beads[n1].pos - beads[i].pos)*deltaTime*BEAD_NEIGHBOR_FORCE*distance; - d2 = glm::distance(beads[i].pos, beads[n2].pos); - if (d2 > 0.01) beads[i].vel += glm::normalize(beads[n2].pos - beads[i].pos)*deltaTime*BEAD_NEIGHBOR_FORCE*distance; - - - // Look for hard collision with pucks - for (int j = 0; j < NUM_PUCKS; j++) { - - separation = glm::distance(beads[i].pos, pucks[j].pos); - contact = 2.5f + pucks[j].radius; - - // Hard Sphere Scattering - - if (separation < contact) { - beads[i].vel += glm::normalize(beads[i].pos - pucks[j].pos)* - deltaTime*HARD_SPHERE_FORCE*(contact - separation); - pucks[j].vel -= glm::normalize(beads[i].pos - pucks[j].pos)* - deltaTime*HARD_SPHERE_FORCE*(contact - separation)/pucks[j].mass; - if (beads[i].brightness < 0.5) beads[i].brightness = 0.5; - beads[i].brightness *= 1.1f; - } else { - beads[i].brightness *= 0.95f; - } - beads[i].brightness = fminf(beads[i].brightness, 1.f); - } - - - // Decay velocity, move beads - beads[i].vel *= 0.85; - beads[i].pos += beads[i].vel*deltaTime; - - // Measure pressure for next run - newPressure += glm::distance(beads[i].pos, pos); - } - if (fabs(newPressure - NUM_BEADS*RADIUS) < 100.f) pressure = newPressure - (NUM_BEADS*RADIUS); - - // Update the pucks for any pressure they have received - for (int j = 0; j < NUM_PUCKS; j++) { - pucks[j].vel *= 0.99; - - if (pucks[j].radius < 25.0) pucks[j].pos += pucks[j].vel*deltaTime; - - // wrap at edges - if (pucks[j].pos.x > width) pucks[j].pos.x = 0.0; - if (pucks[j].pos.x < 0) pucks[j].pos.x = static_cast(width); - if (pucks[j].pos.y > height) pucks[j].pos.y = 0.0; - if (pucks[j].pos.y < 0) pucks[j].pos.y = static_cast(height); - } - - } -} diff --git a/interface/src/Finger.h b/interface/src/Finger.h deleted file mode 100644 index 694eec9e33..0000000000 --- a/interface/src/Finger.h +++ /dev/null @@ -1,47 +0,0 @@ -// -// Finger.h -// interface -// -// Created by Philip on 1/21/13. -// Copyright (c) 2013 High Fidelity, Inc. All rights reserved. -// - -#ifndef __interface__Finger__ -#define __interface__Finger__ - -#include -#include "Util.h" -#include "world.h" -#include "InterfaceConfig.h" - -#include - -class Finger { -public: - Finger(int w, int h); - void simulate(float deltaTime); - void render(); - void setTarget(int x, int y); -private: - int width, height; // Screen size in pixels - bool start; - glm::vec2 pos, vel; // Position and velocity of finger - float m; // Velocity of finger - float pressure; // Internal pressure of skin vessel as function of measured volume - glm::vec2 target; // Where the mouse is - // little beads used to render the dynamic skin surface - struct bead { - glm::vec2 target, pos, vel; - float color[3]; - float brightness; - } *beads; - struct puck { - glm::vec2 pos, vel; - float brightness; - float radius; - float mass; - } *pucks; -}; - -#endif /* defined(__interface__finger__) */ - diff --git a/interface/src/main.cpp b/interface/src/main.cpp index c3671f6e6b..5b11d9e34e 100644 --- a/interface/src/main.cpp +++ b/interface/src/main.cpp @@ -69,7 +69,6 @@ #include #include #include "VoxelSystem.h" -#include "Finger.h" #include "Oscilloscope.h" #include "UDPSocket.h" #include "SerialInterface.h" @@ -127,8 +126,6 @@ Cloud cloud(0, // Particles ); VoxelSystem voxels; - -Finger myFinger(WIDTH, HEIGHT); Field field; #ifndef _WIN32 @@ -321,7 +318,6 @@ void init(void) myAvatar.setPos(start_location ); myCamera.setPosition( start_location ); - myFinger.setTarget(WIDTH/2, HEIGHT/2); #ifdef MARKER_CAPTURE if(marker_capture_enabled){ @@ -864,8 +860,6 @@ void display(void) gluOrtho2D(0, WIDTH, HEIGHT, 0); glDisable(GL_DEPTH_TEST); glDisable(GL_LIGHTING); - - myFinger.render(); #ifndef _WIN32 audio.render(WIDTH, HEIGHT); @@ -1279,7 +1273,6 @@ void idle(void) myAvatar.simulate(1.f/FPS); balls.simulate(1.f/FPS); cloud.simulate(1.f/FPS); - myFinger.simulate(1.f/FPS); glutPostRedisplay(); lastTimeIdle = check; @@ -1346,9 +1339,7 @@ void mouseoverFunc( int x, int y) mouseX = x; mouseY = y; if (mousePressed == 0) - { - myFinger.setTarget(mouseX, mouseY); - } + {} } void attachNewHeadToAgent(Agent *newAgent) {