Starting work on drawing program layers
This commit is contained in:
parent
c2e85e8a62
commit
a29c5dc926
14 changed files with 334 additions and 138 deletions
50
src/DrawingProgram/Layers/DrawingProgramLayerListItem.hpp
Normal file
50
src/DrawingProgram/Layers/DrawingProgramLayerListItem.hpp
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
#pragma once
|
||||
#include <Helpers/NetworkingObjects/NetObjManager.hpp>
|
||||
#include <Helpers/NetworkingObjects/NetObjOrderedList.hpp>
|
||||
#include <Helpers/NetworkingObjects/DelayUpdateSerializedClassManager.hpp>
|
||||
#include "DrawingProgramLayerFolder.hpp"
|
||||
#include "DrawingProgramLayer.hpp"
|
||||
|
||||
class DrawingProgramLayerFolder;
|
||||
class DrawingProgramLayer;
|
||||
class World;
|
||||
|
||||
class DrawingProgramLayerListItem {
|
||||
public:
|
||||
DrawingProgramLayerListItem();
|
||||
DrawingProgramLayerListItem(NetworkingObjects::NetObjManager& netObjMan, const std::string& initName, bool isFolder);
|
||||
bool is_folder() const;
|
||||
DrawingProgramLayerFolder& get_folder() const;
|
||||
DrawingProgramLayer& get_layer() const;
|
||||
static void register_class(World& w);
|
||||
void reassign_netobj_ids_call();
|
||||
|
||||
void set_name(NetworkingObjects::DelayUpdateSerializedClassManager& delayedNetObjMan, const std::string& newName) const;
|
||||
const std::string& get_name() const;
|
||||
|
||||
void set_alpha(NetworkingObjects::DelayUpdateSerializedClassManager& delayedNetObjMan, float newAlpha) const;
|
||||
float get_alpha() const;
|
||||
|
||||
void set_visible(NetworkingObjects::DelayUpdateSerializedClassManager& delayedNetObjMan, bool newVisible) const;
|
||||
bool get_visible() const;
|
||||
private:
|
||||
static void write_constructor_func(const NetworkingObjects::NetObjTemporaryPtr<DrawingProgramLayerListItem>& o, cereal::PortableBinaryOutputArchive& a);
|
||||
static void read_constructor_func(const NetworkingObjects::NetObjTemporaryPtr<DrawingProgramLayerListItem>& o, cereal::PortableBinaryInputArchive& a, const std::shared_ptr<NetServer::ClientData>& c);
|
||||
std::unique_ptr<DrawingProgramLayerFolder> folderData;
|
||||
std::unique_ptr<DrawingProgramLayer> layerData;
|
||||
struct NameData {
|
||||
std::string name;
|
||||
template <typename Archive> void serialize(Archive& a) {
|
||||
a(name);
|
||||
}
|
||||
};
|
||||
struct DisplayData {
|
||||
float alpha = 1.0f;
|
||||
bool visible = true;
|
||||
template <typename Archive> void serialize(Archive& a) {
|
||||
a(alpha, visible);
|
||||
}
|
||||
};
|
||||
NetworkingObjects::NetObjOwnerPtr<NameData> nameData;
|
||||
NetworkingObjects::NetObjOwnerPtr<DisplayData> displayData;
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue