void ofCairoRenderer::scale(float xAmnt, float yAmnt, float zAmnt ){ if(!surface || !cr) return; cairo_matrix_scale(getCairoMatrix(),xAmnt,yAmnt); setCairoMatrix(); if(!b3D) return; modelView.glScale(xAmnt,yAmnt,zAmnt); }
void ofCairoRenderer::rotateZ(float degrees){ if(!surface || !cr) return; cairo_matrix_rotate(getCairoMatrix(),degrees*DEG_TO_RAD); setCairoMatrix(); if(!b3D) return; modelView.glRotate(180,0,0,1); }
void ofCairoRenderer::translate(float x, float y, float z ){ if(!surface || !cr) return; cairo_matrix_translate(getCairoMatrix(),x,y); setCairoMatrix(); if(!b3D) return; modelView.glTranslate(ofVec3f(x,y,z)); }
void ofCairoRenderer::rotate(float degrees, float vecX, float vecY, float vecZ){ if(!surface || !cr) return; // we can only do Z-axis rotations via cairo_matrix_rotate. if(vecZ == 1.0f) { cairo_matrix_rotate(getCairoMatrix(),degrees*DEG_TO_RAD); setCairoMatrix(); } if(!b3D) return; modelView.glRotate(degrees,vecX,vecY,vecZ); }
void ofCairoRenderer::loadIdentityMatrix (void){ if(!surface || !cr) return; if(currentMatrixMode==OF_MATRIX_MODELVIEW){ cairo_matrix_init_identity(getCairoMatrix()); setCairoMatrix(); } if(!b3D) return; if(currentMatrixMode==OF_MATRIX_MODELVIEW){ modelView.makeIdentityMatrix(); }else if(currentMatrixMode==OF_MATRIX_PROJECTION){ projection.makeIdentityMatrix(); } }