/*ROMTEAM WorldEditor*/
/*//////////////////////////////////////////////////////////////////////////////////////*/
/* File        : ParamSurface3D.hpp: interface for the ParamSurface3D class.*/
/* Author      : Viorel Preoteasa*/
/* Date        : 97.11*/
/* Description :*/
/*//////////////////////////////////////////////////////////////////////////////////////*/
#ifndef __PARAMSURFACE3D_HPP__
#define __PARAMSURFACE3D_HPP__
 
#ifndef CPA_EXPORT
#if defined(CPA_WANTS_IMPORT)
#define CPA_EXPORT __declspec(dllimport)
#elif defined(CPA_WANTS_EXPORT)
#define CPA_EXPORT __declspec(dllexport)
#else
#define CPA_EXPORT
#endif
#endif
 
class CPA_EXPORT ParamSurface3D : public Shape3D
{
private:
	int m_IndexTriangleNb;
	void CommonParamSurface3D();
	float Dist(MTH3D_tdstVector &a, MTH3D_tdstVector &b);
protected:
/*ROMTEAM WorldEditor (Cristian Stegaru 12/97)*/
	/*tested in NewElement method; first time it is true, then false*/
	BOOL	m_bFirstInit;
/*ENDROMTEAM WorldEditor (Cristian Stegaru)*/
public:
	ACP_tdxHandleOfElement NewElement(ACP_tdxHandleOfElement hElement, int ns, int nt);
	virtual float x(float s, float t){return s;}
	virtual float y(float s, float t){return t;}
	virtual float z(float s, float t){return s+t;}
 
	ParamSurface3D (BOOL bModifiable, CPA_EditorBase *_p_oEditor, ACP_tdxIndex xNbPoints, ACP_tdxIndex xNbElements, const CString _csName = "", tdeSaveStatus _eStatus = E_ss_NoSave);
	ParamSurface3D (BOOL bModifiable, CPA_EditorBase *_p_oEditor, ACP_tdxIndex xNbPoints, ACP_tdxIndex xNbElements, CPA_BaseObject *_p_oOwnerFile, const CString _csName = "", char *_p_cRefPath = NULL, tdeSaveStatus _eStatus = E_ss_Responsible);
	ParamSurface3D (BOOL bModifiable, CPA_EditorBase *_p_oEditor, CPA_BaseObject *_p_oOwnerFile, ACP_tdxHandleOfObject _hObject, const CString _csName = "", char *_p_cRefPath = NULL, tdeSaveStatus _eStatus = E_ss_Modify);
 
	~ParamSurface3D();
 
/*private:*/
/*	void CommonShape3D (void);*/
};
 
#endif /* PARAMSURFACE3D_HPP__*/
