/***************************************************************************
 *                          Zanoza Modeler v2.x                            *
 *      This is unpublished propietary source code of Zanoza Software.     *
 *      The copyright notice does not evidence any actual or intended      *
 *                    publication of such source code.                     *
 *                                                                         *
 *                Copyright (c) 2002-2003 Zanoza Software.                 *
 *                                                                         *
 *                        All rights reserved.                             *
 ***************************************************************************
 *--------------------------------------------------------------------------
 * @author:   Oleg M.
 *--------------------------------------------------------------------------
 * @purpose:  ZModeler 2.x import/export helpers
 *--------------------------------------------------------------------------
 * @histroy: 14.04.2004. Created
 */
#ifndef importexporthelpers_h_included
#define importexporthelpers_h_included

#include <zmodeler.h>
#include <scene/INode.h>
#include <core/ui/controls/IUserDefinedOptions.h>
#include <core/io/ISerializeable.h>

namespace core
{
  namespace io
  {


  };//io


  //----------------------------------------------
  // standard renering extensions helpers
  //----------------------------------------------
#define RENDEXT_CLASS_SEMITRANSPARENCY      "rend::CSemitransparencyExtension"
#define RENDEXT_CLASS_HIGHBLEND             "rend::CHighBlendingExtension"
#define RENDEXT_CLASS_NOBLEND               "rend::CNoBlendingExtension"
#define RENDEXT_CLASS_NOCULL                "rend::CNoCullExtension"
#define RENDEXT_CLASS_SPECULAR              "rend::CSpecularRenderExtension"
#define RENDEXT_CLASS_NOZBUFFER             "rend::CNoZBufferRenderExtension"

//-------------------------------------------------------
// @name : ZAPICALL getRenderExtensionBit
// Provides bit set in node's technique extension for supplied render class
// @param  LPCTSTR pszRendClass          : class name of IRenderExtension
// @param scene::INode* pNode            : node whose technique examine
//
// @return DLL_LINKAGE DWORD : 
//-------------------------------------------------------
  DLL_LINKAGE DWORD ZAPICALL getRenderExtensionBit( LPCTSTR pszRendClass, 
                                                    scene::INode* pNode);

//-------------------------------------------------------
// @name : ZAPICALL setRenderExtensionForMaterial
// Sets supplied extension on supplied material
// @param PCTSTR pszRendClass            : 
// @param rend::IMaterial* pMat          : 
//
// @return DLL_LINKAGE ZRESULT : 
//-------------------------------------------------------
  DLL_LINKAGE ZRESULT ZAPICALL setRenderExtensionForMaterial( 
                                            LPCTSTR pszRendClass, 
                                            rend::IMaterial* pMat);
  //ZRESULT_OK of so.
  DLL_LINKAGE ZRESULT ZAPICALL isRenderExtensionSetOnMaterial( 
                                            LPCTSTR pszRendClass, 
                                            rend::IMaterial* pMat);


};//core


#endif //importexporthelpers_h_included

