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://t.icax.org/)
Powered by Discuz! X3.3