Home

Resume

Blog

Teikitu


/* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */
/*  »Project«   Teikitu Gaming System (TgS) (∂)
    »File«      TgS Set - Type.h
    »Author«    Andrew Aye (EMail: mailto:andrew.aye@gmail.com, Web: http://www.andrewaye.com)
    »Version«   4.51 / »GUID« A9981407-3EC9-42AF-8B6F-8BE6DD919615                                                                                                        */
/*   -------------------------------------------------------------------------------------------------------------------------------------------------------------------- */
/*  Copyright: © 2002-2017, Andrew Aye.  All Rights Reserved.
    This software is free for non-commercial use.  Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
      following conditions are met:
        Redistribution of source code must retain this copyright notice, this list of conditions and the following disclaimers.
        Redistribution in binary form must reproduce this copyright notice, this list of conditions and the following disclaimers in the documentation and other materials
          provided with the distribution.
    The name of the author may not be used to endorse or promote products derived from this software without specific prior written permission.
    The intellectual property rights of the algorithms used reside with Andrew Aye.
    You may not use this software, in whole or in part, in support of any commercial product without the express written consent of the author.
    There is no warranty or other guarantee of fitness of this software for any purpose. It is provided solely "as is".                                                   */
/* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */
#if !defined(_TGS_SET_TYPE_H_)
#define _TGS_SET_TYPE_H_
#pragma once

#if !defined(_TGS_PLATFORM_SET_H_)
#error This file should not be included directly - use the correct platform include wrapper
#endif

#include "TgS Ring 4 - Type.h"


/* == Set ============================================================================================================================================================ */

/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. */
/*  Public Types                                                                                                                                                          */
/* -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. */

TgTYPE_STRUCT_ALIGN(STg2_SE_Frame_Mesh,16,)
{
    TgRN_MESH_SET_ID                          m_tiMesh_Set;
    TgSINT32                                  m_iLOD_Index;
    TgUINT32                                  m_uiFlags;

    TgVEC_M_F32_04                            m_vPrev_Pos_W;
    TgVEC_M_F32_04                            m_qPrev_Rot_W;
    TgVEC_M_F32_04                            m_vPrev_Scale;

    TgVEC_M_F32_04                            m_vPos_W;
    TgVEC_M_F32_04                            m_qRot_W;
    TgVEC_M_F32_04                            m_vScale;

    TgVEC_M_F32_04                            m_vBA_Max_W;
    TgVEC_M_F32_04                            m_vBA_Min_W;

    TgVEC_M_F32_04                            m_vAmbient;
    P_TgSINT32                                m_aiLight_List;
    TgSINT32                                  m_niLight;
    TgSINT32                                  m_iPad0;
    TgRN_MATERIAL_ID                          m_tiMaterial;

    TgAM_SKELETON_ID                          m_tiSkeleton_0;
    TgAM_SKELETON_ID                          m_tiSkeleton_1;
    TgSINT32                                  m_iPad1[2];
};

TgTYPE_STRUCT_ALIGN(STg2_SE_View, 16,)
{
    CP_STg2_RN_Cxt_Camera                       m_psCamera;
    TgRN_TARGET_ID                              m_tiRN_Target;
    TgUINTXX                                    m_uiGUID;

    P_TgSINT32                                  m_apiFrame_Inst[ETgSE_DRAW_TYPE__MAX];
    TgATOMIC_SINT32                             m_aniFrame_Inst[ETgSE_DRAW_TYPE__MAX];
    TgSINT32                                    m_aniMax_Frame_Inst[ETgSE_DRAW_TYPE__MAX];
    TgUINT64                                    m_uiPad0;
};

TgTYPE_STRUCT_ALIGN(STg2_SE_Context, 16,)
{
#if TgCOMPILE_RENDER_DEBUG_OUTPUT
    CP_STg2_RN_Cxt_Camera                       m_psDebug_Camera;
    TgUINT64                                    m_uiPad0;
/*# TgCOMPILE_RENDER_DEBUG_OUTPUT */
#endif

    /* Input */
    STg2_SE_View                                m_asView[KTgSE_MAX_VIEW];

    /* Context | Scene Data */
    P_STg2_SE_Frame_Mesh                        m_asFrame_Mesh_Set;
    TgSINT32                                    m_niFrame_Mesh_Set;
    TgSINT32                                    m_niMax_Frame_Mesh_Set;
};

TgTYPE_STRUCT_ALIGN( STg2_SE_CO_Request_F32_04, 16,)
{
    STg2_CO_Request_F32_04                      m_sCollision_Request;

    TgOBJECT_INST_ID                            m_tiMainObject; /*« The object that initiated this collision call */
    TgOBJECT_INST_ID                            m_tiObject_Graph_Ignored[KTgOB_MAX_OBJECT_IGNORE];
    TgOBJECT_INST_ID                            m_tiObject_Ignored[KTgOB_MAX_OBJECT_IGNORE];
    TgUINT32                                    m_uiPad0;
    TgUINT32                                    m_uiPad1;
};


/* ====================================================================================================================================================================== */
#endif