Game Engine
Architected a C++ game engine with a runtime reflection system - employing Chain of
Loading...
Searching...
No Matches
Fiea::Engine::Tests Namespace Reference

Namespaces

namespace  Support

Classes

struct  AnimationFrame
 This is a data structure containing joint rotations to shift the skeleton from it's default T-pose into another pose. More...
struct  Bone
 Bone is the heart of this system. Each bone can be visualized as a ball joint, which is anchored at the terminal end of a "Parent" bone and oriented in the specified direction, and with a rod/bone of the specified length extending from it. Bones may only have a single "Parent," but many may be parented to a shared parent (note PELVIS in the data structure below, which has 3 bones extending from it) More...
struct  HasFind
struct  HasFind< C, typename std::enable_if< std::is_same< decltype(std::declval< C >().find(std::declval< typename C::value_type >())), void >::value >::type >
struct  HasPushBack
struct  HasPushBack< C, typename std::enable_if< std::is_same< decltype(std::declval< C >().push_back(std::declval< typename C::value_type >())), void >::value >::type >
struct  HasPushFront
struct  HasPushFront< C, typename std::enable_if< std::is_same< decltype(std::declval< C >().push_front(std::declval< typename C::value_type >())), void >::value >::type >
struct  HasReserve
struct  HasReserve< C, typename std::enable_if< std::is_same< decltype(std::declval< C >().reserve(std::declval< typename C::size_type >())), void >::value >::type >
class  Obj
struct  Skeleton
 Basic skeleton, which is just a collection of bones that will form a tree extending from the root. More...
class  TestGameObject

Typedefs

using Vec4 = f32vec4
using Vec3 = f32vec3
using Mat4x4 = f32mat4x4

Enumerations

enum class  BoneSegment : size_t {
  ROOT , PELVIS , BACK , HEAD ,
  L_SHOULDER , L_UPPERARM , L_FOREARM , R_SHOULDER ,
  R_UPPERARM , R_FOREARM , L_HIP , L_THIGH ,
  L_CALF , R_HIP , R_THIGH , R_CALF ,
  COUNT , NONE = COUNT
}
 This enumeration provides the bones for our skeleton. More...

Functions

 TEST_CLASS (ActionIncrementTest)
 TEST_CLASS (ActionAddDatumTest)
 TEST_CLASS (AsyncTest)
 TEST_CLASS (AttributedTestForAttributeBox)
 TEST_CLASS (AttributedTestForAttributeBoxPlus)
template<typename C>
std::enable_if_t<!HasReserve< C >::value > Reserve (C &, size_t)
template<typename C>
std::enable_if_t< HasReserve< C >::value > Reserve (C &c, size_t n)
template<typename C>
std::enable_if_t<!HasPushBack< C >::value > Push_Back (C &c, const typename C::value_type &n)
 Templated Push_Back function for containers that don't have a push_back function @type C container type.
template<typename C>
std::enable_if_t< HasPushBack< C >::value > Push_Back (C &c, const typename C::value_type &n)
 Templated Push_Back function for containers that have a push_back function @type C container type.
template<typename C>
std::enable_if_t<!HasPushFront< C >::value > Push_Front (C &c, const typename C::value_type &n)
 Templated Push_Front function for containers that don't have a push_front function @type C container type.
template<typename C>
std::enable_if_t< HasPushFront< C >::value > Push_Front (C &c, const typename C::value_type &n)
 Templated Push_Front function for containers that have a push_front function @type C container type.
template<typename C>
std::enable_if_t<!HasFind< C >::value, bool > Find (C &c, const typename C::value_type &n)
 Templated Find function for containers that don't have a find() function @type C container type.
template<typename C>
std::enable_if_t< HasFind< C >::value, bool > Find (C &c, const typename C::value_type &n)
 Templated Find function for containers that have a find() function @type C container type.
 TEST_CLASS (ContainerTest)
 TEST_CLASS (CoreTests)
 TEST_CLASS (DatumTests)
 TEST_CLASS (FactoryTests)
 TEST_CLASS (FooTests)
 TEST_CLASS (GameObjectTests)
 TEST_CLASS (HeapTest)
bool DeserializeJson (std::istream &jsonStream, Json::Value &root)
 TEST_CLASS (JsonCppTest)
 TEST_CLASS (JsonParserTest)
 TEST_CLASS (ListTests)
 TEST_CLASS (MemoryServiceTest)
 TEST_CLASS (RTTITests)
 TEST_CLASS (ScopeParserTest)
 TEST_CLASS (ScopeTests)
 TEST_CLASS (ServiceProviderTest)
 TEST_CLASS (SkeletonTest)
 TEST_CLASS (AttributeBoxTests)
 TEST_CLASS (AttributeBoxPlusTests)

Typedef Documentation

◆ Mat4x4

using Fiea::Engine::Tests::Mat4x4 = f32mat4x4

◆ Vec3

using Fiea::Engine::Tests::Vec3 = f32vec3

◆ Vec4

using Fiea::Engine::Tests::Vec4 = f32vec4

Enumeration Type Documentation

◆ BoneSegment

enum class Fiea::Engine::Tests::BoneSegment : size_t
strong

This enumeration provides the bones for our skeleton.

Enumerator
ROOT 
PELVIS 
BACK 
HEAD 
L_SHOULDER 
L_UPPERARM 
L_FOREARM 
R_SHOULDER 
R_UPPERARM 
R_FOREARM 
L_HIP 
L_THIGH 
L_CALF 
R_HIP 
R_THIGH 
R_CALF 
COUNT 
NONE 

Function Documentation

◆ DeserializeJson()

bool Fiea::Engine::Tests::DeserializeJson ( std::istream & jsonStream,
Json::Value & root )
Here is the caller graph for this function:

◆ Find() [1/2]

template<typename C>
std::enable_if_t<!HasFind< C >::value, bool > Fiea::Engine::Tests::Find ( C & c,
const typename C::value_type & n )

Templated Find function for containers that don't have a find() function @type C container type.

Parameters
cThe container in which the element will be inserted
nThe element's value that will be inserted into the container
Here is the caller graph for this function:

◆ Find() [2/2]

template<typename C>
std::enable_if_t< HasFind< C >::value, bool > Fiea::Engine::Tests::Find ( C & c,
const typename C::value_type & n )

Templated Find function for containers that have a find() function @type C container type.

Parameters
cThe container in which the element will be inserted
nThe element's value that will be inserted into the container

◆ Push_Back() [1/2]

template<typename C>
std::enable_if_t<!HasPushBack< C >::value > Fiea::Engine::Tests::Push_Back ( C & c,
const typename C::value_type & n )

Templated Push_Back function for containers that don't have a push_back function @type C container type.

Parameters
cThe container in which the element will be inserted
nThe element's value that will be inserted into the container
Here is the caller graph for this function:

◆ Push_Back() [2/2]

template<typename C>
std::enable_if_t< HasPushBack< C >::value > Fiea::Engine::Tests::Push_Back ( C & c,
const typename C::value_type & n )

Templated Push_Back function for containers that have a push_back function @type C container type.

Parameters
cThe container in which the element will be inserted
nThe element's value that will be inserted into the container

◆ Push_Front() [1/2]

template<typename C>
std::enable_if_t<!HasPushFront< C >::value > Fiea::Engine::Tests::Push_Front ( C & c,
const typename C::value_type & n )

Templated Push_Front function for containers that don't have a push_front function @type C container type.

Parameters
cThe container in which the element will be inserted
nThe element's value that will be inserted into the container
Here is the caller graph for this function:

◆ Push_Front() [2/2]

template<typename C>
std::enable_if_t< HasPushFront< C >::value > Fiea::Engine::Tests::Push_Front ( C & c,
const typename C::value_type & n )

Templated Push_Front function for containers that have a push_front function @type C container type.

Parameters
cThe container in which the element will be inserted
nThe element's value that will be inserted into the container

◆ Reserve() [1/2]

template<typename C>
std::enable_if_t<!HasReserve< C >::value > Fiea::Engine::Tests::Reserve ( C & ,
size_t  )
Here is the caller graph for this function:

◆ Reserve() [2/2]

template<typename C>
std::enable_if_t< HasReserve< C >::value > Fiea::Engine::Tests::Reserve ( C & c,
size_t n )

◆ TEST_CLASS() [1/23]

Fiea::Engine::Tests::TEST_CLASS ( ActionAddDatumTest )
Here is the call graph for this function:

◆ TEST_CLASS() [2/23]

Fiea::Engine::Tests::TEST_CLASS ( ActionIncrementTest )
Here is the call graph for this function:

◆ TEST_CLASS() [3/23]

Fiea::Engine::Tests::TEST_CLASS ( AsyncTest )
Here is the call graph for this function:

◆ TEST_CLASS() [4/23]

Fiea::Engine::Tests::TEST_CLASS ( AttributeBoxPlusTests )
Here is the call graph for this function:

◆ TEST_CLASS() [5/23]

Fiea::Engine::Tests::TEST_CLASS ( AttributeBoxTests )
Here is the call graph for this function:

◆ TEST_CLASS() [6/23]

Fiea::Engine::Tests::TEST_CLASS ( AttributedTestForAttributeBox )
Here is the call graph for this function:

◆ TEST_CLASS() [7/23]

Fiea::Engine::Tests::TEST_CLASS ( AttributedTestForAttributeBoxPlus )
Here is the call graph for this function:

◆ TEST_CLASS() [8/23]

Fiea::Engine::Tests::TEST_CLASS ( ContainerTest )

Returns a value of type T

Parameters
numThe value that needs to be typecasted
Returns
A value that is typecasted to T

Specialized template function that returns a value of type string

Parameters
numThe value that needs to be typecasted
Returns
A value that is typecasted to T

Specialized template function that returns a value of type Foo

Parameters
numThe value that needs to be typecasted
Returns
A value that is typecasted to T
Here is the call graph for this function:

◆ TEST_CLASS() [9/23]

Fiea::Engine::Tests::TEST_CLASS ( CoreTests )

◆ TEST_CLASS() [10/23]

Fiea::Engine::Tests::TEST_CLASS ( DatumTests )
Here is the call graph for this function:

◆ TEST_CLASS() [11/23]

Fiea::Engine::Tests::TEST_CLASS ( FactoryTests )
Here is the call graph for this function:

◆ TEST_CLASS() [12/23]

Fiea::Engine::Tests::TEST_CLASS ( FooTests )
Here is the call graph for this function:

◆ TEST_CLASS() [13/23]

Fiea::Engine::Tests::TEST_CLASS ( GameObjectTests )
Here is the call graph for this function:

◆ TEST_CLASS() [14/23]

Fiea::Engine::Tests::TEST_CLASS ( HeapTest )
Here is the call graph for this function:

◆ TEST_CLASS() [15/23]

Fiea::Engine::Tests::TEST_CLASS ( JsonCppTest )
Here is the call graph for this function:

◆ TEST_CLASS() [16/23]

Fiea::Engine::Tests::TEST_CLASS ( JsonParserTest )
Here is the call graph for this function:

◆ TEST_CLASS() [17/23]

Fiea::Engine::Tests::TEST_CLASS ( ListTests )
Here is the call graph for this function:

◆ TEST_CLASS() [18/23]

Fiea::Engine::Tests::TEST_CLASS ( MemoryServiceTest )
Here is the call graph for this function:

◆ TEST_CLASS() [19/23]

Fiea::Engine::Tests::TEST_CLASS ( RTTITests )
Here is the call graph for this function:

◆ TEST_CLASS() [20/23]

Fiea::Engine::Tests::TEST_CLASS ( ScopeParserTest )
Here is the call graph for this function:

◆ TEST_CLASS() [21/23]

Fiea::Engine::Tests::TEST_CLASS ( ScopeTests )
Here is the call graph for this function:

◆ TEST_CLASS() [22/23]

Fiea::Engine::Tests::TEST_CLASS ( ServiceProviderTest )
Here is the call graph for this function:

◆ TEST_CLASS() [23/23]

Fiea::Engine::Tests::TEST_CLASS ( SkeletonTest )

This test case simply outputs the skeleton in world coordinates

In this test, a single joint animation is applied to rotate the character at the waist

An entire animation frame, producing a "programmer art" version of a superhero landing pose

A helper function to convert from euler angles into a rotation matrix

Parameters
eulersThe euler angles to produce a rotation matrix from
Returns
The matrix

A helper function to convert from a rotation matrix into euler angles

Parameters
matrixA rotation matrix to extract euler angles from
Returns
The euler angles, expressed as a vector

Converts the skeletons local definition into a sequence of positions where each bone terminates, in world coordinates

Parameters
skellyThe skeleton to extract positional information from
worldPositionsAn output array for the positional data
positionCountThe size of the output array

Modifies the provided skeleton by applying the animation frame to it

Parameters
skellyThe skeleton to modify
frameThe animation data

Outputs the joint positions, organized either as a collection of points or a series of vectors between two points, or both

Parameters
skellyThe skeleton, for the parentage information required to draw bones
worldPositionsThe position of the terminal point for each bone
positionCountThe number of entries in the positions array (which should match the number of bones in the skelly)