iCAx开思网

标题: CATGraphicPathElement 問題 [打印本页]

作者: catiaNew    时间: 2006-4-20 15:13
标题: CATGraphicPathElement 問題
各位,

請問大家知不知道怎樣從CATPickPath中拿出CATGraphicPathElement 呢. 我用2D Point 來 pick 一點得出CATPickPath, 之後用GeneratePathElementFromPickPath() 來轉換成CATPathElement, 但是我想要的是CATGraphicPathElement.

我亦嘗試自己construct一個CATGraphicPathElement 物件, 但是我不知道第一個參數"const CATBaseUnknown*  iTopObject" 是什麼來的.

請問應該怎樣做呢才可以拿到或construct到一個CATGraphicPathElement 呢?

謝謝
作者: saeba    时间: 2006-4-21 17:26
CATGraphicPathElement 可是个好东西。
我记着好像有很简单的方法得到。。。
能不能贴一下header?
作者: acoka    时间: 2006-4-27 12:52
00001 #ifndef CATGraphicPathElement_h
00002 #define CATGraphicPathElement_h
00003
00004 // COPYRIGHT DASSAULT SYSTEMES 1999
00005
00012 /*
00013  * HISTORY :
00014  *   17 Juillet 2001 - CDT : on surcharge le new/delete pour augmenter les perfos
00015  */
00016
00017
00018 #include "CATVisualization.h"
00019
00020 #include "CATPathElement.h"
00021 #include "CATEventSubscriber.h"
00022 #include "CATMathPointf.h"
00023 #include "CATMathDirectionf.h"
00024
00025
00026 class CATViewer;
00027
00028
00043 class ExportedByCATVisualization CATGraphicPathElement : public CATPathElement
00044 {
00045
00047   CATDeclareClass;
00048
00049     
00050   
00051 public:
00052   
00076   CATGraphicPathElement ( const CATBaseUnknown* iTopObject,
00077                           CATViewer*            iViewer,
00078                           CATMathPointf         iIntersectionPoint,
00079                           CATMathDirectionf     iNormal,
00080                           CATMathDirectionf     iGlobalNormal=CATMathDirectionf() );
00081   
00088   CATGraphicPathElement ( const CATGraphicPathElement& iBrother );
00089   
00090
00099   CATGraphicPathElement ( const CATPathElement& iBrother );
00100
00101   
00112   CATGraphicPathElement& operator = ( const CATGraphicPathElement& iBrother);
00113   
00114   
00115   virtual ~CATGraphicPathElement ();
00116   
00117   
00125   virtual CATPathElement* Clone () const;
00126   
00127   
00158   virtual CATBaseUnknown* FindElement (const IID& iid);
00159
00160   
00165   virtual CATPathElement* GetSubPath ( const CATListOfCATString iList_Interfaces, int &oPos ) const;
00166   
00167   
00172   virtual void SaveOriginalPath (CATPathElement* iPath);
00173
00178   virtual CATPathElement* GetOriginalPath ();
00179   
00184   virtual void SetOffsetForSearch (int iOffset);
00185   
00190   virtual CATBaseUnknown* FindObject(const IID &iid) ;
00191
00201   void SetInteractiveContext ( CATVisInteractiveContext iContext );
00202
00203
00212   CATVisInteractiveContext GetInteractiveContext () const;
00213   
00214   
00215 private:
00216   
00217   void CleanReference (CATCallbackEvent, void *, CATNotification *, CATSubscriberData, CATCallback );
00218   
00219   CATViewer*        _viewer;
00220   CATMathPointf     _intersection;
00221   CATMathDirectionf _globalNormale;
00222   CATMathDirectionf _normale;
00223   CATVisInteractiveContext _context;  
00224   // embedded path element ; useful for OtherSelection/DrillingSelector
00225   CATPathElement*   _OriginalPath;
00226   
00227 };
00228
00229 #endif
作者: saeba    时间: 2006-4-27 14:23
谢谢acoka,
原来这么简单;
CATGraphicPathElement ( const CATPathElement& iBrother );
作者: acoka    时间: 2006-4-27 18:09
如果是想从agent或CATPathElement里取
不妨试试看下面的src能不能用。(不太确定是不是可行)

CATPathElement* pPathElement = ipAgent->GetValue();
if( !pPathElement ) {
        break;
}
CATGraphicPathElement * pPtSel = (CATGraphicPathElement *)
                        pPathElement->SearchObject(CATGraphicPathElement ::ClassName());

原理和CATGraphicPathElement ( const CATPathElement& iBrother )基本相同




欢迎光临 iCAx开思网 (https://www.icax.org/) Powered by Discuz! X3.3