Пример #1
0
MatrixAffine2f LocationComponent::calcLocalMatrix() const
{
  MatrixAffine2f mat;
  mat.translate( position() + registration_point() );
  mat.rotate( rotation );
  mat.scale( scale );
  mat.translate( -registration_point() );
  return mat;
}
Пример #2
0
 void transformVertices(const vector<Vec2f> &source, vector<Vec2f> &target, const MatrixAffine2f &matrix)
 {
     target.clear();
     target.reserve(source.size());
     
     for (auto &vertex : source)
     {
         target.emplace_back(matrix.transformPoint(vertex));
     }
 }
Пример #3
0
void CinderIldaApp::setup()
{
    
//    setFrameRate(200);
    
    setWindowSize(800, 600);
    
    mLaserDac = new ciilda::EasyLase();
    mLaserDac->setup();
    
    mIldaFrame.params.output.targetPointCount = 400;
    mIldaFrame.params.output.blankCount = 4;
    mIldaFrame.params.output.endCount = 2;

    ColouredShape2d completeShape;
    
    ColouredShape2d shapeOrg;
    shapeOrg.color( ColorAf(1.0,0.5,.4,1.0) );
    shapeOrg.moveTo(Vec2f(100,100));
    shapeOrg.lineTo(Vec2f(500,100));
    shapeOrg.lineTo(Vec2f(500,450));
    shapeOrg.color( ColorAf(.3,0.2,.4,1.0) );
    shapeOrg.lineTo(Vec2f(100,450));
    shapeOrg.lineTo(Vec2f(100,100));
    //    shapeOrg.close();
    
    
    ColouredShape2d triangle;
    triangle.color( ColorAf(.12,0.2,1,1) );
    triangle.moveTo(Vec2f(Vec2f(getWindowWidth()-30,30)));
    triangle.lineTo(Vec2f(600,450));
    triangle.color( ColorAf(.3,0.2,0,1) );
    triangle.lineTo(Vec2f(Vec2f(30,getWindowHeight()-30)));
    
    completeShape.color( ColorAf(0,1,1,1) );
    completeShape.moveTo(Vec2f(300,100));
    completeShape.lineTo(Vec2f(150,250));
    completeShape.lineTo(Vec2f(100,250));
//    completeShape.curveTo(Vec2f(300,150),Vec2f(150,250),Vec2f(100,250));
    
    
    completeShape.appendColouredShape2d(shapeOrg);
    completeShape.appendColouredShape2d(triangle);
    
    
    MatrixAffine2f matrix;    
    matrix.setToIdentity();
    matrix.translate( -Vec2f(getWindowWidth(),getWindowHeight())/2.0 );
    completeShape.transform(matrix);

    matrix.setToIdentity();
    matrix.scale(Vec2f( 1.0/(float)getWindowWidth(), 1.0/(float)getWindowHeight()));
    matrix.scale(.1);
    completeShape.transform(matrix);

    matrix.setToIdentity();
    matrix.translate( Vec2f(0.5,0.5) );
    completeShape.transform( matrix );
    
    
    
    //    MatrixAffine2f matrix;
    //    matrix.scale(.5);
    //    matrix.translate(Vec2f(.5,.5));
    //    shapeOrg.transform(matrix);
    
    //    mIldaFrame.params.output.transform.scale = Vec2f(.5,.5);
    //    mIldaFrame.params.output.transform.offset = Vec2f(.5,.5);
    
    
    mIldaFrame.begin();
    mIldaFrame.addColouredShape2d(completeShape);
    mIldaFrame.end();
    
    gl::enableAlphaBlending();
    
    
    std::string normalFont( "Arial" );
    mFont = Font( normalFont, 14 );
    
    TextLayout simple;
	simple.setFont( mFont );
	simple.setColor( Color( 1, 1, 1 ) );
	simple.addLine( "Cinder" );
	simple.addLine( "Font From Resource" );
	mTexture = gl::Texture( simple.render( true, PREMULT ) );
    
    mIldaFrame.draw(0,0,100,100);
    
}
Пример #4
0
bool GuiComponent::contains( const ci::Vec2f &point, const MatrixAffine2f &world_transform )
{
  return interaction_bounds.contains( world_transform.invertCopy().transformPoint( point ) );
}