/***************************************************************************
*                                                                          *
*  Copyright (C) Golaem S.A.  All Rights Reserved.                         *
*                                                                          *
****************************************************************************/

#pragma once

#ifdef __clang__
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wreturn-type-c-linkage"
#pragma clang diagnostic ignored "-Wunused-local-typedef"
#endif

#ifndef _MSC_VER
#pragma GCC system_header
#undef Bool // avoid conflicts with X11
#endif

#if !defined(_USE_MATH_DEFINES)
#define _USE_MATH_DEFINES //needed before Apex to avoid multiple define of M_SQRT1_2
#endif

#include <math.h> //needed before Apex to avoid multiple define of M_SQRT1_2
#include <glmPhysX.h>

#ifdef _MSC_VER
#pragma warning(push)
#pragma warning(disable : 4458)
#endif

#ifndef _MSC_VER
#undef GrayScale
#undef CursorShape
#undef FontChange
#undef KeyRelease
#undef KeyPress
#undef FocusIn
#undef FocusOut
#undef Size
#undef Unsorted
#undef None
#undef Status
#undef Bool
#undef Expose
#endif

//Apex inclusion
#include <ModuleClothing.h>
#include <ModuleLegacy.h>

#include <UserRenderResourceManager.h>
#include <UserRenderVertexBuffer.h>
#include <UserRenderInstanceBuffer.h>

#include <ApexScene.h>
//#include <Asset.h>	//in ClothingActor
//#include <NxApexActor.h>	//in ClothingActor
#include <ClothingActor.h>
#include <RenderMeshAsset.h>
#include <RenderMesh.h>
#include <ClothingCollision.h>
#include <ClothingPhysicalMesh.h>
#include <ClothingAsset.h>
#include <ClothingAssetAuthoring.h>
#include <ClothingAssetParameters.h>
#include <ClothingMaterialLibraryParameters.h>

//for render
#include <RenderDebug.h>
#include <ClothingRenderProxy.h>
#include <UserRenderer.h>
//#include <ApexRenderContext.h>
#include <UserRenderResource.h>
#include <UserRenderIndexBufferDesc.h>
#include <UserRenderIndexBuffer.h>
#include <UserRenderSurfaceBufferDesc.h>
#include <UserRenderSurfaceBuffer.h>
#include <UserRenderBoneBufferDesc.h>
#include <UserRenderBoneBuffer.h>
#include <UserRenderInstanceBufferDesc.h>
#include <UserRenderInstanceBuffer.h>
#include <UserRenderSpriteBufferDesc.h>
#include <UserRenderSpriteBuffer.h>
#include <UserRenderResourceDesc.h>
#include <UserRenderResource.h>

#ifdef __clang__
#pragma clang diagnostic pop
#endif

#ifdef _MSC_VER
#pragma warning(pop)
#endif