World

class HPS::World : public HPS::Object

The World class is a special object that must be constructed prior to making any database calls and must exist for the life of the application.

Public Functions

inline virtual HPS::Type ObjectType() const

This function returns the type the object, as declared (if the object is derived, this does not give the true type of the derived object).

Returns

The declared type of the object in question, which may differ from the true, underlying type.

World &SetDriverConfigFile(char const *in_filename)

Sets the driver configuration file (i.e., a plain text file which can force device specific behavior) for Visualize. To ensure the settings within the configuration file take effect, this file must be specified prior to creating a driver which will be affected by the settings.

Parameters

in_filename – UTF8-encoded file name.

Returns

A reference to this World object.

World &SetExchangeLibraryDirectory(char const *in_directory)

Sets the directory which contains the Exchange and Publish libraries. If this is set, the Exchange and Publish Visualize modules will try to load the libraries from this directory. If this is not set, those modules will try to load the libraries from the directories in the application’s PATH. Note that this function will append the given directory to the PATH.

Parameters

in_directory – UTF8-encoded directory name.

Returns

A reference to this World object.

World &SetFontDirectories(size_t in_count, UTF8 const in_directories[])

Sets the directories which contain fonts for use by Visualize. This must be specified for Visualize to make use of any fonts beyond those Visualize defines itself.

Parameters
  • in_count – Size of the following array.

  • in_directories – Array of UTF8-encoded directory names.

Returns

A reference to this World object.

World &SetFontDirectories(UTF8Array const &in_directories)

Sets the directories which contain fonts for use by Visualize. This must be specified for Visualize to make use of any fonts beyond those Visualize defines itself.

Parameters

in_directories – Array of UTF8-encoded directory names.

Returns

A reference to this World object.

World &SetFontDirectory(char const *in_directory)

Sets the directory which contains fonts for use by Visualize. This must be specified for Visualize to make use of any fonts beyond those Visualize defines itself.

Parameters

in_directory – UTF8-encoded directory name.

Returns

A reference to this World object.

World &SetMaterialLibraryDirectory(char const *in_directory)

Sets the directory which contains the material library for Visualize. This must be specified to ensure any files which use the material library display correctly.

Parameters

in_directory – UTF8-encoded directory name.

Returns

A reference to this World object.

World &SetParasolidBodyshopDirectory(char const *in_directory)

Sets the Parasolid Bodyshop directory. If this directory is specified, Exchange will use the Parasolid Bodyshop to translate files to Parasolid parts.

Parameters

in_directory – UTF8-encoded directory name.

Returns

A reference to this World object.

World &SetParasolidSchemaDirectory(char const *in_directory)

Sets the schema directory for Parasolid. This directory must be specified to make use of the Parasolid module.

Note

Using this function will set the P_SCHEMA environment variable to the given directory as well.

Parameters

in_directory – UTF8-encoded directory name.

Returns

A reference to this World object.

World &SetPublishResourceDirectory(char const *in_directory)

Sets the resource directory for Publish. This is not the directory which contains the libraries (see World::SetExchangeLibraryDirectory), but rather the directory which contains fonts and associated mappings and files used during PDF generation. This directory must be specified to make use of the Publish module.

Parameters

in_directory – UTF8-encoded directory name.

Returns

A reference to this World object.

bool ShowDriverConfigFile(UTF8 &out_filename) const

Shows the driver configuration file for Visualize.

Parameters

out_filename – UTF8-encoded file names.

Returns

true if font directories were specified, false otherwise.

bool ShowExchangeLibraryDirectory(UTF8 &out_directory) const

Shows the Exchange and Publish library directory.

Parameters

out_directory – UTF8-encoded directory name.

Returns

true if an Exchange and Publish directory was specified, false otherwise.

bool ShowFontDirectories(UTF8Array &out_directories) const

Shows the font directories for Visualize.

Parameters

out_directories – Array of UTF8-encoded directory names.

Returns

true if font directories were specified, false otherwise.

bool ShowMaterialLibraryDirectory(UTF8 &out_directory) const

Shows the material library directory for Visualize.

Parameters

out_directory – UTF8-encoded directory name.

Returns

true if a material library directory was specified, false otherwise.

bool ShowParasolidBodyshopDirectory(UTF8 &out_directory) const

Shows the Parasolid Bodyshop directory.

Parameters

out_directory – UTF8-encoded directory name.

Returns

true if a Parasolid Bodyshop directory was specified, false otherwise.

bool ShowParasolidSchemaDirectory(UTF8 &out_directory) const

Shows the Parasolid schema directory.

Parameters

out_directory – UTF8-encoded directory name.

Returns

true if a Parasolid schema directory was specified, false otherwise.

bool ShowPublishResourceDirectory(UTF8 &out_directory) const

Shows the Publish resource directory.

Parameters

out_directory – UTF8-encoded directory name.

Returns

true if a Publish resource directory was specified, false otherwise.

World &UnsetDriverConfigFile()

Removes the driver configuration file for Visualize.

Returns

A reference to this World object.

World &UnsetExchangeLibraryDirectory()

Removes the Exchange and Publish library directory. Note, this will remove the previously specified directory from the PATH.

Returns

A reference to this World object.

World &UnsetFontDirectories()

Removes the font directories for Visualize.

Returns

A reference to this World object.

World &UnsetMaterialLibraryDirectory()

Removes the material library directory for Visualize.

Returns

A reference to this World object.

World &UnsetParasolidBodyshopDirectory()

Removes the Parasolid Bodyshop directory.

Returns

A reference to this World object.

World &UnsetParasolidSchemaDirectory()

Removes the Parasolid schema directory.

Returns

A reference to this World object.

World &UnsetPublishResourceDirectory()

Removes the Publish resource directory.

Returns

A reference to this World object.

World(char const *in_license, char const *in_code_generation_directory = nullptr)

This constructor creates a new World object with the given license. The license string determines what functionality is available in Visualize. There should only be one World object that is constructed during the life of the application. Optionally it is possible to start Code Generation, which logs every call to the HPS API for debugging purposes. While Code Generation is active, HPS performance will be slower than usual.

Parameters
  • in_license – UTF8-encoded license string for Visualize.

  • in_code_generation_directory – UTF8-encoded directory where the output of Code Generation will be stored. The directory must already exist.

~World()

The destructor will shutdown the database and invalidate all objects within it.

Public Static Functions

static void AddCodeGenerationComment(UTF8 const &in_comment)

Adds a comment to the generated code. Useful to guide a developer towards the source of a problem. Code Generation must be started before this function can be called.

Parameters

in_comment – A comment to be embedded in the code generation.

static bool IsInitialized()

Returns the state of the World

Returns

true if the World has been initialized; otherwise false if the World is not initialized or has been deconstructed.

static void StopCodeGeneration()

Stops Code Generation.

Public Static Attributes

static const HPS::Type staticType = HPS::Type::World