/////////////////////////////////////////////////////////////////////////////// // Copyright (C) 2002-2016, Open Design Alliance (the "Alliance"). // All rights reserved. // // This software and its documentation and related materials are owned by // the Alliance. The software may only be incorporated into application // programs owned by members of the Alliance, subject to a signed // Membership Agreement and Supplemental Software License Agreement with the // Alliance. The structure and organization of this software are the valuable // trade secrets of the Alliance and its suppliers. The software is also // protected by copyright law and international treaty provisions. Application // programs incorporating this software must include the following statement // with their copyright notices: // // This application incorporates Teigha(R) software pursuant to a license // agreement with Open Design Alliance. // Teigha(R) Copyright (C) 2002-2016 by Open Design Alliance. // All rights reserved. // // By use of this software, its documentation or related materials, you // acknowledge and accept the above terms. /////////////////////////////////////////////////////////////////////////////// #ifndef _ODDBGPIPPOINTS_INCLUDED_ #define _ODDBGPIPPOINTS_INCLUDED_ #include "RxObject.h" #include "RxModule.h" #include "IntArray.h" #include "DbEntity.h" #include "Gi/GiDrawable.h" /** \details This class is the Grip Points Protocol Extension class. \sa TD_Db */ class TOOLKIT_EXPORT OdDbGripPointsPE : public OdRxObject { public: ODRX_DECLARE_MEMBERS(OdDbGripPointsPE); /** \details Returns all grip points of the specified entity. \param pEntity [in] Pointer to the entity. \param gripPoints [in/out] Receives an array of WCS grip points. \remarks Grip points are appended to the specified array. \returns Returns eOk if successful, or an appropriate error code if not. The default implementation of this function returns eNotImplemented. */ virtual OdResult getGripPoints( const OdDbEntity* pEntity, OdGePoint3dArray& gripPoints ) const; /** \details Moves the specified grip points of the specified entity. \param pEntity [in] Pointer to the entity. \param indices [in] Array of indicies. \param offset [in] The direction and magnitude of the grip points offset (WCS). \remarks Each element in gripPoints has a corresponding entry in indices, which specifies the index of the grip point as returned by getGripPoints. \returns Returns eOk if successful, or an appropriate error code if not. The default implementation of this function returns eNotImplemented. */ virtual OdResult moveGripPointsAt( OdDbEntity* pEntity, const OdIntArray& indices, const OdGeVector3d& offset ); /** \details Returns OdDbGripData objects for grip points of this entity. \param pEntity [in] Pointer to the entity. \param grips [in/out] Receives an array of OdDbGripData objects. \remarks Grip points are appended to the specified array. When eNotImplemented is returned, the application should call the other overload of the getGripPoints() method. The default implementation of this function returns eNotImplemented. */ virtual OdResult getGripPoints( const OdDbEntity* pEntity, OdDbGripDataPtrArray& grips, const double curViewUnitSize, const int gripSize, const OdGeVector3d& curViewDir, const int bitFlags ) const; /** \details Moves the specified grip points of this entity. \param pEntity [in] Pointer to the entity. \param grips [in] Array of OdDbGripData identifiers. \param offset [in] The direction and magnitude of the grip points offset (WCS). \remarks The default implementation of this function returns eNotImplemented. */ virtual OdResult moveGripPointsAt( OdDbEntity* pEntity, const OdDbVoidPtrArray& grips, const OdGeVector3d& offset, int bitFlags ); /** \details Returns all stretch points of the specified entity. \param pEntity [in] Pointer to the entity. \param stretchPoints [in/out] Receives an array of WCS stretch points. \remarks Stretch points are appended to the specified array. Returns eOk if successful, or an appropriate error code if not. The default implementation of this function returns eNotImplemented. */ virtual OdResult getStretchPoints( const OdDbEntity* pEntity, OdGePoint3dArray& stretchPoints ) const; /** \details Moves the specified stretch points of this entity. \param pEntity [in] Pointer to the entity. \param indices [in] Array of indicies. \param offset [in] The direction and magnitude of the stretch points offset (WCS). \remarks Each element in stretchPoints has a corresponding entry in indices, which specifies the index of the stretch point as returned by getStretchPoints. Returns eOk if successful, or an appropriate error code if not. The default implementation of this function returns eNotImplemented. */ virtual OdResult moveStretchPointsAt( OdDbEntity* pEntity, const OdIntArray& indices, const OdGeVector3d& offset ); /** \details Returns all appropriate object snap points of the specified entity. \param pEntity [in] Pointer to the entity. \param osnapMode [in] The object snap mode being queried. \param gsSelectionMark [in] The GS marker of the subentity being queried. \param pickPoint [in] The WCS point being queried. \param lastPoint [in] The WCS point picked before pickPoint. \param viewXform [in] The WCS->DCS transformation matrix. \param ucs [in] The WCS->UCS transformation matrix. \param snapPoints [in/out] Receives an array of UCS object snap points. \remarks Object snap points are appended to the specified array. osnapMode must be one of the following: Name Value Description OdDb::kOsModeEnd 1 Endpoint OdDb::kOsModeMid 2 Midpoint OdDb::kOsModeCen 3 Center OdDb::kOsModeNode 4 Node OdDb::kOsModeQuad 5 Quadrant OdDb::kOsModeIntersec 6 Intersection OdDb::kOsModeIns 7 Insertion point OdDb::kOsModePerp 8 Perpendicular OdDb::kOsModeTan 9 Tangent OdDb::kOsModeNear 10 Nearest OdDb::kOsModeApint 11 Apparent intersection OdDb::kOsModePar 12 Parallel OdDb::kOsModeStart 13 Unknown
The default implementation of this function returns eNotImplemented. */ virtual OdResult getOsnapPoints( const OdDbEntity* pEntity, OdDb::OsnapMode osnapMode, OdGsMarker gsSelectionMark, const OdGePoint3d& pickPoint, const OdGePoint3d& lastPoint, const OdGeMatrix3d& xWorldToEye, OdGePoint3dArray& snapPoints ) const; /** \details Returns all appropriate object snap points of the specified entity. \param pEntity [in] Pointer to the entity. \param osnapMode [in] The object snap mode being queried. \param gsSelectionMark [in] The GS marker of the subentity being queried. \param pickPoint [in] The WCS point being queried. \param lastPoint [in] The WCS point picked before pickPoint. \param viewXform [in] The WCS->DCS transformation matrix. \param ucs [in] The WCS->UCS transformation matrix. \param snapPoints [in/out] Receives an array of UCS object snap points. \param insert [in] Current insertion matrix \remarks Object snap points are appended to the specified array. osnapMode must be one of the following: Name Value Description OdDb::kOsModeEnd 1 Endpoint OdDb::kOsModeMid 2 Midpoint OdDb::kOsModeCen 3 Center OdDb::kOsModeNode 4 Node OdDb::kOsModeQuad 5 Quadrant OdDb::kOsModeIntersec 6 Intersection OdDb::kOsModeIns 7 Insertion point OdDb::kOsModePerp 8 Perpendicular OdDb::kOsModeTan 9 Tangent OdDb::kOsModeNear 10 Nearest OdDb::kOsModeApint 11 Apparent intersection OdDb::kOsModePar 12 Parallel OdDb::kOsModeStart 13 Unknown
The default implementation of this function returns eNotImplemented. */ virtual OdResult getOsnapPoints( const OdDbEntity* pEntity, OdDb::OsnapMode osnapMode, OdGsMarker gsSelectionMark, const OdGePoint3d& pickPoint, const OdGePoint3d& lastPoint, const OdGeMatrix3d& xWorldToEye, OdGePoint3dArray& snapPoints, const OdGeMatrix3d& insert) const; /** \details Gets the grip points and supporting information about the grips for a subentity. \param pEntity [in] Pointer to the entity. \param path [in] The OdDbFullSubentPath to the subentity. \param grips [in/out] Receives an array of pointers of OdDbGripData objects, one object for each grip point in the subentity. \param curViewUnitSize [in] The size (in pixels) of one drawing unit in the current viewport. \param gripSize [in] The current grip size (in pixels). \param curViewDir [in] The view direction in the current viewport. \param bitflags [in] The bitmap of one or more flags specified by the GetGripPointsFlags enumeration. */ virtual OdResult getGripPointsAtSubentPath( const OdDbEntity* pEntity, const OdDbFullSubentPath& path, OdDbGripDataPtrArray& grips, const double curViewUnitSize, const int gripSize, const OdGeVector3d& curViewDir, const OdUInt32 bitflags) const; /** \details Applies a vector offset to one or more grip points exposed by subentities on the object. \param pEntity [in] Pointer to the entity. \param paths [in] The array of OdDbFullSubentPath objects. \param gripAppData [in] The array of pointers of OdDbGripData objects. \param offset [in] The vector (in WCS coordinates) indicating the direction and magnitude of the translation. \param bitflags [in] The bitmap of one or more flags specified by the GetGripPointsFlags enumeration. */ virtual OdResult moveGripPointsAtSubentPaths(OdDbEntity* pEntity, const OdDbFullSubentPathArray& paths, const OdDbVoidPtrArray& gripAppData, const OdGeVector3d& offset, const OdUInt32 bitflags); }; /** \details This template class is a specialization of the OdSmartPtr class for OdDbGripPointsPE object pointers. */ typedef OdSmartPtr OdDbGripPointsPEPtr; #endif //_ODDBGPIPPOINTS_INCLUDED_