Isomet Modular Synthesiser (iMS) API  v1.4.2
iMS API
Public Member Functions | List of all members
iMS::ImageProject Class Reference

An ImageProject allows the user to organise their data and store it on the host computer. More...

#include <include/Image.h>

Public Member Functions

void Clear ()
 Reset ImageProject to empty state. More...
 
Constructors & Destructor
 ImageProject ()
 Default Constructor. More...
 
 ImageProject (const std::string &fileName)
 Implicit Load From File Constructor. More...
 
Image Group Container
ImageGroupListImageGroupContainer ()
 Set Accessor for the Image Group Container. More...
 
const ImageGroupListImageGroupContainer () const
 Get Accessor for the Image Group Container.
 
Compensation Function Container
CompensationFunctionListCompensationFunctionContainer ()
 Set Accessor for the Compensation Function Container. More...
 
const CompensationFunctionListCompensationFunctionContainer () const
 Get Accessor for the Compensation Function Container.
 
Tone Buffer Container
ToneBufferListToneBufferContainer ()
 Set Accessor for the Tone Buffer Container. More...
 
const ToneBufferListToneBufferContainer () const
 Get Accessor for the Tone Buffer Container.
 
Free Image Container
ImageGroupFreeImageContainer ()
 Set Accessor for the Free Image Container. More...
 
const ImageGroupFreeImageContainer () const
 Get Accessor for the Tone Buffer Container.
 
FileSystem Functions
bool Save (const std::string &fileName)
 Save ImageProject to host disk. More...
 
bool Load (const std::string &fileName)
 Load ImageProject from host disk. More...
 

Detailed Description

An ImageProject allows the user to organise their data and store it on the host computer.

An ImageProject permits the user to organise and contain all of their data relating to a specific use case for the iMS. Any number of ImageGroup's, CompensationFunction's, ToneBuffer's and/or Free Images (individual Images not associated in an ImageGroup and with no ImageSequence) may be help in an ImageProject. The data is stored on disk in an efficient custom file format that may be unzipped by the user and inspected in an XML file viewer, if wished.

A simple use case for the ImageProject is to contain a single Image, kept in the FreeImageContainer, and to load/save that Image to disk. A more complex use case might be to hold different ImageGroup's for different purposes that are used as the raw data for a processing task that requires some other software to select between Image's and ImageSequence's according to some system parameter.

Date
2016-11-09
Since
1.3

Constructor & Destructor Documentation

iMS::ImageProject::ImageProject ( )

Default Constructor.

Creates an empty ImageProject.

iMS::ImageProject::ImageProject ( const std::string &  fileName)

Implicit Load From File Constructor.

Calls the default constructor, then ImageProject::Load() to initialise the object from the filesystem param[in] fileName String pointing to a valid .iip or .xml file on the host filesystem to load into the ImageProject

Member Function Documentation

void iMS::ImageProject::Clear ( )

Reset ImageProject to empty state.

Removes all entries from all of the containers

CompensationFunctionList& iMS::ImageProject::CompensationFunctionContainer ( )

Set Accessor for the Compensation Function Container.

Use this function to modify, add and remove CompensationFunction's from the ImageProject.

ImageGroup& iMS::ImageProject::FreeImageContainer ( )

Set Accessor for the Free Image Container.

Use this function to modify, add and remove individual Image's from the ImageProject. The Free Image Container is configured as an ImageGroup to allow user software to access its Image's using the same function calls as when working with an ImageGroup object. In this regard, the FreeImageContainer may be regarded as a "superset" of the ImageGroup that permits save/load to disk.

ImageGroupList& iMS::ImageProject::ImageGroupContainer ( )

Set Accessor for the Image Group Container.

Use this function to modify, add and remove ImageGroup's from the ImageProject.

bool iMS::ImageProject::Load ( const std::string &  fileName)

Load ImageProject from host disk.

First clears the ImageProject of any existing content. Then it will try to read in data from the provided file, work out whether it is compressed or uncompressed, and populate the ImageProject containers from the file data. The function is fully backwards compatible with all previous versions of the SDK and should therefore be capable of reading in any file ever generated by the SDK. It is also compatible with ImageProject files generated by the previous generation of Isomet Image software, the iHHS ImageFile Generator

Parameters
[in]fileNameString representing the full path of a file to load fata from.
bool iMS::ImageProject::Save ( const std::string &  fileName)

Save ImageProject to host disk.

Stores all data in the ImageProject containers to a custom file format on disk. The preferred file extension is ".iip" for Isomet Image Project. If the passed file name ends in .xml however, the function will save the data to an uncompressed XML type file which can be read in any XML file viewer.

Warning
XML files saved this way can be very large!

If the passed file name ends in neither .xml nor .iip, the function will save the data in compressed format as if it ended in .iip but respecting the user's choice of file name.

Parameters
[in]fileNameString representing the full path of a file to save data to, ending in .xml (uncompressed) or .iip (compressed)
ToneBufferList& iMS::ImageProject::ToneBufferContainer ( )

Set Accessor for the Tone Buffer Container.

Use this function to modify, add and remove ToneBuffer's from the ImageProject.


The documentation for this class was generated from the following file: