/* /////////////////////////////////////////////////////////////////////////////////////////////////// // Description : TanObj.hpp // // Definition of the tangent objects // /////////////////////////////////////////////////////////////////////////////////////////////////// // inherit from : CPA_Object // CPA_EdMot /////////////////////////////////////////////////////////////////////////////////////////////////// // Creation date: 29 jan 1997 Author: J Thénoz /////////////////////////////////////////////////////////////////////////////////////////////////// // Modification date: Author: // // // // /////////////////////////////////////////////////////////////////////////////////////////////////// */ //ANNECY Shaitan Nettoyage (12/05/98) { /* #ifndef __TanagentOBJECT_HPP__ #define __TanagentOBJECT_HPP__ class Waypoint_Interface; class Link; typedef enum _eTangentLenghtMode { eVariableLenghtTangent, // lenght of tangent is edited eFixLenghtTangent // lenght of tangent is constant } eTangentLenghtMode; typedef enum _eTangentOrientationMode { eVariableOrientationTangent, // lenght of tangent is edited eFixOrientationTangent // lenght of tangent is constant } eTangentOrientationMode; typedef enum _eTangentChangeNeighbourMode // change the neighbour tangent only { eNeverChangeNeighbour, eAlwaysChangeNeighbour, eShiftDownChangeNeighbour, eControlDownChangeNeighbour, eShiftUpChangeNeighbour, eControlUpChangeNeighbour } eTangentNeighbourMode; typedef enum _eTangentChangeAllMode // change all the tangents { eNeverChangeAll, eAlwaysChangeAll, eShiftDownChangeAll, eControlDownChangeAll, eShiftUpChangeAll, eControlUpChangeAll } eTangentChangeAllMode; class Tangent : public CPA_BaseObject { protected: static Waypoint_Interface* ms_poInterface; // interface static long ms_lNbTangent; // object counter CPA_SuperObject* m_poSuperObject; Link* m_poParent; // Father Link onject MTH3D_tdstVector m_stFixVertex; // in the axis of the father object MTH3D_tdstVector m_stTangentVector; // in the absolute axis GLI_tdxValue m_xDim; MTH3D_tdstVector m_stMoveVertex; // extrem vertex of the tangant // -> is only used when tangent moves GLI_tdxValue m_xMoveRatio; // dif between pick point and movevertex GEO_tdstColor m_stColor; // color of the graphic tangent eTangentLenghtMode m_eTangentLenghtMode; // lenght edition mode eTangentOrientationMode m_eTangentOrientationMode; // orientation edition mode eTangentNeighbourMode m_eTangentNeighbourMode; // change neighbour mode eTangentChangeAllMode m_eTangentChangeAllMode; // change all mode BOOL m_bOrientationAllow; // allow orientation of tangent BOOL m_bNotifyWay; // notify the owner way public: // static static void fn_vInitObject (Waypoint_Interface* poInterface); static Waypoint_Interface* GetInterface (void); Tangent ( CPA_ObjectDLLBase *p_oDLL, CPA_BaseObject *p_oOwner, eTangentLenghtMode eLenghtMode=eVariableLenghtTangent, eTangentOrientationMode eOrientationMode=eFixOrientationTangent, eTangentNeighbourMode eNeighbourMode = eNeverChangeNeighbour, eTangentChangeAllMode eChangeAllMode = eNeverChangeAll, GEO_tdstColor* pstColor=NULL ); void *GetEngineStruct (void) { return NULL; } // data long GetDataType (void); void* GetData (void); // set void fn_vSetAbsoluteVertex ( MTH3D_tdstVector* pstFixAbsoluteVertex, MTH3D_tdstVector* pstTangentVe ); void fn_vSetTangent ( MTH3D_tdstVector* pstMoveAbsoluteVertex ); void fn_vSetTangentDirection ( MTH3D_tdstVector* pstAbsoluteDirectionVertex, BOOL bOppositeDirection=FALSE ); void fn_vSetColor ( GEO_tdstColor* pstColor ); void fn_vSetDim ( GLI_tdxValue xDim ) { m_xDim = xDim; } // get Link* fn_pGetParent (void) { return m_poParent; } // super object void SetSuperObject ( CPA_SuperObject* poSuperObject) { m_poSuperObject=poSuperObject; } CPA_SuperObject* GetSuperObject (void) { return m_poSuperObject; } // move void fn_pGetAbsoluteTangent (MTH3D_tdstVector* pstTangent); // draw void fn_vConstructGraphic (void); // construct the graphic son's void fn_vDraw (void); // refreh the draw according to the object // moves void fn_vStartMove ( MTH3D_tdstVector* pstStartVertex, BOOL bShift, BOOL bControl ); void fn_vMove ( MTH3D_tdstVector* pstTranslation, BOOL bShift, BOOL bControl ); void fn_vEndMove (void); void fn_vChangeAllTangent (void); // change all the tangent of the way protected : void fn_vChangeNeighbourTangent (BOOL bShift, BOOL BControl); void fn_vChangeAllTangent (BOOL bShift, BOOL BControl); }; #endif //__TanagentOBJECT_HPP__ */ //ENDANNECY Shaitan Nettoyage }