Models¶
-
class
fluxEngine
::
Model
¶ A runtime model.
This class wraps a runtime model that has been loaded into fluxEngine.
The default constructor does not actually create an object, the user must use one of the other constructors to actually load a model.
Public Functions
-
Model
() = default¶ Default constructor.
The object created by this constructor is not a valid model.
-
inline
Model
(Handle &handle, void const *modelData, std::size_t modelDataSize)¶ Load a model from memory.
This constructor allows the user to supply fluxEngine with a serialized runtime model that the user has already loaded into memory.
If the user destroys the library handle while this object still exists, this object will be marked as invalid. It must still be destroyed to avoid resource leaks.
If an error occurs, an exception will be thrown. The following exceptions may be thrown by this constructor:
std::bad_alloc
std::invalid_argument
- Parameters
handle
: The fluxEngine handle. This is required as the loaded license determines whether specific features within a model are allowedmodelData
: The raw binary data of the modelmodelDataSize
: The raw binary size of the model, in bytes
-
inline
Model
(Handle &handle, std::vector<std::byte> const &modelData)¶ Load a model from memory (convenience wrapper)
If the runtime model binary data is present as a
std::vector<std::byte>
this convenience wrapper exists to allow the user to use that to load the model.This wrapper is only available when compiling with a compiler that supports C++17.
See the documentation for the primary constructor for more details.
- Parameters
handle
: The fluxEngine handle. This is required as the loaded license determines whether specific features within a model are allowedmodelData
: The raw binary data of the model
-
inline
Model
(Handle &handle, FromFile_Tag, std::string fileName)¶ Load a model from disk.
This contructor allows the user to load a runtime model from a file. Example usage:
Model model(handle, Model::FromFile, "model.fluxmdl");
Note to Windows users: the file path specified here must be encoded in the local codepage, which is not able to encode all possible file names that Windows supports. It is highly recommended to use the wide string overload of this constructor on Windows, which accepts a wide (“Unicode”) file name and does support all possible file names that Windows supports. If this 8bit version is used on Windows with an encoding different from the local codepage, this constructor will very likely fail.
If the user destroys the library handle while this object still exists, this object will be marked as invalid. It must still be destroyed to avoid resource leaks.
If an error occurs, an exception will be thrown. The following exceptions may be thrown by this constructor:
std::bad_alloc
std::invalid_argument
- Parameters
handle
: The fluxEngine handle. This is required as the loaded license determines whether specific features within a model are allowedfileName
: The name of the file to load
-
inline
Model
(Handle &handle, FromFile_Tag, std::wstring fileName)¶ Load a model from disk (Windows wide “Unicode” variant)
This contructor is identical to the other constructor that loads a file, but it takes a wide (“Unicode”) filename of Windows systems, to support opening files that can’t be encoded in the local codepage. Example usage:
Model model(handle, Model::FromFile, L"model.fluxmdl");
Note
This function is only available on Windows and does not exist on other operating systems.
Please refer to the documentation of the constructor for standard 8bit filenames for details on the behavior of this function beyond the encoding of the filename.
- Parameters
handle
: The fluxEngine handle. This is required as the loaded license determines whether specific features within a model are allowedfileName
: The name of the file to load, as a wide (“Unicode”) string
-
inline
Model
(Model &&other) noexcept¶ Move constructor.
- Parameters
other
: The model to move into the newly created object
-
inline Model &
operator=
(Model &&other) noexcept¶ Move assginment operator.
- Return
A reference to
this
- Parameters
other
: The model to move into this object
-
inline
~Model
()¶ Destructor.
Destroys a model, freeing its resources.
-
inline int
numGroups
() const¶ Get the number of groups in a model.
If an error occurs, one of the following exceptions may be thrown:
std::bad_alloc
std::invalid_argument
- Return
The number of groups
-
inline GroupInfo
groupInfo
(int groupId) const¶ Get the group information for a given group.
Returns information about a group in a model. This consists of the name of the group (encoded as UTF-8) as well as a color value as a 32bit integer. See the GroupInfo structure for further details.
The group id must be within
0
and one less than the number of groups in the model. For example, a model with 5 groups will have the ids0
,1
,2,
3
, and4
.Another method, groupInfos(), will return a
std::vector
of all groups in the model.If an error occurs, one of the following exceptions may be thrown:
std::bad_alloc
std::invalid_argument
std::out_of_range
- Return
The information about that group
- Parameters
groupId
: The id of the group to obtain the information about
-
inline std::vector<GroupInfo>
groupInfos
() const¶ Get the information about all groups in a model.
This helper function obtains the information about all groups in the current model and returns them as a vector. The index of that vector is the id of the group.
If an error occurs, one of the following exceptions may be thrown:
std::bad_alloc
std::invalid_argument
std::out_of_range
- Return
A vector of the information of all groups in the model
-
inline explicit
operator bool
() const noexcept¶ Boolean conversion operator.
This allows the user to easily check if a variable of this type currently holds a valid model. For example:
if (model) { // the model is valid }
-
struct
FromFile_Tag
¶ Tag structure to differentiate constructors.
This structure allows the user to indicate they want to call a constructor that will load a file from disk.
-
struct
GroupInfo
¶ Group information.
This structure contains the information about a group that is stored within a given runtime model.
Public Functions
-
inline uint8_t
colorRedComponentValue
() const noexcept¶ Obtain the red color component value.
Obtains the red component value of the color of the group, in a range of
0
through255
.This helper function exists to make interpreting a given color simpler.
- Return
The red color component value
-
inline uint8_t
colorGreenComponentValue
() const noexcept¶ Obtain the green color component value.
Obtains the green component value of the color of the group, in a range of
0
through255
.This helper function exists to make interpreting a given color simpler.
- Return
The green color component value
-
inline uint8_t
colorBlueComponentValue
() const noexcept¶ Obtain the blue color component value.
Obtains the blue component value of the color of the group, in a range of
0
through255
.This helper function exists to make interpreting a given color simpler.
- Return
The blue color component value
-
inline uint8_t
-