The ROSE Math Library is called rosemath, and is used with the ST-Developer ROSE library. It does not use any EXPRESS information model (STEP, IFC, CIS/2, DSTV, etc) so it can be used in any ROSE program.

Getting Started

The rosemath.h master header brings in all of the definitions from the rosemath library. The functions are prefixed with "rose_" while classes are prefixed with "Rose".

#include <rose.h>
#include <rosemath.h>

int main (int argc, char ** argv)
    [ ... your code here ... ]

    return 0;

Compiling and Linking

Add the following paths and link settings to your C++ project settings.

The rosemath library does not need any extra include paths. All of the header files are in $(ROSE_INCLUDE), which should already be in your settings. The only change you need to make is to add rosemath to your link libraries. The examples below shows what the libraries on your link line would look like for different static and DLL link configurations. The f2c and dtnurbsc are support math libraries that are only needed if you include any of the RoseMesh definitions.

rosemath.lib rose.lib dtnurbsc.lib vcf2c.lib 		==> Windows static
rosemathdll.lib rosedll.lib  				==> Windows DLL
rosemathdlld.lib rosedlld.lib				==> Windows DLL debug

-lrosemath -lrose -ldtnurbsc -lf2c 	  		==> Unix (see below)

Updating Older Code

The STEP Faceter, IFC Faceter, and STEP helper function libraries now use mesh, transform, bounding box, and unit data types provided by the ROSE Math library. As a result, you may need to change some symbols when updating code that used the earlier definitions.