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

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 閱讀(2566) 評(píng)論(0)  編輯 收藏 引用 所屬分類: 2.OpenCASCADE

Topology and Geometry in OpenCascade-Adapters

eryar@163.com

摘要Abstract:本文簡(jiǎn)要介紹了適配器模式(adapter pattern),并結(jié)合程序?qū)嵗龑?duì)OpenCascade中的拓樸與幾何的適配器的使用進(jìn)行說(shuō)明。

關(guān)鍵字Key Words:OpenCascade、BRep、Topology、Geometry、Adapter

一、適配器模式簡(jiǎn)介 Introduction of Adapter pattern

類對(duì)象結(jié)構(gòu)型模式適配器模式(Adapter):

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

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

動(dòng)機(jī)(Motivation):有時(shí),為復(fù)用而設(shè)計(jì)的工具箱類不能夠被復(fù)用的原因僅僅是因?yàn)樗慕涌谂c專業(yè)應(yīng)用領(lǐng)域所需要的接口不匹配。

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

l 你想使用一個(gè)已經(jīng)存在的類,而它的接口不符合你的需求;

l 你想創(chuàng)建一個(gè)可以復(fù)用的類,該類可以與其他不相關(guān)的類或不可預(yù)見(jiàn)的類(即那些接口可能不一定兼容的類)協(xié)同工作;

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

結(jié)構(gòu)(Structure):

類適配器使用多重繼承對(duì)一個(gè)接口與另一個(gè)接口進(jìn)行匹配,如下圖所示:

wps_clip_image-1576

Figure 1.1 Class adapter structure

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

wps_clip_image-9276

Figure 1.2 Object adapter structure

協(xié)作(Collaborations):Client在Adapter實(shí)例上調(diào)用一些操作,接著適配器調(diào)用Adaptee的操作實(shí)現(xiàn)這個(gè)請(qǐng)求。

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

二、適配器模式在OpenCascade中的應(yīng)用

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

wps_clip_image-3262

Figure 1.3 Adaptor3d_Curve class diagram

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

 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 }

程序結(jié)果如下所示:

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

 

三、結(jié)論 Conclusion

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

四、參考資料 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>
            欧美日韩美女在线| 亚洲成色999久久网站| 国产精品免费视频xxxx| 亚洲一区二区动漫| 久久精品国产一区二区电影| 韩国欧美国产1区| 久久亚洲一区二区| 亚洲欧洲日本专区| 亚洲女人天堂av| 亚洲精品在线一区二区| 欧美大片一区| 在线午夜精品| 欧美www视频| 亚洲视频欧美在线| 国产亚洲欧洲| 欧美紧缚bdsm在线视频| 亚洲午夜久久久久久尤物| 久久国产婷婷国产香蕉| 亚洲欧洲日韩女同| 国产精品美女久久久浪潮软件| 欧美影院久久久| 亚洲精品乱码久久久久久蜜桃麻豆| 亚洲自拍偷拍麻豆| 1204国产成人精品视频| 欧美亚洲成人精品| 久久九九国产精品怡红院| 日韩亚洲欧美综合| 麻豆久久婷婷| 香蕉久久夜色| 一本到高清视频免费精品| 国产视频在线一区二区 | 国产精品一区二区三区成人| 久久精品夜夜夜夜久久| 中日韩男男gay无套 | 亚洲欧洲精品一区| 久久久福利视频| 亚洲视频一二区| 91久久精品国产91久久性色tv| 国产精品免费一区二区三区观看| 免费一级欧美片在线观看| 亚洲专区一区二区三区| 亚洲精品自在在线观看| 美女国产一区| 久久国产精品网站| 亚洲资源av| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 西西裸体人体做爰大胆久久久| 最新国产精品拍自在线播放| 国产日韩欧美不卡| 欧美日韩一区二区在线播放| 美女日韩在线中文字幕| 久久精品国产99国产精品澳门| 亚洲天堂第二页| 99精品免费| 亚洲日韩欧美视频| 亚洲电影免费观看高清完整版在线观看 | 欧美中文字幕在线| 亚洲影院污污.| 亚洲色图制服丝袜| 99精品视频一区| 亚洲精品视频在线播放| 亚洲国产一区在线| 亚洲福利国产精品| 亚洲第一精品夜夜躁人人躁| 黄色成人片子| 黄色一区二区三区四区| 国产日韩欧美一二三区| 国产精品尤物| 国产农村妇女毛片精品久久麻豆| 欧美性做爰猛烈叫床潮| 欧美小视频在线观看| 欧美日韩情趣电影| 欧美午夜无遮挡| 国产精品成人一区二区三区夜夜夜| 欧美日本一道本| 欧美日韩日日夜夜| 国产精品久久久久久影院8一贰佰| 欧美系列亚洲系列| 国产伦精品一区二区三区在线观看 | 久久精视频免费在线久久完整在线看| 性欧美长视频| 久久久一本精品99久久精品66| 久久婷婷蜜乳一本欲蜜臀| 久久久噜噜噜久久人人看| 久久亚洲综合| 欧美激情一区二区三区不卡| 亚洲精品欧美专区| 一区二区欧美日韩视频| 亚洲欧美日韩综合| 久久久久久久久一区二区| 美女视频黄a大片欧美| 欧美日韩国产精品 | 久久精品亚洲精品国产欧美kt∨| 久久一区二区视频| 亚洲电影网站| 亚洲无线视频| 久久精品二区亚洲w码| 男男成人高潮片免费网站| 欧美日韩免费看| 国产日韩欧美精品| 亚洲国产一区二区三区在线播| 这里只有精品视频在线| 久久精品123| 亚洲国产成人精品久久| 亚洲亚洲精品三区日韩精品在线视频 | 久久久久综合网| 欧美日韩精品一区二区| 国产一二三精品| 亚洲精品欧美一区二区三区| 香蕉成人啪国产精品视频综合网| 美女999久久久精品视频| 亚洲美女在线视频| 欧美一区午夜精品| 欧美久久在线| 激情亚洲网站| 亚洲一区视频在线观看视频| 欧美11—12娇小xxxx| 国产精品99久久久久久久女警 | 亚洲午夜精品久久| 麻豆精品精华液| 亚洲天堂男人| 欧美精品久久久久久| 国产亚洲欧美日韩一区二区| 夜夜嗨网站十八久久| 久久综合精品一区| 亚洲在线免费| 欧美人与禽猛交乱配视频| 激情文学综合丁香| 亚洲欧美色婷婷| 91久久嫩草影院一区二区| 久久精品免费看| 国产精品毛片在线看| 日韩视频欧美视频| 欧美h视频在线| 欧美一级精品大片| 国产精品日韩欧美| 在线视频亚洲| 亚洲国产老妈| 麻豆精品在线观看| 精品99一区二区三区| 欧美中文在线免费| 亚洲午夜91| 国产精品久久久久久久久| 在线亚洲电影| 亚洲人成毛片在线播放女女| 蜜臀av性久久久久蜜臀aⅴ| 好吊妞**欧美| 久久久久久久一区| 欧美一区日韩一区| 国产亚洲人成网站在线观看| 西西人体一区二区| 亚洲一区二区三区欧美| 国产精品久久波多野结衣| 这里是久久伊人| 一本久道综合久久精品| 欧美日韩一区二区精品| 亚洲免费激情| 亚洲乱码精品一二三四区日韩在线| 欧美成人激情在线| 亚洲剧情一区二区| 亚洲日本激情| 欧美视频官网| 亚洲欧美亚洲| 亚洲欧美日韩一区二区三区在线观看| 欧美图区在线视频| 亚洲欧美日韩视频一区| 亚洲男人的天堂在线aⅴ视频| 国产精品爽爽ⅴa在线观看| 午夜精品久久| 欧美在线999| 亚洲国产99| 亚洲人在线视频| 欧美日韩综合另类| 欧美一区二区私人影院日本| 性欧美18~19sex高清播放| 狠狠狠色丁香婷婷综合激情| 欧美va亚洲va国产综合| 欧美激情精品久久久久久大尺度| 亚洲美女视频网| 中文亚洲免费| 韩国成人精品a∨在线观看| 欧美成人久久| 欧美日韩成人一区二区三区| 亚洲欧美欧美一区二区三区| 亚洲欧美日韩视频一区| 精品动漫av| 亚洲美女中文字幕| 国产欧美一区二区三区久久人妖| 久久久久久一区二区| 欧美大片一区二区三区| 这里只有精品电影| 欧美一级久久久| 亚洲日本国产| 午夜国产精品影院在线观看| 亚洲国产导航| 国产精品99久久久久久人| 伊人色综合久久天天| 日韩视频免费| 国语对白精品一区二区| 亚洲精品一区二区三区不|