Internal Libraries

From K-3D

Overview

At its heart, K-3D is built on the K-3D SDK library (k3dsdk), which defines interfaces and classes used everywhere, including plugins, plus core internal functionality including plugin loading, application and document objects, undo/redo storage, and the like.

The design allows K-3D to be "embedded" into other apps. What you probably think of as K-3D is just our own example of such an app, one that links k3dsdk into a binary executable to create our "standard" K-3D with its "standard" user interface. The code that ties everything together is in application/main.cpp. If you wanted to create an application that used a different UI toolkit, you could copy application/main.cpp and modify a handful of lines of code to link with your UI of choice.

In newer versions of K-3D (starting with 0.5/0.6), user interfaces are now a type of plugin, so you could implement an alternate user interface without having to touch the main application at all.

Beyond user interface considerations, a person might want to embed K-3D into a scripted environment such as Perl, rather than embedding the Perl interpreter into K-3D as a plugin. There are many interesting possibilities.