#pragma once
#ifndef __C4D_INL_
#define __C4D_INL_

#define WIN32_LEAN_AND_MEAN
#define VC_EXTRALEAN // Exclude rarely-used stuff from Windows headers
#define NOATOM
#define NOGDI
#define NOGDICAPMASKS
#define NOMETAFILE
#define NOMINMAX
#define NOMSG
#define NOOPENFILE
#define NORASTEROPS
#define NOSCROLL
#define NOSOUND
#define NOSYSMETRICS
#define NOTEXTMETRIC
#define NOWH
#define NOCOMM
#define NOKANJI
#define NOCRYPT
#define NOMCX


#include "c4d.h"	///test
//#include "Common/C4DPrint.h" //wrong results using PCH, do not include !

#include "c4d_string.cpp"

#include "c4d_file.inl" 		//size 24 KB
//#include "c4d_file.cpp"		//size 21 KB

#include "c4d_basedocument.inl"		//size 18 KB
//#include "c4d_basedocument.cpp"	//size 18 KB

#include "c4d_baselist.inl"			//size  8 KB
//#include "c4d_baselist.cpp"		//size  8 KB

#include "c4d_general.cpp"		//size 20 KB
#include "c4d_tools.cpp"		//size 21 KB
#include "c4d_basecontainer.cpp"//size  2 KB


#include "c4d_baseobject.cpp"	//size 26 KB
#include "c4d_basebitmap.cpp"	//size 16 KB
#include "c4d_basechannel.cpp"
#include "c4d_basedraw.cpp"
#include "c4d_basematerial.cpp"
#include "c4d_baseselect.cpp"
#include "c4d_basesound.cpp"
#include "c4d_basetag.cpp"
#include "c4d_basetime.cpp"
#include "c4d_bitmapfilter.cpp"

#include "c4d_canimation.cpp"
#include "c4d_coffee.cpp"
#include "c4d_customguidata.cpp"
#include "c4d_descriptiondialog.cpp"
#include "c4d_gedata.cpp"		//size  1 KB
#include "c4d_library.cpp"
#include "c4d_listview.cpp"
#include "c4d_painter.cpp"
#include "c4d_particleobject.cpp"
#include "c4d_quaternion.cpp"
#include "c4d_videopost.cpp"
#include "c4d_memory.cpp"		//size  6 KB	//for new

//#include "c4d_gui.cpp"  		//size 58 KB	//GeDialog and co

//#include "c4d_omp.cpp"		//size  4 KB
//#include "c4d_customdatatype.cpp"	//windows.h
//#include "c4d_thread_keys.cpp"	//windows.h	//..ThreadVariable

#include "c4d_thread.cpp"
///#include "c4d_omp.cpp"

//#include "c4d_resource.cpp"  //interpreter Crash !!!
//#include "c4d_customdatatype.cpp"	//windows.h
//#include "c4d_thread_keys.cpp"	//windows.h


/// c4d_plugins >>> we do not need this >>>
//#include "c4d_messageplugin.cpp"
//#include "c4d_nodeplugin.cpp"
//#include "c4d_objectplugin.cpp"
//#include "c4d_tagplugin.cpp"
//#include "c4d_toolplugin.cpp"
//#include "c4d_falloffplugin.cpp"
//#include "c4d_filterplugin.cpp"
//#include "c4d_commandplugin.cpp"
//#include "c4d_ctrackplugin.cpp"
//#include "c4d_baseplugin.cpp"
//#include "c4d_customguiplugin.cpp"
//#include "c4d_materialplugin.cpp"
//#include "c4d_scenehookplugin.cpp"
//#include "c4d_shaderplugin.cpp"
//#include "c4d_snapplugin.cpp"
//#include "c4d_videopostplugin.cpp"
//#include "c4d_baseeffectorplugin.cpp"		//31 KB


/// c4d_libs >>>
//#include "c4d_libs/lib_description.cpp"

/// c4d_misc\memory
///#include "c4d_misc/memory/debugglobals.cpp" //windows.h

//#include "c4d_gl.cpp"  //27 KB
//#include "ge_ieee.cpp" // CompareFloatTolerant
//#include "ge_sort.cpp" // GeSortAndSearchEx   DEPRECATED

//#include "c4d_pmain.cpp"			//DO NTO include this !!!
//#include "operatingsystem.cpp"	//DO NTO include this !!!


#ifdef __C4D_64BIT

static_assert(sizeof(C4D_General)== 1904 ,"C4D_General is not  1904  bytes big !!!");
static_assert(sizeof(C4D_Shader)== 1032 ,"C4D_Shader is not  1032  bytes big !!!");
static_assert(sizeof(C4D_HyperFile)== 552 ,"C4D_HyperFile is not  552  bytes big !!!");
static_assert(sizeof(C4D_BaseContainer)== 448 ,"C4D_BaseContainer is not  448  bytes big !!!");
static_assert(sizeof(C4D_String)== 312 ,"C4D_String is not  312  bytes big !!!");
static_assert(sizeof(C4D_Bitmap)== 776 ,"C4D_Bitmap is not  776  bytes big !!!");
static_assert(sizeof(C4D_MovieSaver)== 48 ,"C4D_MovieSaver is not  48  bytes big !!!");
static_assert(sizeof(C4D_BaseChannel)== 264 ,"C4D_BaseChannel is not  264  bytes big !!!");
static_assert(sizeof(C4D_Filename)== 240 ,"C4D_Filename is not  240  bytes big !!!");
static_assert(sizeof(C4D_File)== 280 ,"C4D_File is not  280  bytes big !!!");
static_assert(sizeof(C4D_BrowseFiles)== 136 ,"C4D_BrowseFiles is not  136  bytes big !!!");
static_assert(sizeof(C4D_Dialog)== 504 ,"C4D_Dialog is not  504  bytes big !!!");
static_assert(sizeof(C4D_UserArea)== 576 ,"C4D_UserArea is not  576  bytes big !!!");
static_assert(sizeof(C4D_Parser)== 144 ,"C4D_Parser is not  144  bytes big !!!");
static_assert(sizeof(C4D_Resource)== 56 ,"C4D_Resource is not  56  bytes big !!!");
static_assert(sizeof(C4D_BaseList)== 344 ,"C4D_BaseList is not  344  bytes big !!!");
static_assert(sizeof(C4D_Tag)== 136 ,"C4D_Tag is not  136  bytes big !!!");
static_assert(sizeof(C4D_Object)== 1360 ,"C4D_Object is not  1360  bytes big !!!");
static_assert(sizeof(C4D_Document)== 816 ,"C4D_Document is not  816  bytes big !!!");
static_assert(sizeof(C4D_Thread)== 336 ,"C4D_Thread is not  336  bytes big !!!");
static_assert(sizeof(C4D_Material)== 144 ,"C4D_Material is not  144  bytes big !!!");
static_assert(sizeof(C4D_Texture)== 80 ,"C4D_Texture is not  80  bytes big !!!");
static_assert(sizeof(C4D_BaseSelect)== 200 ,"C4D_BaseSelect is not  200  bytes big !!!");
static_assert(sizeof(C4D_BaseSound)== 160 ,"C4D_BaseSound is not  160  bytes big !!!");
static_assert(sizeof(C4D_BaseDraw)== 736 ,"C4D_BaseDraw is not  736  bytes big !!!");
static_assert(sizeof(C4D_BaseView)== 480 ,"C4D_BaseView is not  480  bytes big !!!");
static_assert(sizeof(C4D_Neighbor)== 64 ,"C4D_Neighbor is not  64  bytes big !!!");
static_assert(sizeof(C4D_Pool)== 56 ,"C4D_Pool is not  56  bytes big !!!");
static_assert(sizeof(C4D_Painter)== 704 ,"C4D_Painter is not  704  bytes big !!!");
static_assert(sizeof(C4D_Link)== 136 ,"C4D_Link is not  136  bytes big !!!");
static_assert(sizeof(C4D_GeData)== 240 ,"C4D_GeData is not  240  bytes big !!!");
static_assert(sizeof(C4D_Atom)== 664 ,"C4D_Atom is not  664  bytes big !!!");
static_assert(sizeof(C4D_Coffee)== 344 ,"C4D_Coffee is not  344  bytes big !!!");
static_assert(sizeof(C4D_CAnimation)== 560 ,"C4D_CAnimation is not  560  bytes big !!!");

#endif //__C4D_64BIT


#endif //__C4D_INL_