//
//	Copyright © Nemetschek North America, Inc  2005.
//	All Rights Reserved.


#ifdef _WINDOWS
# include <Windows.h>
# include <GSWinSDK.h>	// Graphsoft Required.
#else
# ifdef _DEBUG
#  include "GSBug.h"
# else
#include "GSRELEASE.h"
# endif
#endif

////////////////////////////////////////////////////////////////
// VW SDK
#include <MCCoordTypes.h>
#include <MiniCadHookIntf.h>
#include <GSESetup.h>
#include <MiniCadCallBacks.h>
#include <GSString.h>
#include <GSTypes.h>
#include <MCMatrix.h>

#include <RecordHandler.h>
#include <ExtendedProperties.h>

[!if ADD_VWFC_SUPPORT]
////////////////////////////////////////////////////////////////
// VWFC
[!if PLUGINTYPE_LISTBOX == 0]
#define	VWFC_APPLICATION_LIBRARY
#define	PLUGIN_NAME		"[!output PROJECT_NAME] Library"
[!endif]
[!if PLUGINTYPE_LISTBOX == 1]
#define	VWFC_APPLICATION_PARAMETRIC
#define	PLUGIN_NAME		"[!output PROJECT_NAME] Object"
[!endif]
[!if PLUGINTYPE_LISTBOX == 2]
#define	VWFC_APPLICATION_PARAMETRIC
#define	PLUGIN_NAME		"[!output PROJECT_NAME] ObjectTool"
[!endif]
[!if PLUGINTYPE_LISTBOX == 3]
#define	VWFC_APPLICATION_TOOL
#define	PLUGIN_NAME		"[!output PROJECT_NAME] Tool"
[!endif]
[!if PLUGINTYPE_LISTBOX == 4]
#define	VWFC_APPLICATION_MENU_COMMAND
#define	PLUGIN_NAME		"[!output PROJECT_NAME] Menu"
[!endif]

// -------------------------------------------------------------------------------
// DEFINE the following when you want toe enable timing of the routines of the plug-in
//# define	_DO_TIMING

// -------------------------------------------------------------------------------
// DEFINE the following if you want to enable debugging memory manager (in VWFC)
// -- this is collecting information for allocated memory and reporting memory leaks
#ifdef _DEBUG
# define	 _DEBUG_MEMORY
#endif

// -------------------------------------------------------------------------------
// Include the VectorWorks Fondation Classes Library
#include "VWFC/VWFCLibrary.h"

using namespace VWFC::Math;
using namespace VWFC::VWObjects;
[!if ADD_VWUI_SUPPORT]
[!else]
using namespace VWFC::VWUI;
[!endif]
using namespace VWFC::Tools;

[!else]
////////////////////////////////////////////////////////////////
// STL
#include <vector>
#include <map>
#include <fstream>

[!endif]



[!if ADD_VWUI_SUPPORT]
////////////////////////////////////////////////////////////////
// VWUI library
#include <VWUI.h>

using namespace VectorWorks::VWUI;

[!endif]

// -------------------------------------------------------------------------------
// VCOM standard interfaces
#include <VWInterfaces.h>


////////////////////////////////////////////////////////////////
// Plug-in specific

