File structure of a project
All openFrameworks projects have a similar structure of folders and files. Let's consider this in detail by looking at the openFrameworks' pointCloudExample
project.
Open the examples/3d/pointCloudExample
folder. It consists of the following files and folders:
The
bin
folder contains an executable file of the project (maybe also a number of libraries in the.dll
files will be there—it depends on your operating system). If you compile the project, as it is described in the Installing openFrameworks and running your first example section, most probably you will find there is an executable file namedpointCloudExample_debug
.The
_debug
suffix means that the project was compiled in the Debug mode of compilation. This mode lets you debug the project by using breakpoints and other debugging tools.Note
Breakpoint is a debugging tool, which pauses execution of the project in a specified line of code and lets you inspect the current values of the project's variables.
Projects compiled in the Debug mode can work very slowly. So when your project is working properly, always compile it in the Release mode of the compilation. Many examples in the book should be compiled in the Release mode for good performance. In this case, the executable file will be called without the
_debug
suffix, such aspointCloudExample
.Also, inside the
bin
folder you will find thedata
subfolder. This is a folder where all your contents should be located: images, videos, sounds, XML, and text files. openFrameworks projects use this folder as a default place for loading and saving the data.In the considered project, this folder contains one image file named
linzer.png
.Note
This image consists of pixels, which hold red, green, blue, and alpha color components (
red
,green
,blue
,alpha
). Each image's pixel (x
,y
) is transformed into a 3D point (x
,y
,z
) with color (r
,g
,b
,a
), so that the point's third coordinatez
is calculated from thealpha
value. As a result we obtain the resultant 3D point cloud, which is drawn on the screen. (See Chapter 4, Images and Textures, for details on getting the pixels' colors from the images.)The
src
folder contains C++ source codes for your project. Often, source codes are represented in just three files:main.cpp
,testApp.h
, andtestApp.cpp
. We will consider these files a bit later, in the Code structure of a project section. Note that this folder can contain other.h
and.cpp
files of your project.
Also the project's folder contains a special project file for your development environment. It has extension .sln
(Visual Studio), .xcodeproj
(Xcode), or .workspace
(Code::Blocks). This is the file which you should open in your development environment in order to edit, compile, and run the project. (In the considered example it has the name pointCloudExample.sln
, pointCloudExample.xcodeproj
, or pointCloudExample.workspace
.)
Additionally, the project's folder can contain some other files, for example, the current project settings (the set of files depend on the development environment).