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

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) 評論(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>
            亚洲精品免费在线观看| 一区二区三区欧美成人| 欧美一区二区三区在线看| 在线亚洲免费视频| 国产精品老牛| 久久免费99精品久久久久久| 欧美有码视频| 在线观看中文字幕不卡| 欧美成人免费观看| 欧美激情按摩在线| 亚洲视频999| 亚洲欧洲99久久| 一本久久综合| 国产精品视频免费| 久久男女视频| 欧美国产日产韩国视频| 一本大道久久精品懂色aⅴ| 夜夜嗨av一区二区三区| 国产麻豆精品视频| 欧美69wwwcom| 欧美午夜精品久久久| 久久国产免费| 免费成人美女女| 亚洲欧美日韩国产综合在线| 欧美一区二区在线观看| 亚洲精品久久久蜜桃| 麻豆成人在线观看| 久久久久久国产精品mv| 久久精品一区二区三区不卡| 亚洲娇小video精品| 在线视频亚洲一区| 黄色小说综合网站| 一本色道久久加勒比精品| 国产一区二区视频在线观看| 亚洲精品激情| 国产综合自拍| 一区二区久久| 亚洲高清在线观看| 亚洲欧美一区二区精品久久久| 亚洲高清网站| 性欧美18~19sex高清播放| 亚洲国产色一区| 亚洲欧美久久久| 一本色道久久综合亚洲91 | 国产精品试看| 91久久综合亚洲鲁鲁五月天| 国产欧美一区二区三区在线看蜜臀| 欧美国产激情二区三区| 国产视频久久| 99精品99久久久久久宅男| 在线观看亚洲视频| 久久精品日韩欧美| 欧美视频1区| 欧美激情一区二区久久久| 国产亚洲一区二区三区在线观看| 亚洲精品美女久久久久| 亚洲国产你懂的| 久久久国产精品一区二区中文 | 国产视频一区在线观看| 99精品欧美一区二区三区综合在线| 在线观看日韩国产| 欧美中文日韩| 久久久久青草大香线综合精品| 欧美色大人视频| 亚洲精品中文字幕在线观看| 亚洲日本激情| 牛牛影视久久网| 欧美激情视频免费观看| 精品成人一区二区三区| 久久国产精品一区二区三区四区 | 国产视频在线观看一区二区三区| aa级大片欧美| 亚洲欧美在线免费| 国产精品一区毛片| 午夜性色一区二区三区免费视频| 欧美亚洲网站| 国产亚洲精品福利| 久久久蜜桃精品| 欧美成人精精品一区二区频| 在线视频国产日韩| 男女av一区三区二区色多| 亚洲国产成人精品久久久国产成人一区 | 欧美在线短视频| 欧美一区二区在线免费观看| 国产美女一区二区| 久久精品综合一区| 欧美高清不卡| 国产精品99久久99久久久二8| 免费看成人av| 一本色道**综合亚洲精品蜜桃冫| 亚洲一区精品电影| 国产中文一区二区| 欧美大片免费久久精品三p| 亚洲精品久久| 久久精品国产精品亚洲综合| 亚洲福利av| 国产精品v欧美精品∨日韩| 亚洲一区二区三区四区中文 | 午夜精品一区二区三区在线播放| 国产精品网站视频| 久久亚洲精品视频| 一本久久知道综合久久| 久久精品视频网| 亚洲免费观看| 国产一区二区三区四区| 欧美国产国产综合| 午夜精品福利视频| 亚洲国产精品精华液网站| 亚洲一区亚洲| 亚洲高清免费| 国产麻豆精品theporn| 美腿丝袜亚洲色图| 亚洲在线免费观看| 亚洲国产精品精华液2区45| 性色av一区二区三区在线观看| 亚洲国产日韩美| 国产伦精品一区二区三区视频黑人| 麻豆9191精品国产| 午夜精品久久99蜜桃的功能介绍| 亚洲成人在线视频网站| 一区在线视频| 国产精品家庭影院| 欧美激情综合亚洲一二区| 午夜精彩国产免费不卡不顿大片| 亚洲国产天堂久久综合| 久久久综合网| 欧美一区免费视频| 亚洲视屏一区| 日韩视频免费观看高清在线视频| 狠狠综合久久| 国产伦理一区| 国产精品毛片一区二区三区 | 久久av红桃一区二区小说| 99国产精品99久久久久久粉嫩| 欧美sm极限捆绑bd| 久久久视频精品| 欧美一区国产一区| 亚洲女女女同性video| 日韩视频在线一区二区三区| 亚洲高清资源| 亚洲欧洲精品一区二区| 精品99视频| 一区二区在线观看av| 国产亚洲精品一区二区| 国产精品一区二区视频| 国产精品免费一区二区三区在线观看| 欧美激情亚洲| 欧美精品999| 免费观看国产成人| 欧美成年人网| 欧美乱妇高清无乱码| 欧美精品一区二| 欧美日韩视频一区二区| 欧美午夜宅男影院| 国产精品大片| 国产午夜精品理论片a级大结局| 国产精品一区二区在线观看网站 | 久久久久久69| 免费成人黄色片| 欧美黄色影院| 国产精品盗摄一区二区三区| 国产精品日韩欧美一区| 国产一区二区福利| 亚洲福利国产精品| 亚洲精品乱码久久久久久按摩观| 亚洲精品偷拍| 亚洲欧美日韩在线不卡| 久久激情视频久久| 欧美成人精品福利| 亚洲精品三级| 亚洲欧美精品suv| 久久午夜影视| 欧美日韩国产精品自在自线| 国产精品素人视频| 亚洲电影毛片| 亚洲性人人天天夜夜摸| 久久久国产亚洲精品| 欧美成人一区二区三区| 99视频精品| 久久精品一区二区| 欧美日韩综合一区| 国产综合久久| 亚洲色诱最新| 久久综合一区二区| 一本大道久久a久久精二百| 欧美一区二区三区婷婷月色| 欧美激情一区二区三区不卡| 国产精品久久久久毛片大屁完整版 | 亚洲视频在线播放| 午夜激情一区| 麻豆亚洲精品| 国产精品久久婷婷六月丁香| 精品999成人| 亚洲欧美日本视频在线观看| 久久精品噜噜噜成人av农村| 亚洲人午夜精品免费| 久久成人久久爱| 国产精品国产三级国产aⅴ入口 | 亚洲人成免费| 欧美综合国产|