Browse Source

Add texture and texture coordinates to triangle surface

master
Krisjanis Rijnieks 11 years ago
parent
commit
0022c92ba7
  1. 5
      example/src/ofApp.cpp
  2. 1
      example/src/ofApp.h
  3. 7
      src/ofxBaseSurface.cpp
  4. 1
      src/ofxBaseSurface.h
  5. 21
      src/ofxTriangleSurface.cpp
  6. 2
      src/ofxTriangleSurface.h

5
example/src/ofApp.cpp

@ -2,8 +2,11 @@
void ofApp::setup()
{
// Load test pattern image
image.loadImage("TestPatternInvert.jpg");
// Create a triangle surface
triangleSurface.setup( ofVec2f(30,40), ofVec2f(500,500), ofVec2f(0,600) );
triangleSurface.setup( ofVec2f(30,40), ofVec2f(500,500), ofVec2f(0,600), ofVec2f(0,0), ofVec2f(1,1), ofVec2f(0,1), &image.getTextureReference() );
}
void ofApp::update()

1
example/src/ofApp.h

@ -17,6 +17,7 @@ public:
void mouseDragged(int x, int y, int button);
ofxTriangleSurface triangleSurface;
ofImage image;
};
#endif

7
src/ofxBaseSurface.cpp

@ -1 +1,6 @@
#include "ofxBaseSurface.h"
#include "ofxBaseSurface.h"
ofxBaseSurface::ofxBaseSurface()
{
ofEnableNormalizedTexCoords();
}

1
src/ofxBaseSurface.h

@ -6,6 +6,7 @@
class ofxBaseSurface
{
public:
ofxBaseSurface();
virtual void setup(){};
virtual void draw(){};

21
src/ofxTriangleSurface.cpp

@ -18,21 +18,36 @@ void ofxTriangleSurface::setup()
ofVec2f p2 = ofVec2f(ofVec2f(0, ofGetHeight()));
ofVec2f p3 = ofVec2f(ofGetWidth(), ofGetHeight());
setup( p1, p2, p3 );
// Create 3 point for the texture coordinates
ofVec2f t1 = ofVec2f(0.5f, 0);
ofVec2f t2 = ofVec2f(0, 1.0f);
ofVec2f t3 = ofVec2f(1, 1.0f);
setup( p1, p2, p3, t1, t2, t3, texture );
}
void ofxTriangleSurface::setup( ofVec2f p1, ofVec2f p2, ofVec2f p3 )
void ofxTriangleSurface::setup( ofVec2f p1, ofVec2f p2, ofVec2f p3, ofVec2f t1, ofVec2f t2, ofVec2f t3, ofTexture* texturePtr )
{
// Clear previous vertices if any
// Assign texture
texture = texturePtr;
// Clear mesh
mesh.clear();
// Create a surface with the points
mesh.addVertex( p1 );
mesh.addVertex( p2 );
mesh.addVertex( p3 );
// Add texture coordinates
mesh.addTexCoord(t1);
mesh.addTexCoord(t2);
mesh.addTexCoord(t3);
}
void ofxTriangleSurface::draw()
{
texture->bind();
mesh.draw();
texture->unbind();
}

2
src/ofxTriangleSurface.h

@ -11,7 +11,7 @@ public:
~ofxTriangleSurface();
void setup();
void setup( ofVec2f p1, ofVec2f p2, ofVec2f p3 );
void setup( ofVec2f p1, ofVec2f p2, ofVec2f p3, ofVec2f t1, ofVec2f t2, ofVec2f t3, ofTexture* texturePtr );
void draw();
};

Loading…
Cancel
Save