/***************************************************************************
 *                          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 primitives helper classes
 *--------------------------------------------------------------------------
 * @histroy: 02.09.2003. Created
 */
#ifndef prmitiveshelper_h_included
#define prmitiveshelper_h_included
#include <zmodeler.h>
#include <zmsharedclasses.h>

DLL_LINKAGE ZRESULT ZAPICALL createPrimitive(LPCTSTR strClass, DWORD& dwID);
DLL_LINKAGE ZRESULT ZAPICALL releasePrimitive(DWORD dwID);
DLL_LINKAGE ZRESULT ZAPICALL setPrimitiveInfo(DWORD dwID, ZColor color, long nMaterial = -1, bool bWire=false, ZStringSeq* pList=NULL);
DLL_LINKAGE ZRESULT ZAPICALL setPrimitiveColor(DWORD dwID, ZColor color);
DLL_LINKAGE ZRESULT ZAPICALL setPrimitiveRenderOptions(DWORD dwID, DWORD dwRendBlockOpt);
DLL_LINKAGE ZRESULT ZAPICALL setPrimitiveMaterial(DWORD dwID, long nMaterial);
DLL_LINKAGE ZRESULT ZAPICALL getPrimitiveMaterial(DWORD dwID, long& nMaterial);
DLL_LINKAGE ZRESULT ZAPICALL setPrimitiveWire(DWORD dwID, bool bWire);
DLL_LINKAGE ZRESULT ZAPICALL getPrimitiveInfo(DWORD dwID, ZColor& color, bool& bWire, long& nMaterial, ZStringSeq* pList=NULL);
DLL_LINKAGE ZRESULT ZAPICALL setPrimitiveTransform(DWORD dwID, ZMatrix& mat);
DLL_LINKAGE ZRESULT ZAPICALL getPrimitiveTransform(DWORD dwID, ZMatrix& mat);
DLL_LINKAGE ZRESULT ZAPICALL renderPrimitive(DWORD dwID, core::ui::IViewport* pViewport=NULL, IDevice* pDevice=NULL, ZMatrixSeq* pStack=NULL);

#endif //prmitiveshelper_h_included

