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);
|
||
|
};
|
||
|
}
|