3#include <Infinity/api.h>
4#include <Infinity/IO/Filetype.hpp>
13class ProceduralComponentDescriptionImpl;
166 std::unique_ptr<ProceduralComponentDescriptionImpl> _impl;
168 friend class Infinity::Procedural::ProceduralComponentDescriptionImpl;
Description and configuration data for a ProceduralComponent instance.
Definition ProceduralComponentDescription.hpp:48
ProceduralComponentDescription(const ProceduralComponentDescription ©)
Copy constructor.
ProceduralComponentDescription(const uint8_t *buffer, const size_t size, const std::filesystem::path &loadPath={})
Creates a ProceduralComponentDescription from a binary FlatBuffer.
friend INFINITY_API_PUBLIC std::ostream & operator<<(std::ostream &os, const ProceduralComponentDescription &desc)
Stream insertion operator for debugging and logging.
ProceduralComponentDescription(const std::filesystem::path &loadPath)
Loads a ProceduralComponentDescription from a file.
void dump(const std::filesystem::path &path, Infinity::IO::Filetype type=Infinity::IO::Filetype::Flatbuffer) const
Serializes this description to a file.
ProceduralComponentDescription & operator=(const ProceduralComponentDescription ©)
Copy assignment operator.
const std::filesystem::path & getLoadPath() const
Gets the package path associated with this description.
ProceduralComponentDescription & operator=(ProceduralComponentDescription &&other)
Move assignment operator.
bool isFilePCDFlatbuffer(const std::filesystem::path &filepath)
Checks if a file is a FlatBuffer-format component description.
ProceduralComponentDescription(ProceduralComponentDescription &&other)
Move constructor.
ProceduralComponentDescription(const std::string &yamlString, const std::filesystem::path &loadPath={})
Creates a ProceduralComponentDescription from a YAML string.
~ProceduralComponentDescription()
Destructor.
Filetype
Enumeration of supported file formats for serialization and deserialization.
Definition Filetype.hpp:17
@ Flatbuffer
Definition Filetype.hpp:18
Definition ComponentException.hpp:7