This course provides an introduction to Cinder using C++. Cinder is a community-developed, free and open source library for professional-quality creative coding in C++. Topics ranging from the basic architecture of a Cinder application, to 2D basic drawing, handling user input, image processing basics, face detection, OpenCV integration, and animation basics are included. An elementary knowledge of C++ should be just fine to follow the course, though more advanced aspects of the language and of the STL libraries will be discussed when needed.
Giovanni Dicanio is a computer programmer specialized in both cross-platform C and C++, and Windows operating system development. He is a Microsoft MVP for Visual C++. He also blogs on msmvps.com/gdicanio.
Introduction Hi, this is Giovanni Dicanio, welcome to this course on Getting Started with Cinder. Cinder is a wide topic and several courses could be developed to cover it all including all its subsystems in details. Instead, the purpose of this course is to help getting you started with Cinder. Here, we'll break the ice with Cinder. I'll give you some basic elements of a Cinder programming like the basic architecture of a Cinder application, how to interact with the user and the process user input, how to load and process images, animation basics, et cetera. So that you can start being productive with Cinder. So this module is an introductory module for the whole course. I'll first introduce you to Cinder and then I'll briefly discuss the prerequisites for this course, the topics discussed in this course, the modules' organization, et cetera. In the next clip we start to talking about Cinder.
Getting Started Hi this is Giovanni Dicanio. Welcome to this module on getting started with Cinder. In this module, I'll show you how to install and set up Cinder. We'll also develop a simple Hello World, a kind of Cinder application just to break the ice with this great library. This will give us an occasion to have an initial look to the best architecture of a Cinder application. So this module will be basically divided into two main parts. First we'll see how to install and set up Cinder with Visual Studio. I'll use Visual Studio in this course. However, since Cinder is a cross platform library, the C++ code that I present in this course can be compiled also on different platforms supported by Cinder, like MacOS. Then, we'll develop a simple Hello World kind of Cinder application. Of course, being Cinder a graphics library, we won't write the classical Hello World text on the console. Instead, we'll just do something basic in this module but in a graphical window. The output of that window won't, certainly, be a super graphic's demo. In fact this initial application will just be an occasion to break the ice with Cinder. We'll build more interesting stuff, gradually, during the developement of the course. To build our first Cinder application, we'll use a convenient tool called TinderBox. As we'll soon see in this module TinderBox is great to quickly get some initial skeleton code for a Cinder application. Then this initial code can be refined and extended for our purposes. In the next clip we start with a download and installation of Cinder.
2D Drawing Basics Hi. This is Giovanni Dicanio. Welcome back to this module on a 2D drawing basics with a Cinder. In this module I show you the basics of how to draw two-dimensional shapes like lines, rectangles, circles, etc. So, I start introducing the 2D coordinate system in Cinder. This is the foundation for all the other drawing-related concepts. In fact, you have to know how to express drawing locations on your application window. I'll also introduce a few utility classes like Vec2f to represent vectors and the 2D positions and color classes as well. And, of course, I'll show you how to draw some basic two-dimensional shapes like lines, rectangles, circles, ellipses, ect. In the next clip, we'll start with a basic introduction to the 2D coordinate system used in Cinder.
User Input Hi, this is Giovanni Dicanio. Welcome back to this module on processing user input with Cinder. Being able to interact with the user is certainly an important feature in several applications. So, in this module, I'll explain you the basics of how to process input from user in Cinder. We'll talk about processing input coming from the keyboard, and from the mouse, as well. The concepts described in theory within the slides, will also be applied and showed in action, in some concrete C++ Cinder demo code. In the next clip, we'll have a look at the basic architecture of event handling in Cinder.