青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

eryar

PipeCAD - Plant Piping Design Software.
PlantAssistant - Translate AVEVA RVM/SP3D VUE to glTF, STEP, etc.
posts - 606, comments - 590, trackbacks - 0, articles - 0

Topology and Geometry in OpenCascade-Adapters

Posted on 2013-09-27 23:52 eryar 閱讀(2563) 評論(0)  編輯 收藏 引用 所屬分類: 2.OpenCASCADE

Topology and Geometry in OpenCascade-Adapters

eryar@163.com

摘要Abstract:本文簡要介紹了適配器模式(adapter pattern),并結合程序實例對OpenCascade中的拓樸與幾何的適配器的使用進行說明。

關鍵字Key Words:OpenCascade、BRep、Topology、Geometry、Adapter

一、適配器模式簡介 Introduction of Adapter pattern

類對象結構型模式適配器模式(Adapter):

意圖(Intent):將一個類的接口轉換成客戶希望的另外一個接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些類可以一起工作。

別名(Also Known As):包裝器Wrapper

動機(Motivation):有時,為復用而設計的工具箱類不能夠被復用的原因僅僅是因為它的接口與專業應用領域所需要的接口不匹配。

適用性(Applicability),以下情況使用Adapter模式:

l 你想使用一個已經存在的類,而它的接口不符合你的需求;

l 你想創建一個可以復用的類,該類可以與其他不相關的類或不可預見的類(即那些接口可能不一定兼容的類)協同工作;

l (僅適用于對象Adapter)你想使用一些已經存在的子類,但是不可能對每一個都進行子類化以匹配它們的接口。對象適配器可以適配它的父類接口;

結構(Structure):

類適配器使用多重繼承對一個接口與另一個接口進行匹配,如下圖所示:

wps_clip_image-1576

Figure 1.1 Class adapter structure

對象適配器依賴于對象組合,如下圖所示:

wps_clip_image-9276

Figure 1.2 Object adapter structure

協作(Collaborations):Client在Adapter實例上調用一些操作,接著適配器調用Adaptee的操作實現這個請求。

關于適配器模式(Adapter pattern)更多信息,請參考GoF的經典之作《Design Patterns-Elements of Reuseable Object-Oriented Software》。

二、適配器模式在OpenCascade中的應用

一些OpenCascade的算法可以操作表示曲線的對象,然而他們提供的API接受Adaptor3d_Curve而不接受Geom_Curve。例如,包Extrema(用來計算點、線、面之間的距離)可用來計算幾何曲線(Geom_Curve)和拓樸邊(TopoDS_Edge)的求交、投影和其他一些算法。其他的例子有計算長度,面積等。這種方法稱為適配器模式(Adapter pattern)。

wps_clip_image-3262

Figure 1.3 Adaptor3d_Curve class diagram

從上面的類圖可以看出,GeomAdaptor3d_Curve是Adaptor3d_Curve的子類,該類用來適配Geom_Curve類型,BRepAdaptor_Curve用于適配TopoDS_Edge類型。BRepAdaptor_CompCurve用于適配TopoDS_Wire。對于二維曲線和曲面也有類似功能的類。通過適配器使不同的曲線(幾何曲線和拓樸邊)在一起工作,如下代碼所示,計算幾何曲線和拓樸邊長度的方式統一了:

 1 /*
 2 *    Copyright (c) 2013 eryar All Rights Reserved.
 3 *
 4 *        File    : Main.cpp
 5 *        Author  : eryar@163.com
 6 *        Date    : 2013-09-27
 7 *        Version : 1.0v
 8 *
 9 *    Description : GeomAdaptor: provides an interface between the services provided by any curve.
10 *                  BRepAdaptor: provides classes to access the geometry of the BRep models.
11 *                  
12 */
13 
14 #define WNT
15 #include <gp_Circ.hxx>
16 #include <Geom_Circle.hxx>
17 #include <GeomAdaptor_Curve.hxx>
18 
19 #include <TopoDS_Edge.hxx>
20 #include <BRepBuilderAPI_MakeEdge.hxx>
21 #include <BRepAdaptor_Curve.hxx>
22 
23 #include <GCPnts_AbscissaPoint.hxx>
24 
25 #pragma comment(lib, "TKernel.lib")
26 #pragma comment(lib, "TKMath.lib")
27 #pragma comment(lib, "TKG3d.lib")
28 #pragma comment(lib, "TKBRep.lib")
29 #pragma comment(lib, "TKGeomBase.lib")
30 #pragma comment(lib, "TKTopAlgo.lib")
31 
32 int main(void)
33 {
34     Handle_Geom_Curve aCurve = new Geom_Circle(gp::XOY(), 1.0);
35     Standard_Real dCurveLength = GCPnts_AbscissaPoint::Length(GeomAdaptor_Curve(aCurve));
36 
37     TopoDS_Edge anEdge = BRepBuilderAPI_MakeEdge(gp_Circ(gp::XOY(), 1.0));
38     Standard_Real dEdgeLength = GCPnts_AbscissaPoint::Length(BRepAdaptor_Curve(anEdge));
39 
40     std::cout << "Circle curve length: " << dCurveLength << std::endl;
41     std::cout << "Circle edge length: " << dEdgeLength << std::endl;
42 
43     return 0;
44 }

程序結果如下所示:

1 Circle curve length: 6.28319 
2 Circle edge length: 6.28319 
3 Press any key to continue . . . 

 

三、結論 Conclusion

應用適配器模式使OpenCascade中接口不兼容的類如幾何曲線(Geom_Curve)與拓樸邊(TopoDS_Edge)可以在一起工作了,如求交計算、投影計算、長度計算等等。

四、參考資料 Bibliography

1. GoF, Design Patterns-Elements of Reuseable Object-Oriented Software

2. Roman Lygin, OpenCascade notes, opencascade.blogspot.com

 

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            午夜影院日韩| 国产精品激情| 老色鬼精品视频在线观看播放| 亚洲网站在线播放| 这里是久久伊人| 亚洲男人的天堂在线aⅴ视频| 亚洲女人av| 麻豆成人精品| 亚洲国产精品一区二区第一页| 亚洲黄色影院| 午夜久久黄色| 欧美国产综合| 国产拍揄自揄精品视频麻豆| 亚洲大胆美女视频| 亚洲色诱最新| 毛片av中文字幕一区二区| 亚洲人体1000| 久久国产加勒比精品无码| 欧美黄在线观看| 国产日本欧美视频| 99精品视频一区二区三区| 欧美影院精品一区| 亚洲欧洲偷拍精品| 久久精品电影| 国产精品国产三级国产aⅴ入口| 激情一区二区| 性做久久久久久免费观看欧美| 欧美va亚洲va香蕉在线| 日韩亚洲综合在线| 老色批av在线精品| 国产欧美日韩三级| 一本色道久久综合亚洲精品小说| 久久久水蜜桃| 亚洲曰本av电影| 欧美区一区二区三区| 精品不卡在线| 久久精品国产在热久久 | 亚洲人成在线播放网站岛国| 欧美在线视频二区| 亚洲乱码国产乱码精品精可以看 | 国产欧美欧美| 在线视频精品一区| 亚洲国产精品一区二区第一页| 久久成人免费日本黄色| 国产精品国产三级国产专区53| 亚洲国产影院| 欧美jizz19性欧美| 久久国产日韩欧美| 国产有码在线一区二区视频| 亚洲欧美在线x视频| 亚洲美女中文字幕| 欧美啪啪一区| 亚洲视频在线看| 国产日本欧美一区二区| 欧美日韩高清在线一区| 影音欧美亚洲| 久久婷婷综合激情| 久久国产精品久久久| 欧美一区二区在线免费播放| 亚洲人成啪啪网站| 美女被久久久| 亚洲国产另类 国产精品国产免费| 久久精品网址| 久久精品青青大伊人av| 有码中文亚洲精品| 美女日韩在线中文字幕| 久久蜜桃精品| 最新国产成人在线观看| 亚洲高清免费视频| 欧美日韩精品二区第二页| 国产精品99久久久久久人| 一区二区三区高清| 国产欧美日韩| 免费亚洲婷婷| 欧美久久久久久久久久| 亚洲婷婷综合色高清在线| 中国女人久久久| 国产一区成人| 亚洲国产精品嫩草影院| 欧美日韩亚洲一区| 欧美影片第一页| 久热综合在线亚洲精品| 日韩视频一区二区三区在线播放免费观看| 最新日韩av| 国产女优一区| 91久久国产精品91久久性色| 国产精品白丝黑袜喷水久久久| 欧美一区二区黄色| 免费观看成人www动漫视频| 一本色道久久综合亚洲精品不卡| 亚洲天堂网站在线观看视频| 国内精品久久久久久久97牛牛| 亚洲电影一级黄| 国产精品美女久久久| 老巨人导航500精品| 欧美激情精品久久久六区热门| 亚洲欧美自拍偷拍| 欧美成年人视频网站欧美| 亚洲永久精品大片| 免费成人性网站| 欧美专区在线播放| 欧美精品福利在线| 久久人体大胆视频| 国产精品久久国产精品99gif| 男人插女人欧美| 国产欧美三级| 亚洲美女免费精品视频在线观看| 国产日韩1区| 亚洲激情啪啪| 在线观看精品| 欧美一级二级三级蜜桃| 在线视频精品| 欧美国产极速在线| 欧美va天堂| 亚洲第一网站| 91久久夜色精品国产九色| 国产精品视频九色porn| 欧美国产日韩在线观看| 国产毛片一区二区| 一区二区三区欧美亚洲| a4yy欧美一区二区三区| 欧美成人按摩| 欧美激情一区二区三区全黄| 国产一区二区主播在线| 国产精品99久久不卡二区| 亚洲精品在线视频观看| 麻豆成人综合网| 欧美电影在线免费观看网站| 狠狠色香婷婷久久亚洲精品| 欧美一级在线亚洲天堂| 久久精品亚洲一区| 国产视频精品va久久久久久| 亚洲伊人第一页| 欧美一进一出视频| 国产欧美精品一区aⅴ影院| 亚洲天堂av高清| 欧美在线精品一区| 国产毛片精品视频| 性亚洲最疯狂xxxx高清| 久久久97精品| 亚洲电影下载| 欧美激情视频网站| 夜夜嗨av色一区二区不卡| 亚洲网友自拍| 国产精品一区二区欧美| 篠田优中文在线播放第一区| 久久久久一区二区三区| 尹人成人综合网| 欧美激情一区二区三区| 亚洲三级电影全部在线观看高清| 99av国产精品欲麻豆| 国产精品v欧美精品v日韩| 亚洲影院在线观看| 久久视频免费观看| 亚洲精品美女免费| 国产精品久久久久天堂| 久久国产精品久久国产精品 | 麻豆精品在线播放| 亚洲电影免费| 欧美午夜宅男影院在线观看| 午夜精彩视频在线观看不卡| 免费欧美日韩国产三级电影| 亚洲人久久久| 国产精品久久久久一区二区三区共| 亚洲在线观看| 欧美成人一区二免费视频软件| 亚洲久久成人| 国产一区二区三区高清| 欧美国产第一页| 欧美亚洲自偷自偷| 亚洲人成77777在线观看网| 欧美专区在线| 一本色道久久88精品综合| 国产亚洲欧美在线| 欧美日韩成人| 久久在线免费观看视频| 亚洲一区二区三区视频| 亚洲大黄网站| 久久视频精品在线| 亚洲欧美视频在线| 亚洲美女色禁图| 今天的高清视频免费播放成人| 欧美日韩另类一区| 狼狼综合久久久久综合网| 91久久国产自产拍夜夜嗨| 国产一区自拍视频| 久久久噜噜噜久久人人看| 日韩亚洲视频| 欧美国产精品v| 久久久精品性| 亚洲欧美精品一区| 99国产精品99久久久久久粉嫩| 国产在线精品自拍| 国产精品九九| 欧美日韩一区二区三区四区五区 | 久久精品国语| 亚洲欧美日韩一区二区在线| 日韩视频不卡中文| 亚洲精品乱码久久久久久蜜桃91 | 亚洲三级色网|