Book Image

Cinder - Begin Creative Coding

By : Krisjanis Rijnieks
Book Image

Cinder - Begin Creative Coding

By: Krisjanis Rijnieks

Overview of this book

<p>Cinder is one of the most powerful professional grade C++ creative coding frameworks out there. It is open-source and peer-reviewed, meaning that there are experienced professionals behind its developmentand that every development step is taken seriously. Its philosophy is based on the capabilities of the operating system it is used for - Cinder will take the best from every OS and hardware you choose to work on.</p> <p><em>Cinder - Begin Creative Coding</em> will let you take your previous creative coding experience to a higher and also more demanding level. It will show you the Cinder way of using the most used creative coding functions for drawing, animation, interaction and allow you to do much more in terms of performance and cross-application-compatibility.</p> <p>Starting by downloading Cinder and setting up the development environment, we will work through some of the most widely used topics in creative coding by creating and discussing simple sample applications.</p> <p>Throughout this book we will deal with relatively simple topics like basic drawing, basic animation, basic 3D, interaction, loading files, playing back video files, applying built in and custom effects. Then going through to more advanced topics like how to use Cinder for a generative projection mapping project by using Syphon technology and how to connect Open Sound Control enabled applications for receiving and sending data and commands.</p> <p><em>Cinder - Begin Creative Coding</em> will bring your craziest ideas closer to the core of your computer by using the pure power of C++.</p>
Table of Contents (19 chapters)
Cinder – Begin Creative Coding
Credits
About the Author
About the Reviewers
About the Reviewers
www.PacktPub.com
Preface
10
Talk to the User – Adding Interactivity and UI Events
Index

Animating effects


Let's make a simple effect animation by using the tricks we just learned and the update() method. We have to modify the code in the setup() method implementation so it looks similar to the following:

surface = Surface( loadImage( loadAsset("OurImage.png") ) );
  
// int threshold = 200; // comment or remove this line
Area area = surface.getBounds();
Surface::Iter iter = surface.getIter( area );
while( iter.line() ) {
  while( iter.pixel() ) {
    iter.r() += 1;
    iter.g() += 2;
    iter.b() += 3;
  }
}

texture = gl::Texture( surface );

Next we have to cut and paste all the code except the surface initialization to the update() method implementation as follows:

void BasicEffectsApp::setup() {
  surface = Surface( loadImage( loadAsset("OurImage.png") ) );
}

void BasicEffectsApp::update() {
  Area area = surface.getBounds();
  Surface::Iter iter = surface.getIter( area );
  while( iter.line() ) {
    while( iter.pixel() ) {
      iter.r() += 1;
      iter.g() += 2;
     ...