Skip to content

Commit

Permalink
Added fadeOut parameter to CloudsVisualSystem cursor drawing method, …
Browse files Browse the repository at this point in the history
…and to all related CloudsInput methods.
  • Loading branch information
prisonerjohn committed Jun 30, 2014
1 parent 637bfbb commit 5077264
Show file tree
Hide file tree
Showing 10 changed files with 23 additions and 21 deletions.
16 changes: 9 additions & 7 deletions CloudsLibrary/src/Input/CloudsInput.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -85,15 +85,17 @@ void CloudsInput::setBleedPixels(int b){
bleed = b;
}

void CloudsInput::selfDrawCursorDefault(CloudsCursorMode mode, ofVec3f& pos, bool bDragged, float focus, float size)
void CloudsInput::selfDrawCursorDefault(CloudsCursorMode mode, ofVec3f& pos, bool bDragged, float focus, float fadeOut, float size)
{

if (mode == CURSOR_MODE_NONE) return;
if (mode == CURSOR_MODE_NONE) return;
// EZ: Don't draw INACTIVE cursors for now
if (mode == CURSOR_MODE_INACTIVE) return;

// EZ: Uncomment this line to test focus using the mouse
//focus = ofMap(ofDist(pos.x, pos.y, ofGetWidth()/2, ofGetHeight()/2), 50, 400, 1.0f, 0.0f, true);

// EZ: Uncomment this line to test fadeOut using the frame count
//fadeOut = sinf(ofGetFrameNum() * 0.1f) + 0.5f;

ofPushStyle();
ofDisableLighting();
Expand All @@ -102,30 +104,30 @@ void CloudsInput::selfDrawCursorDefault(CloudsCursorMode mode, ofVec3f& pos, boo
if (mode == CURSOR_MODE_INACTIVE) {
size *= 0.5f;
ofSetLineWidth(3);
ofSetColor(213, 69, 62, 192 * focus);
ofSetColor(213, 69, 62, 192 * focus * fadeOut);
ofLine(pos.x - size, pos.y - size, pos.x + size, pos.y + size);
ofLine(pos.x - size, pos.y + size, pos.x + size, pos.y - size);
}
else if (mode == CURSOR_MODE_DRAW) {
ofSetLineWidth(2);
ofNoFill();
ofSetColor(255, 255, 255, 192);
ofSetColor(255, 255, 255, 192 * fadeOut);
ofCircle(pos, size);
}
else { // mode == CURSOR_MODE_CAMERA
ofSetLineWidth(2);
#ifndef OCULUS_RIFT
float lineLength;
if (focus >= 0) {
ofSetColor(255, 255, 255, 192);
ofSetColor(255, 255, 255, 192 * fadeOut);
lineLength = ofMap(focus, 0.0f, 1.0f, 1, size);
}
else {
ofColor flashColor(255, MAX(35, 192 * focus * -1));
if (focus < 0 && focus > -0.3) {
flashColor.lerp(ofColor(255, 0, 0), cosf(ofGetElapsedTimef() * 10) * 0.5 + 0.5);
}
ofSetColor(flashColor);
ofSetColor(flashColor, 255 * fadeOut);
lineLength = size;
}
ofLine(pos.x - size, pos.y, pos.x - size + lineLength, pos.y);
Expand Down
4 changes: 2 additions & 2 deletions CloudsLibrary/src/Input/CloudsInput.h
Original file line number Diff line number Diff line change
Expand Up @@ -46,8 +46,8 @@ class CloudsInput
void setBleedPixels(int bleed);
ofVec2f getBleedPixels();

virtual void drawCursorDefault(CloudsCursorMode mode, ofVec3f& pos, bool bDragged, float focus) = 0;
void selfDrawCursorDefault(CloudsCursorMode mode, ofVec3f& pos, bool bDragged, float focus, float size);
virtual void drawCursorDefault(CloudsCursorMode mode, ofVec3f& pos, bool bDragged, float focus, float fadeOut) = 0;
void selfDrawCursorDefault(CloudsCursorMode mode, ofVec3f& pos, bool bDragged, float focus, float fadeOut, float size);

bool bUserBegan;

Expand Down
4 changes: 2 additions & 2 deletions CloudsLibrary/src/Input/CloudsInputKinectOSC.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -834,15 +834,15 @@ void CloudsInputKinectOSC::draw(float x, float y, float width, float height)
}

//--------------------------------------------------------------
void CloudsInputKinectOSC::drawCursorDefault(CloudsCursorMode mode, ofVec3f& pos, bool bDragged, float focus){
void CloudsInputKinectOSC::drawCursorDefault(CloudsCursorMode mode, ofVec3f& pos, bool bDragged, float focus, float fadeOut){
float cursorSize;
if (mode == CURSOR_MODE_INACTIVE)
cursorSize = cursorUpSizeMin;
else if (bDragged)
cursorSize = ofMap(pos.z, 2, -2, cursorDownSizeMin, cursorDownSizeMax, true);
else
cursorSize = ofMap(pos.z, 2, -2, cursorUpSizeMin, cursorUpSizeMax, true);
selfDrawCursorDefault(mode, pos, bDragged, focus, cursorSize);
selfDrawCursorDefault(mode, pos, bDragged, focus, fadeOut, cursorSize);
}

//--------------------------------------------------------------
Expand Down
2 changes: 1 addition & 1 deletion CloudsLibrary/src/Input/CloudsInputKinectOSC.h
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ class CloudsInputKinectOSC : public CloudsInput
map<int, k4w::Hand *> hands;

// cursors
void drawCursorDefault(CloudsCursorMode mode, ofVec3f& pos, bool bDragged, float focus);
void drawCursorDefault(CloudsCursorMode mode, ofVec3f& pos, bool bDragged, float focus, float fadeOut);

float cursorDownSizeMin, cursorDownSizeMax;
float cursorUpSizeMin, cursorUpSizeMax;
Expand Down
4 changes: 2 additions & 2 deletions CloudsLibrary/src/Input/CloudsInputMouse.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -51,8 +51,8 @@ void CloudsInputMouse::mouseReleased(ofMouseEventArgs& data){
interactionEnded(currentPosition, true, dragging, data.button);
}

void CloudsInputMouse::drawCursorDefault(CloudsCursorMode mode, ofVec3f& pos, bool bDragged, float focus){
selfDrawCursorDefault(mode, pos, bDragged, focus, bDragged? cursorDownSize:cursorUpSize);
void CloudsInputMouse::drawCursorDefault(CloudsCursorMode mode, ofVec3f& pos, bool bDragged, float focus, float fadeOut){
selfDrawCursorDefault(mode, pos, bDragged, focus, fadeOut, bDragged? cursorDownSize:cursorUpSize);
}

void SetCloudsInputMouse()
Expand Down
2 changes: 1 addition & 1 deletion CloudsLibrary/src/Input/CloudsInputMouse.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ class CloudsInputMouse : public CloudsInput
void mouseDragged(ofMouseEventArgs& data);
void mouseReleased(ofMouseEventArgs& data);

void drawCursorDefault(CloudsCursorMode mode, ofVec3f& pos, bool bDragged, float focus);
void drawCursorDefault(CloudsCursorMode mode, ofVec3f& pos, bool bDragged, float focus, float fadeOut);

float cursorDownSize;
float cursorUpSize;
Expand Down
4 changes: 2 additions & 2 deletions CloudsLibrary/src/Input/CloudsInputOculus.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -37,8 +37,8 @@ void CloudsInputOculus::update(ofEventArgs& data){
}
}

void CloudsInputOculus::drawCursorDefault(CloudsCursorMode mode, ofVec3f& pos, bool bDragged, float focus){
selfDrawCursorDefault(mode, pos, bDragged, focus * (bDragged? 1.0f:0.35f), cursorSize);
void CloudsInputOculus::drawCursorDefault(CloudsCursorMode mode, ofVec3f& pos, bool bDragged, float focus, float fadeOut){
selfDrawCursorDefault(mode, pos, bDragged, focus * (bDragged? 1.0f:0.35f), fadeOut, cursorSize);
}

void SetCloudsInputOculus()
Expand Down
2 changes: 1 addition & 1 deletion CloudsLibrary/src/Input/CloudsInputOculus.h
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ class CloudsInputOculus : public CloudsInput

void update(ofEventArgs& data);

void drawCursorDefault(CloudsCursorMode mode, ofVec3f& pos, bool bDragged, float focus);
void drawCursorDefault(CloudsCursorMode mode, ofVec3f& pos, bool bDragged, float focus, float fadeOut);

float cursorSize;
};
Expand Down
4 changes: 2 additions & 2 deletions CloudsLibrary/src/VisualSystemsLibrary/CloudsVisualSystem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -3902,10 +3902,10 @@ void CloudsVisualSystem::drawCursors()
}

// Override this method to customize the position or rendering of the cursors for a specific CloudsVisualSystem!
void CloudsVisualSystem::selfDrawCursor(ofVec3f& pos, bool bDragged, CloudsCursorMode mode, float focus)
void CloudsVisualSystem::selfDrawCursor(ofVec3f& pos, bool bDragged, CloudsCursorMode mode, float focus, float fadeOut)
{
// Use the default cursor rendering from CloudsInput.
GetCloudsInput()->drawCursorDefault(mode, pos, bDragged, focus);
GetCloudsInput()->drawCursorDefault(mode, pos, bDragged, focus, fadeOut);
}

void CloudsVisualSystem::selfExit()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ class CloudsVisualSystem {
virtual void selfDrawOverlay();
virtual void selfPostDraw();
virtual void selfPostDraw(int width, int height);
virtual void selfDrawCursor(ofVec3f& pos, bool bDragged, CloudsCursorMode mode, float focus = 1.0f);
virtual void selfDrawCursor(ofVec3f& pos, bool bDragged, CloudsCursorMode mode, float focus = 1.0f, float fadeOut = 1.0f);

virtual void selfPresetLoaded(string presetPath);

Expand Down

0 comments on commit 5077264

Please sign in to comment.