54 lines
2.3 KiB
C++
54 lines
2.3 KiB
C++
/************************************************************************************//*!
|
|
\file SHSerializationTools.h
|
|
\author Tng Kah Wei, kahwei.tng, 390009620
|
|
\par email: kahwei.tng\@digipen.edu
|
|
\date Oct 22, 2022
|
|
\brief Contains the class definition of SHSerializationTools.
|
|
|
|
|
|
Copyright (C) 2022 DigiPen Institute of Technology.
|
|
Reproduction or disclosure of this file or its contents without the prior written consent
|
|
of DigiPen Institute of Technology is prohibited.
|
|
*//*************************************************************************************/
|
|
#pragma once
|
|
|
|
// External Dependencies
|
|
#include <yaml-cpp/yaml.h>
|
|
// Project Includes
|
|
#include "SH_API.h"
|
|
#include "Math/Vector/SHVec2.h"
|
|
#include "Math/Vector/SHVec3.h"
|
|
#include "Math/Vector/SHVec4.h"
|
|
|
|
namespace SHADE
|
|
{
|
|
/*************************************************************************************/
|
|
/*!
|
|
\brief
|
|
Static class that contains useful functions for converting values to YAML Nodes
|
|
and vice versa.
|
|
*/
|
|
/*************************************************************************************/
|
|
class SH_API SHSerializationTools
|
|
{
|
|
public:
|
|
/*---------------------------------------------------------------------------------*/
|
|
/* Constructors */
|
|
/*---------------------------------------------------------------------------------*/
|
|
SHSerializationTools() = delete;
|
|
|
|
/*---------------------------------------------------------------------------------*/
|
|
/* YAML Serialization Functions */
|
|
/*---------------------------------------------------------------------------------*/
|
|
static YAML::Node ValToYAML(const SHVec2& vec);
|
|
static YAML::Node ValToYAML(const SHVec3& vec);
|
|
static YAML::Node ValToYAML(const SHVec4& vec);
|
|
|
|
/*---------------------------------------------------------------------------------*/
|
|
/* YAML Deserialization Functions */
|
|
/*---------------------------------------------------------------------------------*/
|
|
static SHVec2 YAMLToVec2(const YAML::Node& node);
|
|
static SHVec3 YAMLToVec3(const YAML::Node& node);
|
|
static SHVec4 YAMLToVec4(const YAML::Node& node);
|
|
};
|
|
} |