summaryrefslogtreecommitdiff
path: root/liveengineUnmapped/src/layers.cpp
diff options
context:
space:
mode:
authortim <tim@gray.(none)>2014-04-18 03:15:31 +0100
committertim <tim@gray.(none)>2014-04-18 03:15:31 +0100
commitee9819390008b29ee2cfc1bc45fac3e3b1530529 (patch)
treef412cd6c0a498f720eea816ba8334b33a3d82896 /liveengineUnmapped/src/layers.cpp
parent36474b672e0380e0ff513d5727775afe36dbdc1c (diff)
phew
Diffstat (limited to 'liveengineUnmapped/src/layers.cpp')
-rwxr-xr-xliveengineUnmapped/src/layers.cpp152
1 files changed, 76 insertions, 76 deletions
diff --git a/liveengineUnmapped/src/layers.cpp b/liveengineUnmapped/src/layers.cpp
index a0fb213..36de3b1 100755
--- a/liveengineUnmapped/src/layers.cpp
+++ b/liveengineUnmapped/src/layers.cpp
@@ -1,60 +1,60 @@
#include "layers.h"
-svglayer::svglayer() {
- xo=0;yo=0;
+svglayer::svglayer() {
+ xo=0;yo=0;
}
svglayer::svglayer(string _f)
{
load(_f);
}
-void svglayer::load(string _f){
+void svglayer::load(string _f){
//check if files exits
svg.load(_f);
printf("%s: %i paths\n",_f.c_str(),svg.getNumPath());
- for (int i=0;i<svg.getNumPath();i++) {
- fills.push_back(svg.getPathAt(i).getFillColor());
+ for (int i=0;i<svg.getNumPath();i++) {
+ fills.push_back(svg.getPathAt(i).getFillColor());
strokes.push_back(svg.getPathAt(i).getStrokeColor());
//printf(" path %i: fill %08x stroke %08x\n",i,svg.getPathAt(i).getFillColor().getHex(),svg.getPathAt(i).getStrokeColor().getHex());
- }
+ }
isLoaded= (svg.getNumPath()>0);
}
void svglayer::getCentre(int cx,int cy) {
if (svg.getNumPath()>0) {
- xo=(cx-svg.getWidth())/2;
- yo=(cy-svg.getHeight())/2;
+ xo=cx-256; //(cx-svg.getWidth())/2;
+ yo=cy-256; //(cy-svg.getHeight())/2;
}
}
void svglayer::draw(float a,int cx,int cy,float colShift) {
- getCentre(cx,cy);
+ getCentre(cx,cy);
for (int i=0;i<svg.getNumPath();i++) {
ofColor c=fills[i]*a;
if (colShift>0.0f) {
c.setHue(fmod(c.getHue()+colShift,255.0f));
//printf ("shift from %f to %f\n",c.getHue(),c.getHue()+colShift);
- }
- svg.getPathAt(i).setFillColor(c);
- svg.getPathAt(i).draw(xo,yo);
+ }
+ svg.getPathAt(i).setFillColor(c);
+ svg.getPathAt(i).draw(xo,yo);
}
-}
-/*
+}
+/*
void svglayer::draw(float a,unsigned char* controllers,int cx,int cy,bool transparentBlack,float colShift) {
- getCentre(cx,cy);
+ getCentre(cx,cy);
//draw layers tinted by controllers
- for (int i=0;i<svg.getNumPath();i++) {
- float h=fmod(fills[i].getHue()+colShift,255.0f);
- float ha=h/42.7; //0-5
- int h1=(((int)ha)+2)%6;
- int h2=h1+1;
- float f2=ha-h1;
- float f1=1.0f-f2;
- //if (transparentBlack) printf("transparent black draw %f\n",(a*(((controllers[h1]*f1)+(controllers[h2]*f2))/127.0)));
-
- svg.getPathAt(i).setFillColor(fills[i]*a*(((controllers[h1]*f1)+(controllers[h2]*f2))/127.0));;
- if (!transparentBlack||(a*(((controllers[h1]*f1)+(controllers[h2]*f2))/127.0))>0.1) {
- svg.getPathAt(i).draw(xo,yo);
- }
+ for (int i=0;i<svg.getNumPath();i++) {
+ float h=fmod(fills[i].getHue()+colShift,255.0f);
+ float ha=h/42.7; //0-5
+ int h1=(((int)ha)+2)%6;
+ int h2=h1+1;
+ float f2=ha-h1;
+ float f1=1.0f-f2;
+ //if (transparentBlack) printf("transparent black draw %f\n",(a*(((controllers[h1]*f1)+(controllers[h2]*f2))/127.0)));
+
+ svg.getPathAt(i).setFillColor(fills[i]*a*(((controllers[h1]*f1)+(controllers[h2]*f2))/127.0));;
+ if (!transparentBlack||(a*(((controllers[h1]*f1)+(controllers[h2]*f2))/127.0))>0.1) {
+ svg.getPathAt(i).draw(xo,yo);
+ }
}
}
*/
@@ -65,42 +65,42 @@ void svglayer::draw(float a,unsigned char* controllers,int cx,int cy,bool transp
float layerspercontroller=((float)svg.getNumPath())/6.0f;
for (int i=0;i<6;i++) {
- //for (int j=(int)((i+1)*layerspercontroller)-1;j>(int)(i*layerspercontroller);j--) {
+ //for (int j=(int)((i+1)*layerspercontroller)-1;j>(int)(i*layerspercontroller);j--) {
for (int j=(int)(i*layerspercontroller);j<(int)((i+1)*layerspercontroller);j++) {
svg.getPathAt(j).setFillColor(fills[j]*a*(((float)controllers[5-i])/127.0f)); //try to reverse order of these
if (!transparentBlack||((a*controllers[5-i])/127.0f)>0.1) {
svg.getPathAt(j).draw(xo,yo);
}
}
- }
+ }
//printf("counted %i layers of %i\n",(int)(6*layerspercontroller),svg.getNumPath());
-}
+}
svglayer::~svglayer()
{
//dtor
-}
-
-//------------------------------------------------------------------------
-imglayer::imglayer() {
- //sprite.setUseTexture(false);
+}
+
+//------------------------------------------------------------------------
+imglayer::imglayer() {
+ //sprite.setUseTexture(false);
}
imglayer::imglayer(string _filename,int _frames,int _start,float _rate,int n, int e){
load(_filename,_frames,_start,_rate,n,e);
}
-void imglayer::load(string _filename,int _frames,int _start,float _rate,int n, int e){
- startNote=n;
+void imglayer::load(string _filename,int _frames,int _start,float _rate,int n, int e){
+ startNote=n;
endNote=e;
sprite.load(_filename,_frames,_start);
sprite.setFrameRate(_rate);
}
-
-void imglayer::draw(float a,int cx,int cy,float colShift) {
+
+void imglayer::draw(float a,int cx,int cy,float colShift) {
//if (sprite.isAllocated()) if (!sprite.isUsingTexture()) sprite.setUseTexture(true); //has to be done from the main thread? still doesn't work
-
+
sprite.update();
int x,y,w,h;
if ((((float)cx)/cy)<(((float)sprite.getWidth())/sprite.getHeight())){
@@ -115,25 +115,25 @@ void imglayer::draw(float a,int cx,int cy,float colShift) {
w=((float)cy)*(((float)sprite.getWidth())/sprite.getHeight());
x=(cx-w)/2;
}
- ofEnableAlphaBlending();
+ ofEnableAlphaBlending();
sprite.draw(x,y,w,h);
ofDisableAlphaBlending();
-}
-
-void imglayer::draw(float a,unsigned char* controllers,int cx,int cy,bool transparentBlack=false,float colShift=0.0f) {
+}
+
+void imglayer::draw(float a,unsigned char* controllers,int cx,int cy,bool transparentBlack=false,float colShift=0.0f) {
imglayer::draw(a,cx,cy,colShift);
}
void imglayer::setNote(int note)
-{
- //is called rerpeatedly no startNote,endNote
+{
+ //is called rerpeatedly no startNote,endNote
//printf("note %i (%i - %i)\n",note,startNote,endNote);
if ((startNote<=note)&&(endNote>=note)) {
if (!sprite.getIsPlaying()) {
sprite.play();
- }
+ }
//printf("triggered frame %i of %i\n",(int)(((((float)note-startNote)/((float)endNote-startNote)))*sprite.getTotalFrames()),sprite.getTotalFrames());
sprite.setCurrentFrame((int)(((((float)note-startNote)/((float)endNote-startNote)))*sprite.getTotalFrames()));
//printf("movie %i (%i - %i) frame: %i\n",note,startNote,endNote,(int)(((((float)note-startNote)/((float)endNote-startNote)))*mov.getTotalNumFrames()));
@@ -144,20 +144,20 @@ void imglayer::setNote(int note)
}
}
-};
+};
imglayer::~imglayer()
{
//sprite.setUseTexture(false); //free texture
-}
-//------------------------------------------------------------------------
-videolayer::videolayer() {
- //sprite.setUseTexture(false);
+}
+//------------------------------------------------------------------------
+videolayer::videolayer() {
+ //sprite.setUseTexture(false);
}
videolayer::videolayer(string _f,int n,int e,float s)
-{
- startNote=n;
+{
+ startNote=n;
endNote=e;
speed=s;
load(_f);
@@ -174,8 +174,8 @@ void videolayer::load(string _f){
printf("%s %s %i bpp\n",success?"loaded":"not loaded",_f.c_str(),success?mov.getPixelsRef().getBytesPerPixel():0);
}
-void videolayer::draw(float a,int cx,int cy,float colShift) {
- if (mov.isPlaying()) {
+void videolayer::draw(float a,int cx,int cy,float colShift) {
+ if (mov.isPlaying()) {
mov.update();
//unsigned char *pix=mov.getPixels();
//for (int i=0;i<mov.getWidth()*mov.getHeight()*4;i+=4) pix[i+3]=(pix[i]>>2)+(pix[i+1]>>1)+(pix[i+2]>>2);
@@ -194,34 +194,34 @@ void videolayer::draw(float a,int cx,int cy,float colShift) {
}
ofEnableAlphaBlending();
mov.draw(x,y,w,h);
- ofDisableAlphaBlending();
+ ofDisableAlphaBlending();
}
-}
-
-void videolayer::draw(float a,unsigned char* controllers,int cx,int cy,bool transparentBlack=false,float colShift=0.0f) {
+}
+
+void videolayer::draw(float a,unsigned char* controllers,int cx,int cy,bool transparentBlack=false,float colShift=0.0f) {
draw(a,cx,cy,colShift);
-}
-
-void videolayer::setNote(int note)
+}
+
+void videolayer::setNote(int note)
{
-
- if ((startNote<=note)&&(endNote>=note)) {
+
+ if ((startNote<=note)&&(endNote>=note)) {
if (!mov.isPlaying()) {
//printf("starting movie!\n");
mov.setUseTexture(true);
mov.play();
mov.setSpeed(speed);
- }
+ }
mov.setFrame((int)(((((float)note-startNote)/((float)endNote-startNote)))*mov.getTotalNumFrames()));
- //printf("movie %i (%i - %i) frame: %i\n",note,startNote,endNote,(int)(((((float)note-startNote)/((float)endNote-startNote)))*mov.getTotalNumFrames()));
- }
- else {
- if (mov.isPlaying()) {
- mov.stop();
- }
- }
-
-};
+ //printf("movie %i (%i - %i) frame: %i\n",note,startNote,endNote,(int)(((((float)note-startNote)/((float)endNote-startNote)))*mov.getTotalNumFrames()));
+ }
+ else {
+ if (mov.isPlaying()) {
+ mov.stop();
+ }
+ }
+
+};
videolayer::~videolayer()