Commit 03a8f05c authored by Laurent Belcour's avatar Laurent Belcour Committed by Ludovic Courtès

[Doc] Working on the REferences and API page.

parent 28950df9
\page cpp C++ API
ALTA internal code is described in the \ref core "core" section. There you will find how to load plugins using the \ref plugins_manager "plugin manager". Plugins can be of three different types:
+ \ref data plugins allow load/save measurments of BRDFs.
+ \ref function plugins represent BRDF models.
+ \ref fitter plugins enable to match a BRDF model to data.
To load a particular plugin, you have to use one of the `get` function. For example to load the data plugin `data_merl` that enables to load the MERL dataset you can write:
auto plugin = plugins_manager::get_data("data_merl");
The `get_data` function returns a shared pointer to the plugin object. This plugin object can be used as a pointer to the associated type (here \ref data "data").
#### Plugin parameters
It is possible to pass parameters to the plugin creation using an \ref arguments object. Argument objects are dictionaries storing specific parameters name and values as strings.
Arguments can be created from the command line arguments of your program. Note that the command line must respect the following syntax `--name [value]`. For example the command line arguments `--hello world --foo bar` will result in the argument:
args["hello"] == "world"
args["foo"] == "bar"
Arguments are passed during the creation of plugins:
arguments args;
args.update("foo", "bar"); // Adding --foo bar
auto plugin = plugins_manager::get_data("data_merl", args);
Parameters are plugin specific. Please refer to each plugin documentation using the \ref plugins "plugins list".
......@@ -12,11 +12,15 @@
body {
box-shadow: 0px 0px 5px 5px #888888;
background-color: #AAAAAA;
width: 80%;
margin-left: 10%;
width: 85%;
margin-left: 7.5%;
margin-bottom: 10px;
.tablist a {
padding: 0px 10px;
div {
background-color: #FFFFFF;
......@@ -5,37 +5,36 @@
<!-- This page lists all documentation related to the ALTA library. -->
### Getting Started with ALTA [NEW Users should start here]
+ \ref gentle-intro
+ \ref tutorials
#### APIs
ALTA provides two programming APIs. At the lowest level, it is possible to author new \ref plugins "plugins" and \ref commands "commands" using the C++ API. At the highest level, it is possible to build Python scripts by directly manipulating plugins in this language.
+ \ref cpp "C++ API"
+ \ref python "Python Bindings"
### More specific documents
#### Format Specifications
#### File format specifications
ALTA permits to manipulate various type of files. Here, we detail: our internal data file format which can be either ASCII or binary; our function file format to store function parameters; and our XML file format to store high-level scripts.
\todo Separate the different file format
+ \ref format "Data file format"
+ \ref format "Function file format"
+ \ref format "XML scripting format"
+ ALTA Data File \ref format
+ ALTA Function File format
+ ALTA XML Scripting Format
#### BRDF Related Documents
+ <a href="classparams.html" >Parametrisations </a> supported in ALTA
##### Sofware Engineering
+ Compilation System
+ ALTA Plugin System
#### Reference
### Reference
+ List of plugin to convert data (cf. \ref datas)
+ List of plugins to fit data (cf. \ref fitters)
+ List of BRDF Models (cf. \ref functions)
+ List of provided ALTA sofwares (cf. \ref commands)
+ C++ API
+ Python Bindings API
......@@ -39,6 +39,7 @@ HTML_EXTRA_FILES = script.js \
./images/rational_example_01_alta.png \
./images/data_example_01_ref.png \
./images/data_example_01_alta.png \
./images/Kirby2.png \
./images/py.png ./images/xml.png \
./scripts/ \
./scripts/nonlinear-example-01.xml \
......@@ -6,7 +6,7 @@ div.image img[src="Kirby2.png"]{
body {
width: 80%;
width: 90%;
......@@ -4,7 +4,7 @@
<tab type="user" url="@ref features" title="Features"/>
<tab type="user" url="@ref install" title="Installation"/>
<tab type="user" url="@ref tutorials" title="Tutorials"/>
<tab type="user" url="@ref documentation" title="Documentation" />
<tab type="user" url="@ref documentation" title="API &amp; References" />
<tab type="user" url="@ref tools" title="Tools"/>
<tab type="user" url="@ref license" title="License"/>
<tab type="user" url="@ref contacts" title="Contacts"/>
\page tutorials Tutorials
### Forewords
+ <a href="gentle-intro.html">A gentle introduction to ALTA</a>
+ Using the command line
+ <a href="simple-tutorial1.html">A simple 1D rational fitting</a>
+ <a href="tutorial3.html">BRDF Data conversion</a>
+ <a href="tutorial2.html">BRDF Rational fitting</a>
+ <a href="tutorial1.html">BRDF non-linear fitting</a>
+ <a href="xml-tutorial1.html">Using XML scripts</a>
+ <a href="python.html">Using the Python interface</a>
+ <a href="cpp-tutorial1.html">Using the C++ interface</a>
ALTA organizes BRDF analysis and modeling into atomic \ref commands "programs" (coordinate transforms, sub-space integration, parameters estimation, `etc`) that are combined with plugins. Programs work on three types of plugins: \ref functions "BRDFs", \ref datas "datas", and \ref fitters "fitters". Plugins can input or output files. BRDFs, data and fitters can be provided by users through dynamic libraries. This makes ALTA easily extensible. Programs are executed using command line instructions and can be chained to generate scripts. We pro vide a higher level interface to build scripts using XML and \ref python.
In every example, we denotes command line execution using:
$ do-something
And Python scripts using:
>>> import alta
<br />
### Tutorials
#### Tutorials using the command line
+ <a href="simple-tutorial1.html">A simple 1D rational fitting</a>
+ <a href="tutorial3.html">BRDF Data conversion</a>
+ <a href="tutorial2.html">BRDF Rational fitting</a>
+ <a href="tutorial1.html">BRDF non-linear fitting</a>
### Tutorial using the XML interface
+ <a href="xml-tutorial1.html">Introduction to XML scripts</a>
### Tutorial using the Python interface
+ <a href="python.html"> Introduction to the Python interface</a>
### Tutorial using the C++ interface
+ <a href="cpp-tutorial1.html">Creating your own program</a>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment