• Danny Hindson's avatar
    Changes to support loading multi-part mesh environment from spec xml file · 7a20e4dd
    Danny Hindson authored
    The format of the sample environment xml file has been extended to support
    loading a .stl file for each environment component. An example spec file
    has been created in ISIS/Pearl.xml. This can be used when running the
    Algorithm SetSample
    Various SampleEnvironmentXXX units have been moved out the Geometry package
    into the DataHandling package to facilitate this because they needed to
    access the STL loading code in DataHandling
    SetSample contains some features for overriding the sample geometry if the
    geometry is a CSGObject. This has been sidestepped for mesh geometries.
    The methods setId and setMaterial have been moved up to IObject because
    it's useful to have them applicable to all objects (CSG, mesh)
    Some of the repeated code in SetSample, LoadSampleEnvironment (and now
    SampleEnvironmentSpecParser) has been centralised in a new class LoadStlFactory
    Also changed container logic so that if there's only one container specified
    in the env spec file you don't need to specify it in SetSample
    Centralise code relating to scaling mesh vertices and handling of units
    into the LoadShape class and rename it MeshFileIO now that SaveStl is also
    descended from this class
    Move repeated code to choose Ascii or binary STL reader into a factory class