Merging from V3_2_6pre4
@ -350,7 +350,6 @@ echo
|
||||
|
||||
AC_OUTPUT_COMMANDS([ \
|
||||
chmod +x ./bin/*; \
|
||||
chmod +x ./bin/salome/*; \
|
||||
])
|
||||
|
||||
# This list is initiated using autoscan and must be updated manually
|
||||
|
@ -16,14 +16,53 @@ if (navigator.appName !="Netscape")
|
||||
<!--
|
||||
img_whs1 { width:20px; height:20px; border-style:none; }
|
||||
p.whs2 { font-size:12pt; }
|
||||
p.whs3 { font-size:12pt; margin-left:40px; }
|
||||
img_whs4 { border:none; width:312px; height:359px; float:none; border-style:none; }
|
||||
p.whs5 { color:#808080; font-size:12pt; }
|
||||
p.whs6 { font-size:12pt; color:#000000; }
|
||||
p.whs7 { color:#808080; font-size:12pt; margin-left:40px; }
|
||||
img_whs8 { border:none; width:330px; height:283px; float:none; border-style:none; }
|
||||
p.whs3 { font-size:12pt; font-weight:normal; }
|
||||
p.whs4 { font-size:12pt; margin-left:40px; }
|
||||
img_whs5 { border:none; width:312px; height:359px; float:none; border-style:none; }
|
||||
p.whs6 { color:#808080; font-size:12pt; }
|
||||
p.whs7 { font-size:12pt; color:#000000; font-weight:normal; }
|
||||
img_whs8 { border:none; width:400px; height:385px; float:none; border-style:none; }
|
||||
p.whs9 { font-size:12pt; color:#000000; }
|
||||
table.whs10 { x-cell-content-align:top; width:86.687%; border-spacing:0px; }
|
||||
col.whs11 { width:38.452%; }
|
||||
col.whs12 { width:28.09%; }
|
||||
col.whs13 { width:16.729%; }
|
||||
tr.whs14 { x-cell-content-align:top; }
|
||||
td.whs15 { width:38.452%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-right-style:none; border-left-style:none; border-top-style:none; }
|
||||
td.whs16 { width:28.09%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-right-style:none; border-top-style:none; }
|
||||
td.whs17 { width:16.729%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-top-style:none; border-right-style:none; }
|
||||
td.whs18 { width:38.452%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-bottom-style:none; }
|
||||
img_whs19 { border:none; float:none; width:316px; height:270px; border-style:none; }
|
||||
td.whs20 { width:28.09%; padding-right:10px; padding-left:10px; border-right-style:none; border-bottom-style:none; }
|
||||
img_whs21 { border:none; width:212px; height:270px; float:none; border-style:none; }
|
||||
td.whs22 { width:16.729%; padding-right:10px; padding-left:10px; border-right-style:none; border-bottom-style:none; }
|
||||
table.whs23 { x-cell-content-align:top; width:100%; border-spacing:0px; }
|
||||
col.whs24 { width:100%; }
|
||||
tr.whs25 { x-cell-content-align:top; height:40px; }
|
||||
td.whs26 { width:100%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-left-style:none; border-top-style:none; border-right-style:none; }
|
||||
p.whs27 { margin-right:-6px; }
|
||||
tr.whs28 { x-cell-content-align:top; height:22px; }
|
||||
td.whs29 { width:100%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-left-style:none; border-right-style:none; }
|
||||
tr.whs30 { x-cell-content-align:top; height:41px; }
|
||||
tr.whs31 { x-cell-content-align:top; height:30px; }
|
||||
td.whs32 { width:100%; padding-right:10px; padding-left:10px; border-left-style:none; border-bottom-style:none; border-right-style:none; }
|
||||
p.whs33 { margin-left:0px; }
|
||||
img_whs34 { border:none; float:none; border-style:none; width:318px; height:269px; }
|
||||
p.whs35 { color:#808080; font-size:12pt; margin-left:40px; }
|
||||
-->
|
||||
</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
|
||||
</style><script type="text/javascript" language="JavaScript">
|
||||
<!--
|
||||
if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
|
||||
{
|
||||
var strNSS = "<style type='text/css'>";
|
||||
strNSS += "p.whs27 {margin-right:1pt; }";
|
||||
strNSS += "p.whs33 {margin-left:1pt; }";
|
||||
strNSS +="</style>";
|
||||
document.write(strNSS);
|
||||
}
|
||||
//-->
|
||||
</script>
|
||||
<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
|
||||
<!--
|
||||
function reDo() {
|
||||
if (innerWidth != origWidth || innerHeight != origHeight)
|
||||
@ -91,39 +130,128 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">You
|
||||
can define an</span> Arc <span style="font-weight: normal;">by</span>
|
||||
<span style="font-weight: normal;">three</span><span style="font-weight: bold;"><B>
|
||||
Points </B></span><span style="font-weight: normal;">that lie on it, where
|
||||
</span></b>Point1 is the starting point, Point2 is a middle point of the
|
||||
arc and Point3 is the ending point of the arc.</p>
|
||||
<p class="whs3"><b style="font-weight: bold;"><span
|
||||
style="font-weight: normal;">There are 2 algorithms to create an </span><span
|
||||
style="font-weight: bold;"><B>Arc</B></span><span style="font-weight: normal;">
|
||||
in the 3D space. </span></b></p>
|
||||
|
||||
<p class="whs2"><b><span style="font-weight: normal;">The</span>
|
||||
Result <span style="font-weight: normal;">of the operation will be a</span></b><b>
|
||||
<span style="font-weight: normal;">GEOM_Object (edge).</span></b></p>
|
||||
<p class="whs2"><b><span style="font-weight: normal;">The Result
|
||||
of each operation will be a</span></b><b> <span style="font-weight: normal;">GEOM_Object
|
||||
(edge).</span></b></p>
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
<p class="whs2"><b style="font-weight: bold;">TUI Command:</b>
|
||||
<span style="font-style: italic;"><I>geompy.MakeArc(Point1, Point2, Point3)</I></span></p>
|
||||
<p class="whs2"><b style="font-weight: bold;"><span style="font-weight: normal;">Firstly,
|
||||
you can define an</span> Arc <span style="font-weight: normal;">by</span>
|
||||
<span style="font-weight: normal;">three</span><span style="font-weight: bold;"><B>
|
||||
Points </B></span><span style="font-weight: normal;">that lie on it, where
|
||||
</span></b>Point1
|
||||
is the starting point, Point2
|
||||
is a middle point of the arc and Point3
|
||||
is the ending point of the arc.</p>
|
||||
|
||||
<p class="whs2"><b style="font-weight: bold;">TUI
|
||||
Command:</b> <span style="font-style: italic;"><I>geompy.MakeArc(Point1,
|
||||
Point2, Point3)</I></span></p>
|
||||
|
||||
<p class="whs2"><b style="font-weight: bold;">Arguments:</b>
|
||||
Name + 3 vertices.</p>
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
<p class="whs3"><img src="pics/arc.png" x-maintain-ratio="TRUE" width="312px" height="359px" border="0" class="img_whs4"></p>
|
||||
<p class="whs4"><img src="pics/arc.png" x-maintain-ratio="TRUE" width="312px" height="359px" border="0" class="img_whs5"></p>
|
||||
|
||||
<p class="whs5"> </p>
|
||||
<p class="whs6"> </p>
|
||||
|
||||
<p class="whs6"><b style="font-weight: bold;">Example:</b></p>
|
||||
<p class="whs7"><b style="font-weight: normal;">Secondly,
|
||||
you can define an <span style="font-weight: bold;"><B>Arc</B></span> by </b><span
|
||||
style="font-weight: bold;"><B>Center, Start</B></span> and <span style="font-weight: bold;"><B>End</B></span>
|
||||
points. The arc is built from the <span style="font-weight: bold;"><B>Start</B></span>
|
||||
point to the <span style="font-weight: bold;"><B>End</B></span> point. The radius
|
||||
of the arc is defined by the distance between the <span style="font-weight: bold;"><B>Center</B></span>
|
||||
point and the <span style="font-weight: bold;"><B>Start</B></span> point. The
|
||||
<span style="font-weight: bold;"><B>End</B></span> point defines the angle of
|
||||
the arc. If the distance between the <span style="font-weight: bold;"><B>Center</B></span>
|
||||
point and the <span style="font-weight: bold;"><B>End</B></span> point is not
|
||||
equal to the radius, the arc will be built anyway.</p>
|
||||
|
||||
<p class="whs5"> </p>
|
||||
<p class="whs7"><span style="font-weight: bold;"><B>Reverse</B></span>
|
||||
radio button allows to change the direction of the arc.</p>
|
||||
|
||||
<p class="whs7"><img src="pics/arcsn.png" x-maintain-ratio="TRUE" width="330px" height="283px" border="0" class="img_whs8"></p>
|
||||
<p class="whs7"><b style="font-weight: bold;">TUI Command:</b>
|
||||
<span style="font-style: italic;"><I>geompy.MakeArcCenter(Center Point, Start
|
||||
Point, End Point, boolean Sense)</I></span></p>
|
||||
|
||||
<p class="whs7"><span style="font-style: italic;"><I><b
|
||||
style="font-weight: bold;">A</I></span>rguments:</b> Name + 3 vertices + Boolean.</p>
|
||||
|
||||
<p class="whs7"> </p>
|
||||
|
||||
<p class="whs4"><img src="pics/arc2.png" x-maintain-ratio="TRUE" width="400px" height="385px" border="0" class="img_whs8"></p>
|
||||
|
||||
<p class="whs9"> </p>
|
||||
|
||||
<p class="whs9"><b style="font-weight: bold;">Example:</b></p>
|
||||
|
||||
<p class="whs9"> </p>
|
||||
|
||||
<table x-use-null-cells cellspacing="0" width="86.687%" class="whs10">
|
||||
<col class="whs11">
|
||||
<col class="whs12">
|
||||
<col class="whs13">
|
||||
<col class="whs13">
|
||||
|
||||
<tr valign="top" class="whs14">
|
||||
<td width="38.452%" class="whs15">
|
||||
<p>Arc by three points lying on it.</td>
|
||||
<td width="28.09%" class="whs16">
|
||||
<p>Arc by Start, End and Center.</td>
|
||||
<td colspan="1" rowspan="1" width="16.729%" class="whs17">
|
||||
<p> </td>
|
||||
<td width="16.729%" class="whs17">
|
||||
<p>Reversed arc.</td></tr>
|
||||
|
||||
<tr valign="top" class="whs14">
|
||||
<td width="38.452%" class="whs18">
|
||||
<p class="whs6"><img src="pics/arcsn.png" x-maintain-ratio="TRUE" width="316px" height="270px" border="0" class="img_whs19"></td>
|
||||
<td width="28.09%" class="whs20">
|
||||
<p><img src="pics/arcsn1.png" x-maintain-ratio="TRUE" width="212px" height="270px" border="0" class="img_whs21"></td>
|
||||
<td colspan="1" rowspan="1" width="16.729%" class="whs22">
|
||||
<table x-use-null-cells cellspacing="0" width="100%" class="whs23">
|
||||
<col class="whs24">
|
||||
|
||||
<tr valign="top" class="whs25">
|
||||
<td width="100%" class="whs26">
|
||||
<p class="whs27">Start Point</td></tr>
|
||||
|
||||
<tr valign="top" class="whs28">
|
||||
<td width="100%" class="whs29">
|
||||
<p> </td></tr>
|
||||
|
||||
<tr valign="top" class="whs30">
|
||||
<td width="100%" class="whs29">
|
||||
<p> </td></tr>
|
||||
|
||||
<tr valign="top" class="whs25">
|
||||
<td width="100%" class="whs29">
|
||||
<p>Center Point</td></tr>
|
||||
|
||||
<tr valign="top" class="whs31">
|
||||
<td width="100%" class="whs29">
|
||||
<p> </td></tr>
|
||||
|
||||
<tr valign="top" class="whs25">
|
||||
<td width="100%" class="whs32">
|
||||
<p>End Point</td></tr>
|
||||
</table>
|
||||
<p class="whs33"> </p>
|
||||
<p> </td>
|
||||
<td width="16.729%" class="whs22">
|
||||
<p><img src="pics/arcsn2.png" x-maintain-ratio="TRUE" width="318px" height="269px" border="0" class="img_whs34"></td></tr>
|
||||
</table>
|
||||
|
||||
<p class="whs35"> </p>
|
||||
|
||||
<p class="whs2">Our TUI Scripts provide you with useful examples
|
||||
of creation of <a href="basic_geometrical_objects.htm">Basic Geometric
|
||||
Objects</a>. </p>
|
||||
|
@ -217,6 +217,7 @@ image56.gif
|
||||
files\salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image73.gif
|
||||
files\salome2_sp3_booleangui_functions_salome2_sp3_booleangui_functions_image4.gif
|
||||
salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image17.gif
|
||||
pics\view_rotation_point.png
|
||||
pics\clipping.png
|
||||
pics\image98.gif
|
||||
pics\archimedesn1.png
|
||||
@ -317,7 +318,6 @@ pics\sectionsn.png
|
||||
pics\fusesn2.png
|
||||
pics\toruses.png
|
||||
pics\circles.png
|
||||
pics\neo-materials.png
|
||||
pics\neo-obj3.png
|
||||
pics\neo-localcs2.png
|
||||
pics\measures1.png
|
||||
@ -332,6 +332,7 @@ image29.gif
|
||||
image160.jpg
|
||||
files\salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image133.gif
|
||||
files\salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image34.gif
|
||||
pics\partition2.png
|
||||
pics\changeorientation.png
|
||||
pics\pipesn.png
|
||||
pics\pipe_wire_edgesn.png
|
||||
@ -347,7 +348,6 @@ pics\neo-obj4.png
|
||||
pics\neo-localcs3.png
|
||||
pics\repair4.png
|
||||
pics\bool2.png
|
||||
pics\partition2.png
|
||||
pics\block5.png
|
||||
pics\sphere2.png
|
||||
pics\point1.png
|
||||
@ -367,6 +367,7 @@ pics\ellipse.png
|
||||
pics\circle1.png
|
||||
image3.gif
|
||||
files\salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image56.gif
|
||||
pics\set_rotation_point_dialog1.png
|
||||
pics\extrusion1.png
|
||||
image4.gif
|
||||
pics\isos_u12_v12sn.png
|
||||
@ -387,6 +388,7 @@ pics\circle2.png
|
||||
pics\point3.png
|
||||
image185.jpg
|
||||
files\salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image57.gif
|
||||
pics\set_rotation_point_dialog2.png
|
||||
pics\extrusion2.png
|
||||
image5.gif
|
||||
pics\free_boudaries2.png
|
||||
@ -457,6 +459,7 @@ files\salome2_sp3_repairgui_functions_salome2_sp3_repairgui_functions_image122.g
|
||||
files\salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image100.gif
|
||||
files\salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image99.gif
|
||||
salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image13.gif
|
||||
pics\transformation4a.png
|
||||
pics\image100.gif
|
||||
pics\geomcreategroup.png
|
||||
pics\commonsn.png
|
||||
|
BIN
doc/salome/gui/GEOM/image2.jpg
Executable file
After Width: | Height: | Size: 13 KiB |
BIN
doc/salome/gui/GEOM/image34.gif
Executable file
After Width: | Height: | Size: 1.8 KiB |
BIN
doc/salome/gui/GEOM/image36.gif
Executable file
After Width: | Height: | Size: 2.9 KiB |
BIN
doc/salome/gui/GEOM/image47.gif
Executable file
After Width: | Height: | Size: 2.9 KiB |
@ -1,258 +0,0 @@
|
||||
<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
|
||||
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>OCC_Viewer</title>
|
||||
<meta http-equiv="content-type" content="text/html; charset=windows-1252">
|
||||
<meta name="generator" content="RoboHelp by eHelp Corporation www.ehelp.com">
|
||||
<link rel="stylesheet" href="default_ns.css"><script type="text/javascript" language="JavaScript" title="WebHelpSplitCss">
|
||||
<!--
|
||||
if (navigator.appName !="Netscape")
|
||||
{ document.write("<link rel='stylesheet' href='default.css'>");}
|
||||
//-->
|
||||
</script>
|
||||
<style type="text/css">
|
||||
<!--
|
||||
img_whs1 { border:none; width:313px; height:26px; float:none; }
|
||||
ul.whs2 { list-style:disc; }
|
||||
img_whs3 { border:none; width:26px; height:25px; float:none; border-style:none; }
|
||||
img_whs4 { border:none; width:27px; height:25px; float:none; border-style:none; }
|
||||
img_whs5 { border:none; width:24px; height:23px; float:none; border-style:none; }
|
||||
img_whs6 { border:none; width:24px; height:24px; float:none; border-style:none; }
|
||||
img_whs7 { border:none; width:25px; height:24px; float:none; border-style:none; }
|
||||
img_whs8 { border:none; width:23px; height:23px; float:none; border-style:none; }
|
||||
p.whs9 { margin-top:0pt; margin-bottom:0pt; }
|
||||
img_whs10 { border:none; border-style:none; width:20px; height:20px; float:none; }
|
||||
p.whs11 { margin-left:80px; }
|
||||
img_whs12 { border:none; border-style:none; width:410px; height:255px; float:none; }
|
||||
img_whs13 { border:none; width:26px; height:26px; float:none; border-style:none; }
|
||||
img_whs14 { border:none; width:78px; height:147px; float:none; border-style:none; }
|
||||
img_whs15 { border:none; height:26px; float:none; width:29px; border-style:none; }
|
||||
img_whs16 { border:none; width:26px; height:24px; float:none; border-style:none; }
|
||||
img_whs17 { border:none; width:28px; height:29px; float:none; border-style:none; }
|
||||
img_whs18 { border:none; width:29px; height:26px; float:none; border-style:none; }
|
||||
img_whs19 { border:none; width:395px; height:280px; float:none; border-style:none; }
|
||||
p.whs20 { margin-left:40px; }
|
||||
p.whs21 { margin-left:84px; }
|
||||
-->
|
||||
</style><script type="text/javascript" language="JavaScript">
|
||||
<!--
|
||||
if ((navigator.appName == "Netscape") && (parseInt(navigator.appVersion) == 4))
|
||||
{
|
||||
var strNSS = "<style type='text/css'>";
|
||||
strNSS += "p.whs9 {margin-top:1pt;margin-bottom:1pt; }";
|
||||
strNSS +="</style>";
|
||||
document.write(strNSS);
|
||||
}
|
||||
//-->
|
||||
</script>
|
||||
<script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
|
||||
<!--
|
||||
function reDo() {
|
||||
if (innerWidth != origWidth || innerHeight != origHeight)
|
||||
location.reload();
|
||||
}
|
||||
if ((parseInt(navigator.appVersion) == 4) && (navigator.appName == "Netscape")) {
|
||||
origWidth = innerWidth;
|
||||
origHeight = innerHeight;
|
||||
onresize = reDo;
|
||||
}
|
||||
onerror = null;
|
||||
//-->
|
||||
</script>
|
||||
<style type="text/css">
|
||||
<!--
|
||||
div.WebHelpPopupMenu { position:absolute; left:0px; top:0px; z-index:4; visibility:hidden; }
|
||||
p.WebHelpNavBar { text-align:right; }
|
||||
-->
|
||||
</style><script type="text/javascript" language="javascript1.2" src="whmsg.js"></script>
|
||||
<script type="text/javascript" language="javascript" src="whver.js"></script>
|
||||
<script type="text/javascript" language="javascript1.2" src="whproxy.js"></script>
|
||||
<script type="text/javascript" language="javascript1.2" src="whutils.js"></script>
|
||||
<script type="text/javascript" language="javascript1.2" src="whtopic.js"></script>
|
||||
<script type="text/javascript" language="javascript1.2">
|
||||
<!--
|
||||
if (window.gbWhTopic)
|
||||
{
|
||||
if (window.setRelStartPage)
|
||||
{
|
||||
addTocInfo("Geometry module\nViewing geometrical objects\nOCC 3D Viewer");
|
||||
addButton("show",BTN_IMG,"Show","","","","",0,0,"whd_show0.gif","whd_show2.gif","whd_show1.gif");
|
||||
addButton("hide",BTN_IMG,"Hide","","","","",0,0,"whd_hide0.gif","whd_hide2.gif","whd_hide1.gif");
|
||||
|
||||
}
|
||||
|
||||
|
||||
if (window.setRelStartPage)
|
||||
{
|
||||
setRelStartPage("index.htm");
|
||||
|
||||
autoSync(1);
|
||||
sendSyncInfo();
|
||||
sendAveInfoOut();
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
if (window.gbIE4)
|
||||
document.location.reload();
|
||||
//-->
|
||||
</script>
|
||||
</head>
|
||||
<body><script type="text/javascript" language="javascript1.2">
|
||||
<!--
|
||||
if (window.writeIntopicBar)
|
||||
writeIntopicBar(4);
|
||||
//-->
|
||||
</script>
|
||||
<h1>OCC 3D Viewer</h1>
|
||||
|
||||
<p><span style="font-weight: bold;"><B>OCC (Open CasCade) 3D viewer</B></span>
|
||||
has been developed on the basis of Open CASCADE Technology. This is the
|
||||
default viewer for Geometry Module, providing good representation of construction
|
||||
and transformation of geometrical objects. Only this viewer allows to
|
||||
work with groups and sub-shapes. This viewer can also work in Mesh module,
|
||||
however, it doesn't allow to visualize meshes. </p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p>The functions of OCC viewer are available via its Viewer Toolbar. Buttons
|
||||
marked with small downward triangles have extended functionality which
|
||||
can be accessed by locking on them with left mouse button. </p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><img src="pics/image95.gif" x-maintain-ratio="TRUE" width="313px" height="26px" border="0" class="img_whs1"></p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<ul type="disc" class="whs2">
|
||||
|
||||
<li class=kadov-p><p><img src="pics/image77.gif" x-maintain-ratio="TRUE" width="26px" height="25px" border="0" class="img_whs3"> <span style="font-weight: bold;"><B>Dump
|
||||
View</B></span> - exports an object from the viewer in bmp, png, jpg or jpeg
|
||||
image format. </p></li>
|
||||
|
||||
<li class=kadov-p><p><img src="pics/image88.gif" x-maintain-ratio="TRUE" width="27px" height="25px" border="0" class="img_whs4"> <span style="font-weight: bold;"><B>Show/Hide
|
||||
Trihedron</B></span> - shows or hides coordinate axes. </p></li>
|
||||
|
||||
<li class=kadov-p><p><img src="pics/image96.gif" x-maintain-ratio="TRUE" width="24px" height="23px" border="0" class="img_whs5"> <span
|
||||
style="font-weight: bold;"><B>Fit all - </B></span>allows
|
||||
to select a point to be the center of a scene representing all displayed
|
||||
objects in the visible area.<span style="font-weight: bold;"> <B></B></span></p></li>
|
||||
|
||||
<li class=kadov-p><p> <img src="pics/image97.gif" x-maintain-ratio="TRUE" width="24px" height="24px" border="0" class="img_whs6"> <span style="font-weight: bold;"><B>Fit area</B></span> - resizes
|
||||
the view to place in the visible area only the contents of a frame drawn
|
||||
with pressed left mouse button.</p></li>
|
||||
|
||||
<li class=kadov-p><p><img src="pics/image98.gif" x-maintain-ratio="TRUE" width="25px" height="24px" border="0" class="img_whs7"> <span style="font-weight: bold;"><B>Zoom</B></span>
|
||||
- allows
|
||||
to zoom in and out. </p></li>
|
||||
|
||||
<li class=kadov-p><p><img src="pics/image99.gif" x-maintain-ratio="TRUE" width="23px" height="23px" border="0" class="img_whs8"> <span style="font-weight: bold;"><B>Panning</B></span>
|
||||
- if the represented objects are greater that the visible area and you
|
||||
don't wish to use <span style="font-weight: bold;"><B>Fit all</B></span> functionality,
|
||||
click on this button and you'll be able to drag the scene to see its remote
|
||||
parts. </p></li>
|
||||
|
||||
<li class=kadov-p><p><img src="pics/image100.gif" x-maintain-ratio="TRUE" width="24px" height="24px" border="0" class="img_whs6"> <span style="font-weight: bold;"><B>Global
|
||||
panning</B></span> - represents all displayed objects in the visible area.
|
||||
</p></li>
|
||||
</ul>
|
||||
|
||||
<ul type="disc" class="whs2">
|
||||
|
||||
<li class=kadov-p><p class="whs9"><img src="pics/view_rotation_point.png" x-maintain-ratio="TRUE" width="20px" height="20px" border="0" class="img_whs10"> <span style="font-weight: bold;"><B>Change rotation point</B></span>
|
||||
- allows to to choose the point around which the rotation is performed</p></li>
|
||||
</ul>
|
||||
|
||||
<p class="whs11"><img src="pics/set_rotation_point_dialog1.png" x-maintain-ratio="TRUE" width="410px" height="255px" border="0" class="img_whs12"></p>
|
||||
|
||||
<p class="whs11"> </p>
|
||||
|
||||
<p class="whs11">By default the rotation point is located
|
||||
in the Center of the bounding box of an object. </p>
|
||||
|
||||
<p class="whs11"> </p>
|
||||
|
||||
<p class="whs11"><img src="pics/set_rotation_point_dialog2.png" x-maintain-ratio="TRUE" width="410px" height="255px" border="0" class="img_whs12"></p>
|
||||
|
||||
<p class="whs11"> </p>
|
||||
|
||||
<p class="whs11">Unchecking <span style="font-weight: bold;"><B>Use
|
||||
Bounding Box Center</B></span> box allows you to define the coordinates of
|
||||
the rotation point manually. </p>
|
||||
|
||||
<p class="whs11"> </p>
|
||||
|
||||
<p class="whs11"><span style="font-weight: bold;"><B>Set to Origin</B></span>
|
||||
button restores the default rotation point coordinates.</p>
|
||||
|
||||
<p class="whs11"><span style="font-weight: bold;"><B>Select Point
|
||||
from View</B></span> button allows to select the rotation point in the 3D
|
||||
Viewer</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<ul type="disc" class="whs2">
|
||||
|
||||
<li class=kadov-p><p><img src="pics/image89.gif" x-maintain-ratio="TRUE" width="26px" height="26px" border="0" class="img_whs13"> <span style="font-weight: bold;"><B>Rotation</B></span>
|
||||
- allows to rotate the selected object using the mouse. </p></li>
|
||||
|
||||
<li class=kadov-p><p><img src="pics/image102.gif" x-maintain-ratio="TRUE" width="78px" height="147px" border="0" class="img_whs14"> These buttons orientate the scene
|
||||
strictly about coordinate axes.</p></li>
|
||||
|
||||
<li class=kadov-p><p><img src="pics/image91.gif" x-maintain-ratio="TRUE" height="26px" width="29px" border="0" class="img_whs15"> <span style="font-weight: bold;"><B>Reset</B></span>
|
||||
- restores the default position (isometric) of objects in the scene.</p></li>
|
||||
|
||||
<li class=kadov-p><p><img src="pics/image103.gif" x-maintain-ratio="TRUE" width="26px" height="24px" border="0" class="img_whs16"> <span style="font-weight: bold;"><B>Memorise
|
||||
view</B></span> - saves the current position of objects in the scene</p></li>
|
||||
|
||||
<li class=kadov-p><p><img src="pics/image105.gif" x-maintain-ratio="TRUE" width="26px" height="25px" border="0" class="img_whs3"> <span style="font-weight: bold;"><B>Restore
|
||||
view - </B></span>restores the<span style="font-weight: bold;"> <B></B></span>saved
|
||||
position of objects in the scene</p></li>
|
||||
|
||||
<li class=kadov-p><p><img src="pics/image86.gif" x-maintain-ratio="TRUE" width="28px" height="29px" border="0" class="img_whs17"> <span style="font-weight: bold;"><B>Clone
|
||||
view</B></span> - opens a new duplicate scene.</p></li>
|
||||
|
||||
<li class=kadov-p><p><img src="pics/image106.gif" x-maintain-ratio="TRUE" width="29px" height="26px" border="0" class="img_whs18"> <span style="font-weight: bold;"><B>Clipping
|
||||
-</B></span> allows to create cross-section views (clipping planes) of geometrical
|
||||
objects.</p></li>
|
||||
</ul>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p class="whs11"><img src="pics/clipping.png" x-maintain-ratio="TRUE" width="395px" height="280px" border="0" class="img_whs19"></p>
|
||||
|
||||
<p class="whs20"> </p>
|
||||
|
||||
<ul type="disc" class="whs2">
|
||||
|
||||
<li class=kadov-p><p class="whs20"><span style="font-weight: bold;"><B>Base
|
||||
point</B></span> - allows to define the coordinates of the base point for
|
||||
the clipping plane. Click </p></li>
|
||||
|
||||
<li class=kadov-p><p class="whs21"><span style="font-weight: bold;"><B>Reset</B></span>
|
||||
- returns the base point to coordinate origin. </p></li>
|
||||
|
||||
<li class=kadov-p><p class="whs20"><span style="font-weight: bold;"><B>Direction</B></span>
|
||||
- allows to define the orientation of the clipping plane.</p></li>
|
||||
|
||||
<li class=kadov-p><p class="whs21"><span style="font-weight: bold;"><B>Invert</B></span>
|
||||
- allows to select which part of the object will be removed and which
|
||||
will remain after clipping. </p></li>
|
||||
|
||||
<li class=kadov-p><p class="whs20"><span style="font-weight: bold;"><B>Preview</B></span>
|
||||
- allows to see the results of clipping in the viewer.</p></li>
|
||||
</ul>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<script type="text/javascript" language="javascript1.2">
|
||||
<!--
|
||||
if (window.writeIntopicBar)
|
||||
writeIntopicBar(0);
|
||||
//-->
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
BIN
doc/salome/gui/GEOM/pics/arc2.png
Normal file
After Width: | Height: | Size: 16 KiB |
BIN
doc/salome/gui/GEOM/pics/arcsn1.png
Normal file
After Width: | Height: | Size: 2.2 KiB |
BIN
doc/salome/gui/GEOM/pics/arcsn2.png
Normal file
After Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 984 B |
Before Width: | Height: | Size: 1022 B |
Before Width: | Height: | Size: 1017 B |
Before Width: | Height: | Size: 1000 B |
Before Width: | Height: | Size: 1020 B |
Before Width: | Height: | Size: 1010 B |
Before Width: | Height: | Size: 2.6 KiB |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 1.0 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 11 KiB |
Before Width: | Height: | Size: 293 B |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 14 KiB |
@ -21,7 +21,8 @@ p.whs4 { font-size:12pt; font-weight:bold; }
|
||||
p.whs5 { font-size:12pt; margin-left:40px; }
|
||||
img_whs6 { border:none; width:312px; height:324px; float:none; border-style:none; }
|
||||
img_whs7 { border:none; width:312px; height:358px; float:none; border-style:none; }
|
||||
img_whs8 { border:none; width:298px; height:302px; float:none; border-style:none; }
|
||||
p.whs8 { font-size:12pt; margin-left:40px; font-weight:bold; }
|
||||
img_whs9 { border:none; width:156px; height:203px; }
|
||||
-->
|
||||
</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
|
||||
<!--
|
||||
@ -137,7 +138,7 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
<p class="whs5"><b style="font-weight: bold;"><img src="pics/vectors.png" x-maintain-ratio="TRUE" width="298px" height="302px" border="0" class="img_whs8"></b></p>
|
||||
<p class="whs8"><img src="image34.gif" width="156px" height="203px" border="0" class="img_whs9"></p>
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
|
@ -19,6 +19,7 @@ ul.whs2 { list-style:disc; }
|
||||
p.whs3 { font-weight:bold; }
|
||||
img_whs4 { border:none; width:26px; height:26px; border-style:none; }
|
||||
img_whs5 { border:none; width:23px; height:24px; border-style:none; }
|
||||
img_whs6 { border:none; width:279px; height:230px; border-style:none; }
|
||||
-->
|
||||
</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
|
||||
<!--
|
||||
@ -82,11 +83,13 @@ if (window.writeIntopicBar)
|
||||
<h1>Viewing Geometrical Objects</h1>
|
||||
|
||||
<p>Newly created geometrical objects are automatically displayed in the
|
||||
<span style="font-weight: bold;"><B><a href="occ_viewer.htm">OCC 3D Viewer</a></B></span>.
|
||||
</p>
|
||||
<span style="font-weight: bold;"><B>OCC 3D Viewer</B></span>. </p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><span style="font-weight: bold;"><B>OCC 3D Viewer</B></span> is described in
|
||||
the documentation on <span style="font-weight: bold;"><B>GUI module</B></span>.</p>
|
||||
|
||||
<p>After the object has appeared in the Viewer, you can select it with
|
||||
left mouse click to change its presentation parameters and access to other
|
||||
useful options by right-clicking on the selected object<span style="font-weight: bold;"><B>.</B></span></p>
|
||||
@ -136,8 +139,9 @@ if (window.writeIntopicBar)
|
||||
all recent changes.</p></li>
|
||||
|
||||
<li class=kadov-p><p><span style="font-weight: bold;"><B>Dump view</B></span>
|
||||
- exports an object from the viewer in bmp, png, jpg or jpeg image format.
|
||||
</p></li>
|
||||
- exports an object from the viewer in bmp,
|
||||
png, jpg or
|
||||
jpeg image format. </p></li>
|
||||
|
||||
<li class=kadov-p><p><span style="font-weight: bold;"><B>Change background</B></span>
|
||||
- allows to redefine the background color. By default it is black. </p></li>
|
||||
@ -145,6 +149,26 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p>Some of these functionalities are available through right-clicking on
|
||||
the viewer background:</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><img src="image2.jpg" width="279px" height="230px" border="0" class="img_whs6"></p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<ul type="disc" class="whs2">
|
||||
|
||||
<li class=kadov-p><p><span style="font-weight: bold;"><B>Select Only</B></span>
|
||||
provides a filter for exclusive selection of objects of a certain type.
|
||||
</p></li>
|
||||
</ul>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<script type="text/javascript" language="javascript1.2">
|
||||
<!--
|
||||
if (window.writeIntopicBar)
|
||||
|
@ -48,7 +48,7 @@ aWE("23",44);
|
||||
aWE("25",3,5,6,57,74);
|
||||
aWE("250",37,44,59,68);
|
||||
aWE("2d",5,35,59,65,74,31);
|
||||
aWE("3",1,2,5,7,11,14,18,20,37,40,44,48,55,56,59,67,74,75,31,78);
|
||||
aWE("3",1,2,5,7,11,14,18,20,37,40,44,48,55,56,59,61,67,74,75,31,78);
|
||||
aWE("30",3,8,11,18,37,44,57,59,68,74);
|
||||
aWE("300",37,68);
|
||||
aWE("300000",44);
|
||||
@ -56,7 +56,7 @@ aWE("31",11);
|
||||
aWE("32",59);
|
||||
aWE("32000",44);
|
||||
aWE("35",6,8,57,59,74);
|
||||
aWE("3d",14,21,35,43,51,53,55,56,59,65,71,31,33,78,79,81,83);
|
||||
aWE("3d",14,21,35,43,51,55,56,59,65,71,31,33,78,79,81,83);
|
||||
aWE("4",50,37,40,44,48,67,74,31);
|
||||
aWE("40",6,8,18,37,57,59,74);
|
||||
aWE("41",59);
|
||||
@ -87,16 +87,16 @@ aWE("addobject",40,83);
|
||||
aWE("addtostudy",3,4,5,6,8,11,18,37,40,57,59,68,74);
|
||||
aWE("addtostudyinfath",5,59);
|
||||
aWE("advanc",7,19,24,28,29,37,66,69,70,80);
|
||||
aWE("algorithm",7,14,20,21,23,28,43,46,53,55,56,67,70,77,78,82);
|
||||
aWE("algorithm",7,14,20,21,23,28,43,46,55,56,61,67,70,77,78,82);
|
||||
aWE("all_fac",59);
|
||||
aWE("allow",50,9,26,45,46,47,51,61,64,65,67,72,75,33,79);
|
||||
aWE("allow",50,9,26,43,45,46,47,51,53,61,64,65,67,72,75,33,79);
|
||||
aWE("along",7,9,46,49,52,54,74,75);
|
||||
aWE("alongsid",31);
|
||||
aWE("already",40);
|
||||
aWE("although",46);
|
||||
aWE("angl",47,59,60,61,65,67,74);
|
||||
aWE("anoth",22,42,55,56,70,74);
|
||||
aWE("any",53,61,65,75);
|
||||
aWE("any",43,53,61,65,75);
|
||||
aWE("ap",43,74,83);
|
||||
aWE("appear",79,83);
|
||||
aWE("append",18,37,74);
|
||||
@ -110,14 +110,14 @@ aWE("arc2",18);
|
||||
aWE("archimed",2,4);
|
||||
aWE("area",44,51);
|
||||
aWE("argument",0,1,2,50,7,9,10,14,15,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,41,42,43,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,66,67,69,70,71,72,73,75,77,31,78,80,82,83);
|
||||
aWE("around",47,60,74);
|
||||
aWE("around",47,51,60,74);
|
||||
aWE("automatical",50,43,79);
|
||||
aWE("availabl",0,50,15,32,51,67,71,72,73,83);
|
||||
aWE("ax",7,43,49,51,75);
|
||||
aWE("axi",18,20,23,43,45,46,47,60,61,74,33);
|
||||
aWE("b",3,21,65);
|
||||
aWE("background",79);
|
||||
aWE("bas",20,23,28,47,51,54,59,60,62,65,75,77);
|
||||
aWE("bas",20,23,28,43,47,51,54,59,60,62,65,75,77);
|
||||
aWE("baseshap",54);
|
||||
aWE("basi",28,51);
|
||||
aWE("basic",1,2,3,4,14,21,25,38,30,42,43,44,53,55,56,67,33,78,82);
|
||||
@ -136,11 +136,11 @@ aWE("bmp",51,79);
|
||||
aWE("boolean",6,17,22,36,38,30,63,31,33);
|
||||
aWE("both",7,20,48,49,65);
|
||||
aWE("boudari",59);
|
||||
aWE("bound",8,37,44,33);
|
||||
aWE("bound",8,37,44,51,33);
|
||||
aWE("boundari",12,59,64,72);
|
||||
aWE("boundary",12,59,73);
|
||||
aWE("boundingbox",44,33);
|
||||
aWE("box",4,50,5,7,11,16,22,27,40,32,44,57,59,65,67,73,74,76,33,80,83);
|
||||
aWE("box",4,50,5,7,11,16,22,27,40,32,44,51,53,57,59,65,67,73,74,76,33,80,83);
|
||||
aWE("box_tr1",5);
|
||||
aWE("box_tr2",5);
|
||||
aWE("box1",44,57,59);
|
||||
@ -160,15 +160,17 @@ aWE("c0",65);
|
||||
aWE("c1",65);
|
||||
aWE("c2",65);
|
||||
aWE("cad",38,30);
|
||||
aWE("calculat",33);
|
||||
aWE("calculat",43,33);
|
||||
aWE("camera",82);
|
||||
aWE("cas",50,43,48,73);
|
||||
aWE("cas",50,43,48,61,73);
|
||||
aWE("cascad",51);
|
||||
aWE("catia",32);
|
||||
aWE("cent",7,14,20,25,44,46,47,51,67,70,77,33);
|
||||
aWE("cc",51);
|
||||
aWE("cent",7,14,20,25,44,46,47,51,67,70,74,77,33);
|
||||
aWE("center",26);
|
||||
aWE("centerofscal",62);
|
||||
aWE("central",20,23,62,65);
|
||||
aWE("central",20,23,61,62,65);
|
||||
aWE("centralpoint",61);
|
||||
aWE("certain",65,83);
|
||||
aWE("chain",5);
|
||||
aWE("chamf",9,74);
|
||||
@ -176,15 +178,15 @@ aWE("chamfer_",74);
|
||||
aWE("chamfer_all",74);
|
||||
aWE("chamfer_f",74);
|
||||
aWE("chamfer_f1",74);
|
||||
aWE("chang",10,11,16,41,76,79,81);
|
||||
aWE("chang",10,11,16,41,51,76,79,81);
|
||||
aWE("changeorientation",10);
|
||||
aWE("check",12,13,27,29,44,59,65,73,33);
|
||||
aWE("check_box",5);
|
||||
aWE("checkbox",10,45,46,47,61,72,75,33);
|
||||
aWE("checkcompoundofblock",44,33);
|
||||
aWE("checkshap",44,59);
|
||||
aWE("checkshap",44,59,33);
|
||||
aWE("choic",21);
|
||||
aWE("choos",27,32,43);
|
||||
aWE("choos",27,32,43,51,53);
|
||||
aWE("circl",3,14,67);
|
||||
aWE("circle1",3);
|
||||
aWE("circle2",3);
|
||||
@ -225,7 +227,7 @@ aWE("consider",15,39,33);
|
||||
aWE("consol",33);
|
||||
aWE("constraint",50);
|
||||
aWE("construct",50,69);
|
||||
aWE("construction",21,38,30,51,31);
|
||||
aWE("construction",21,38,30,43,51,31);
|
||||
aWE("contain",0,13,15,58);
|
||||
aWE("content",40,32,51);
|
||||
aWE("continuiti",65);
|
||||
@ -237,7 +239,7 @@ aWE("contour",15,59);
|
||||
aWE("conversion",65);
|
||||
aWE("convert",65);
|
||||
aWE("coord",44);
|
||||
aWE("coordinat",7,20,23,26,43,44,46,51,56,67,70,74,75,77,33,78,82);
|
||||
aWE("coordinat",7,20,23,26,43,44,46,51,55,56,67,70,74,75,77,33,78,82);
|
||||
aWE("copy",10,45,46,61,75);
|
||||
aWE("corn",65);
|
||||
aWE("corner",7,8);
|
||||
@ -253,11 +255,10 @@ aWE("creategroup",40,83);
|
||||
aWE("creation",1,3,7,14,15,18,19,20,21,23,24,25,28,29,35,37,38,40,30,42,54,55,56,57,59,60,66,69,70,77,78,80,83);
|
||||
aWE("criteria",5);
|
||||
aWE("cros",51);
|
||||
aWE("cs",43);
|
||||
aWE("cs1",74);
|
||||
aWE("cs2",74);
|
||||
aWE("cub",46);
|
||||
aWE("current",7,42,51,67,70);
|
||||
aWE("current",7,42,51,53,67,70);
|
||||
aWE("curv",3,21,35,65,67);
|
||||
aWE("curvatur",65);
|
||||
aWE("curve2dmod",65);
|
||||
@ -281,17 +282,20 @@ aWE("defin",1,7,9,14,20,21,23,25,26,27,28,34,35,32,42,43,47,48,49,51,54,55,56,60
|
||||
aWE("definit",72);
|
||||
aWE("definition",54);
|
||||
aWE("deflection",2);
|
||||
aWE("defn",61);
|
||||
aWE("degenerat",33);
|
||||
aWE("degre",35,60,65,67);
|
||||
aWE("delet",53,83);
|
||||
aWE("delet",83);
|
||||
aWE("density",2);
|
||||
aWE("depend",48,65);
|
||||
aWE("derivativ",65);
|
||||
aWE("descr",44);
|
||||
aWE("describ",79);
|
||||
aWE("description",50,44,67,68,33);
|
||||
aWE("design",83);
|
||||
aWE("destin",38,30);
|
||||
aWE("destination",67);
|
||||
aWE("detail",79);
|
||||
aWE("detect",12,64,72);
|
||||
aWE("detection",65);
|
||||
aWE("develop",51);
|
||||
@ -302,7 +306,7 @@ aWE("dimension",7,9,23,28,47,33);
|
||||
aWE("dir",47,49);
|
||||
aWE("dir1",49);
|
||||
aWE("dir2",49);
|
||||
aWE("direct",43);
|
||||
aWE("direct",43,61);
|
||||
aWE("direction",2,14,20,25,28,43,47,48,49,51,60,61,65,67,77);
|
||||
aWE("dirfaceid1",48);
|
||||
aWE("dirfaceid1u",48);
|
||||
@ -315,6 +319,7 @@ aWE("displayon",79);
|
||||
aWE("distanc",39,44,52,65,33);
|
||||
aWE("divid",0,59);
|
||||
aWE("divideedg",0,59);
|
||||
aWE("documentation",79);
|
||||
aWE("doesn",40,51);
|
||||
aWE("don",7,10,15,28,49,51,70);
|
||||
aWE("doubl",47,48,49,67,76);
|
||||
@ -330,7 +335,7 @@ aWE("duplicat",51);
|
||||
aWE("dx",7,44,67,75,78);
|
||||
aWE("dy",7,44,67,75,78);
|
||||
aWE("dz",7,44,75,78);
|
||||
aWE("e",44,65);
|
||||
aWE("e",44,53,65);
|
||||
aWE("e1",50);
|
||||
aWE("e2",50);
|
||||
aWE("e3",50);
|
||||
@ -363,10 +368,10 @@ aWE("eras",79);
|
||||
aWE("eraseall",79);
|
||||
aWE("eraseon",79);
|
||||
aWE("error",12,40,33);
|
||||
aWE("etc",26,65);
|
||||
aWE("etc",26,53,65);
|
||||
aWE("exampl",0,1,2,50,7,9,10,12,13,14,15,16,17,19,20,21,22,23,24,25,27,28,29,34,35,36,39,32,41,42,43,45,46,47,48,49,52,53,54,55,56,58,59,60,61,62,63,64,65,66,67,69,70,71,72,73,75,76,77,31,78,80,81,83);
|
||||
aWE("except",73);
|
||||
aWE("exist",55,67,83);
|
||||
aWE("exist",67,83);
|
||||
aWE("expand",32);
|
||||
aWE("explod",5,26,27,37);
|
||||
aWE("export",38,32,30,51,79);
|
||||
@ -400,13 +405,14 @@ aWE("facemintol",33);
|
||||
aWE("factor",62,74);
|
||||
aWE("fail",44,59);
|
||||
aWE("fals",12);
|
||||
aWE("far",53);
|
||||
aWE("field",10);
|
||||
aWE("fil",16,18,35,32,43,79,81);
|
||||
aWE("fil",16,18,35,32,79,81);
|
||||
aWE("fill",72);
|
||||
aWE("fillet",9,34,74);
|
||||
aWE("filletall",74);
|
||||
aWE("final",45,46,55,56,75,82,83);
|
||||
aWE("first",7,14,20,23,24,28,43,45,46,48,49,53,55,56,65,68,70,75,77,31,78,82);
|
||||
aWE("first",7,14,20,23,24,28,43,45,46,48,49,53,55,56,61,65,68,70,75,77,31,78,82);
|
||||
aWE("fit",51);
|
||||
aWE("fix",65);
|
||||
aWE("fixfacesiz",65);
|
||||
@ -420,7 +426,7 @@ aWE("fram",51);
|
||||
aWE("fre",12,13,59,64,72);
|
||||
aWE("function",38,30,51,74);
|
||||
aWE("functionaliti",50);
|
||||
aWE("functionality",51,67,83);
|
||||
aWE("functionality",51,53,67,83);
|
||||
aWE("fus",6,11,36,31);
|
||||
aWE("fuse_id",11);
|
||||
aWE("g1",65);
|
||||
@ -433,7 +439,7 @@ aWE("generation",28,35,38,30,54,60);
|
||||
aWE("geom",3,4,5,6,8,11,18,37,40,44,57,58,59,68,74,33);
|
||||
aWE("geom_object",0,1,2,50,7,9,12,13,14,15,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,42,45,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,77,33,78,80,83);
|
||||
aWE("geometric",1,50,14,19,21,24,25,28,29,35,42,54,55,56,60,65,66,69,78,79,80);
|
||||
aWE("geometrical",3,11,17,37,38,32,30,47,51,31,33,79,81,83);
|
||||
aWE("geometrical",3,11,17,37,38,32,30,47,51,53,31,33,79,81,83);
|
||||
aWE("geometry",38,32,30,51,59,65,33);
|
||||
aWE("geompy",0,1,2,3,4,50,5,6,7,8,9,10,11,12,14,15,17,18,19,20,21,23,24,25,26,27,28,29,34,35,36,37,39,40,42,43,44,45,46,47,48,49,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,31,33,78,80,83);
|
||||
aWE("get",5,44,59,74,33);
|
||||
@ -447,14 +453,15 @@ aWE("getsubshapeid",5,40,59,74);
|
||||
aWE("gg",3,4,5,6,8,11,16,18,37,40,44,57,59,68,74,76,81);
|
||||
aWE("giv",14,25,32,55,65);
|
||||
aWE("given",3,5,8,9,13,18,23,26,27,29,34,37,39,42,47,52,56,59,65,68,74,77,33);
|
||||
aWE("global",43,46,51);
|
||||
aWE("glu",5,39,44,53,59,33);
|
||||
aWE("global",46,51);
|
||||
aWE("glu",5,39,44,59,33);
|
||||
aWE("good",51);
|
||||
aWE("gravity",26,44,47,33);
|
||||
aWE("great",51);
|
||||
aWE("group",5,38,40,30,51,58,83);
|
||||
aWE("group_n",83);
|
||||
aWE("group1",40);
|
||||
aWE("gui",79);
|
||||
aWE("handl",83);
|
||||
aWE("hav",65,66);
|
||||
aWE("height",6,20,23,28,57,59,74);
|
||||
@ -467,7 +474,7 @@ aWE("highlight",12,33);
|
||||
aWE("hol",59,72);
|
||||
aWE("hold",80);
|
||||
aWE("how",33);
|
||||
aWE("i",18,37,40,59,65);
|
||||
aWE("i",18,37,40,53,59,65);
|
||||
aWE("i11",33);
|
||||
aWE("i12",33);
|
||||
aWE("i13",33);
|
||||
@ -535,9 +542,9 @@ aWE("id_offset",74);
|
||||
aWE("id_p",59);
|
||||
aWE("id_p_on_arc",3);
|
||||
aWE("id_p0",3);
|
||||
aWE("id_p1",3,8);
|
||||
aWE("id_p1",3,8,74);
|
||||
aWE("id_p100",3);
|
||||
aWE("id_p2",3,8);
|
||||
aWE("id_p2",3,8,74);
|
||||
aWE("id_p3",3,8);
|
||||
aWE("id_p4",3,8,74);
|
||||
aWE("id_partition1",4);
|
||||
@ -563,7 +570,8 @@ aWE("id_result",59);
|
||||
aWE("id_revolution",18);
|
||||
aWE("id_rot1d",74);
|
||||
aWE("id_rot2d",74);
|
||||
aWE("id_rotation",74);
|
||||
aWE("id_rotation1",74);
|
||||
aWE("id_rotation2",74);
|
||||
aWE("id_scal",74);
|
||||
aWE("id_section",6);
|
||||
aWE("id_sew",59);
|
||||
@ -596,12 +604,14 @@ aWE("id_wire_clos",59);
|
||||
aWE("idlist",59,74);
|
||||
aWE("idlist_",74);
|
||||
aWE("idlist_f",74);
|
||||
aWE("if",0,10,12,15,20,29,40,44,51,53,59,65,72,73,33);
|
||||
aWE("if",0,10,12,15,20,29,40,44,51,59,65,72,73,33);
|
||||
aWE("ig",38,32,30);
|
||||
aWE("ignor",53);
|
||||
aWE("ii",5);
|
||||
aWE("imag",45,51,74,79);
|
||||
aWE("imp",65);
|
||||
aWE("implement",32);
|
||||
aWE("implementation",53);
|
||||
aWE("impli",65);
|
||||
aWE("import",3,4,5,6,8,11,18,37,38,40,32,30,44,57,59,68,74,33);
|
||||
aWE("importation",32);
|
||||
@ -613,14 +623,13 @@ aWE("includ",40);
|
||||
aWE("increas",15);
|
||||
aWE("independent",17);
|
||||
aWE("index",26,83);
|
||||
aWE("indic",9,26,53,59);
|
||||
aWE("indic",9,26,59);
|
||||
aWE("indicat",49,56);
|
||||
aWE("inertia",44,33);
|
||||
aWE("inform",33);
|
||||
aWE("initial",10,45,46,47,61,62,75);
|
||||
aWE("inquir",33);
|
||||
aWE("insert",15);
|
||||
aWE("insid",53);
|
||||
aWE("instead",20);
|
||||
aWE("integ",48);
|
||||
aWE("integer",27,48);
|
||||
@ -672,7 +681,7 @@ aWE("len",59);
|
||||
aWE("length",0,44,67,33);
|
||||
aWE("li",1,14);
|
||||
aWE("limit",53);
|
||||
aWE("lin",2,3,42,67,83);
|
||||
aWE("lin",2,3,42,43,67,83);
|
||||
aWE("line1",3);
|
||||
aWE("line2",3);
|
||||
aWE("linear",67);
|
||||
@ -690,10 +699,10 @@ aWE("listoftool",53);
|
||||
aWE("listofwireid",72);
|
||||
aWE("listshap",34);
|
||||
aWE("ll",51);
|
||||
aWE("local",43,46,52,67,74);
|
||||
aWE("local",43,46,52,55,67,74,82);
|
||||
aWE("localcs1",46);
|
||||
aWE("localcs2",46);
|
||||
aWE("locat",56);
|
||||
aWE("locat",51,56);
|
||||
aWE("location",32,43,46,74);
|
||||
aWE("lock",10,51);
|
||||
aWE("lsc",46);
|
||||
@ -702,7 +711,7 @@ aWE("magnitud",65);
|
||||
aWE("main",0,1,2,50,7,9,10,12,13,14,15,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,42,43,44,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,77,33,78,80,82,83);
|
||||
aWE("mainshap",83);
|
||||
aWE("major",25,77);
|
||||
aWE("mak",5,6,9,44,48,49,53,59,74,75,83);
|
||||
aWE("mak",5,6,9,44,48,49,59,74,75,83);
|
||||
aWE("make_block_explod",5);
|
||||
aWE("makearc",1,3,18,37,59,68,74);
|
||||
aWE("makebezi",3,21);
|
||||
@ -765,6 +774,7 @@ aWE("makequad2edg",50,8);
|
||||
aWE("makequad4vertic",50,8);
|
||||
aWE("makerevolution",18,60);
|
||||
aWE("makerotation",59,61,74);
|
||||
aWE("makerotationthreepoint",61,74);
|
||||
aWE("makescaletransform",62,74);
|
||||
aWE("makesection",6,63);
|
||||
aWE("makesew",59,64);
|
||||
@ -785,10 +795,9 @@ aWE("makevertex",3,4,5,6,8,18,37,40,44,56,57,59,68,74);
|
||||
aWE("makevertexoncurv",3,56);
|
||||
aWE("makevertexwithref",3,56);
|
||||
aWE("makewir",3,18,37,59,68,74,80);
|
||||
aWE("manual",83);
|
||||
aWE("manual",51,83);
|
||||
aWE("mark",51);
|
||||
aWE("mas",44,33);
|
||||
aWE("material",53);
|
||||
aWE("math",44,59,74);
|
||||
aWE("matrix",44,33);
|
||||
aWE("max",27,35,44,65);
|
||||
@ -831,7 +840,7 @@ aWE("mod",0,11,15,65,79,81);
|
||||
aWE("model",2,38,30);
|
||||
aWE("modifi",15,46);
|
||||
aWE("modify",46,74);
|
||||
aWE("modul",38,32,30,51);
|
||||
aWE("modul",38,32,30,51,79);
|
||||
aWE("moment",44,33);
|
||||
aWE("mous",51,79);
|
||||
aWE("mov",46,49);
|
||||
@ -856,13 +865,13 @@ aWE("nbtimesu",48);
|
||||
aWE("nbtimesv",48);
|
||||
aWE("ncentr",44);
|
||||
aWE("ncompound",44);
|
||||
aWE("ne",7,9,26,28,29,34,35,47,49,54,60,61,62,65,70,75);
|
||||
aWE("ne",7,9,26,28,29,34,35,47,49,54,60,62,65,70,75);
|
||||
aWE("necessari",65);
|
||||
aWE("necessary",9,34,65,67,33);
|
||||
aWE("need",15);
|
||||
aWE("need",15,61);
|
||||
aWE("negativ",52);
|
||||
aWE("neighbour",65);
|
||||
aWE("new",1,50,7,14,15,19,20,21,23,24,25,26,28,29,35,42,43,51,54,55,56,60,66,67,69,70,74,77,78,79,80,82,83);
|
||||
aWE("new",1,50,7,14,15,19,20,21,23,24,25,26,28,29,35,42,43,51,53,54,55,56,60,66,67,69,70,74,77,78,79,80,82,83);
|
||||
aWE("ninertia",44);
|
||||
aWE("nminimal",44);
|
||||
aWE("nod",21);
|
||||
@ -875,14 +884,14 @@ aWE("notion",50);
|
||||
aWE("nth",65);
|
||||
aWE("numb",27,35,41,47,48,49,52,59,64,65,72,74,79);
|
||||
aWE("number",48);
|
||||
aWE("object",1,2,3,4,5,6,8,9,10,11,14,16,17,18,19,21,24,25,26,28,29,34,35,37,38,40,32,30,42,43,45,46,47,51,52,54,55,56,57,58,59,60,61,65,66,68,69,73,74,75,31,33,78,79,80,81,83);
|
||||
aWE("object",1,2,3,4,5,6,8,9,10,11,14,16,17,18,19,21,24,25,26,28,29,34,35,37,38,40,32,30,42,43,45,46,47,51,52,53,54,55,56,57,58,59,60,61,65,66,68,69,73,74,75,31,33,78,79,80,81,83);
|
||||
aWE("obtain",26,44,46,65);
|
||||
aWE("occ",0,9,15,34,51,71,72,73,79,83);
|
||||
aWE("occur",12);
|
||||
aWE("offset",52,74);
|
||||
aWE("ok",43,44,59,83);
|
||||
aWE("old",56);
|
||||
aWE("on",0,15,22,47,48,49,55,56,59,65,67,82);
|
||||
aWE("old",53,56);
|
||||
aWE("on",0,15,22,47,48,49,56,59,65,67,82);
|
||||
aWE("opaqu",76);
|
||||
aWE("open",12,15,32,51,59,83);
|
||||
aWE("openwir",12,59);
|
||||
@ -897,11 +906,11 @@ aWE("orient",50);
|
||||
aWE("orientat",51);
|
||||
aWE("orientation",10,51);
|
||||
aWE("origin",7,20,23,43,51,70,77,78);
|
||||
aWE("orthogonal",61);
|
||||
aWE("os",59);
|
||||
aWE("otherwis",0,15,45,46,61,75);
|
||||
aWE("our",0,1,2,50,7,9,12,13,14,15,16,17,19,20,21,22,23,24,25,27,28,29,34,35,36,39,42,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,76,77,31,33,78,80,81,83);
|
||||
aWE("out",51,65);
|
||||
aWE("outsid",53);
|
||||
aWE("outward",10);
|
||||
aWE("ox",43,67);
|
||||
aWE("oy",43);
|
||||
@ -928,9 +937,9 @@ aWE("p70",57);
|
||||
aWE("p8",8,18);
|
||||
aWE("p9",8);
|
||||
aWE("pan",51);
|
||||
aWE("parallel",7,42,43,65);
|
||||
aWE("parallel",7,42,65);
|
||||
aWE("paramet",0,15,56,65);
|
||||
aWE("parameter",4,16,35,59,65,67,76,79,81);
|
||||
aWE("parameter",4,16,35,53,59,65,67,76,79,81);
|
||||
aWE("parameterization",65);
|
||||
aWE("parametric",65);
|
||||
aWE("paramt",0);
|
||||
@ -939,16 +948,17 @@ aWE("partition",4,53);
|
||||
aWE("partition1",4);
|
||||
aWE("partition2",4);
|
||||
aWE("partition3",4);
|
||||
aWE("pas",5,21,42,44,47,55,67);
|
||||
aWE("partitionalgo",53);
|
||||
aWE("pas",5,21,42,44,47,55,61,67);
|
||||
aWE("path",18,54);
|
||||
aWE("pathshap",54);
|
||||
aWE("perform",4,26,53,74);
|
||||
aWE("perform",4,26,51,74);
|
||||
aWE("perpendicular",67);
|
||||
aWE("pi",47,59,74);
|
||||
aWE("pictur",46);
|
||||
aWE("pip",18,54);
|
||||
aWE("plac",46,51,65);
|
||||
aWE("plan",2,3,4,45,51,53,55,67,74,82,83);
|
||||
aWE("plan",2,3,4,45,51,53,55,61,67,74,82,83);
|
||||
aWE("planar",29,67,68,74,82);
|
||||
aWE("plane1",3);
|
||||
aWE("plane2",3);
|
||||
@ -956,9 +966,9 @@ aWE("plane3",3);
|
||||
aWE("plug",32);
|
||||
aWE("plung",2);
|
||||
aWE("png",51,79);
|
||||
aWE("point",0,1,3,4,50,7,8,14,15,18,20,21,23,24,25,28,37,40,42,43,44,45,47,51,52,55,56,59,62,65,67,68,70,74,75,77,33,78,83);
|
||||
aWE("point1",1,3,7,8,14,24,28,42,55,75,78);
|
||||
aWE("point2",1,3,7,8,14,24,28,42,55,75,78);
|
||||
aWE("point",0,1,3,4,50,7,8,14,15,18,20,21,23,24,25,28,37,40,42,43,44,45,47,51,52,55,56,59,61,62,65,67,68,70,74,75,77,33,78,83);
|
||||
aWE("point1",1,3,7,8,14,24,28,42,55,61,75,78);
|
||||
aWE("point2",1,3,7,8,14,24,28,42,55,61,75,78);
|
||||
aWE("point3",1,3,8,14,55);
|
||||
aWE("point4",3,8);
|
||||
aWE("point5",3);
|
||||
@ -972,9 +982,9 @@ aWE("possibility",65);
|
||||
aWE("possibl",5,21,58,65,33);
|
||||
aWE("precision",59,64);
|
||||
aWE("predefin",67);
|
||||
aWE("preferrabl",53);
|
||||
aWE("pres",43,51);
|
||||
aWE("presentation",79);
|
||||
aWE("presum",43);
|
||||
aWE("preview",51);
|
||||
aWE("previou",65,67);
|
||||
aWE("primitiv",7,20,23,38,30,57,70,77);
|
||||
@ -1035,7 +1045,7 @@ aWE("refresh",79);
|
||||
aWE("regard",56);
|
||||
aWE("relativ",67);
|
||||
aWE("relevant",81);
|
||||
aWE("remain",51,81);
|
||||
aWE("remain",51,53,81);
|
||||
aWE("remaind",46);
|
||||
aWE("remot",51);
|
||||
aWE("remov",40,45,46,51,59,61,65,71,72,73,75,83);
|
||||
@ -1067,6 +1077,8 @@ aWE("rot1d",74);
|
||||
aWE("rot2d",74);
|
||||
aWE("rotat",47,51,60,61,74);
|
||||
aWE("rotation",47,51,59,61,74);
|
||||
aWE("rotation1",74);
|
||||
aWE("rotation2",74);
|
||||
aWE("rul",65);
|
||||
aWE("runtimeerror",44,59);
|
||||
aWE("s",12,14,15,18,37,48,59,62,71,72,73,83);
|
||||
@ -1082,16 +1094,15 @@ aWE("scen",51);
|
||||
aWE("script",0,1,2,50,7,9,12,13,14,15,16,17,19,20,21,22,23,24,25,27,28,29,34,35,36,39,42,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,76,77,31,33,78,80,81,83);
|
||||
aWE("se",46,51,81);
|
||||
aWE("search",32);
|
||||
aWE("second",7,14,20,23,28,43,45,46,48,49,53,55,56,65,68,70,75,77,31,78,82);
|
||||
aWE("second",7,14,20,23,28,43,45,46,48,49,53,55,56,61,65,68,70,75,77,31,78,82);
|
||||
aWE("section",2,6,51,63,31);
|
||||
aWE("seem",59);
|
||||
aWE("segment",65,67);
|
||||
aWE("select",0,1,2,4,7,9,10,12,13,14,15,16,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,40,32,42,43,45,46,47,48,49,51,52,53,54,55,56,58,59,60,61,62,63,64,65,66,67,69,70,71,72,73,75,77,33,78,79,80,81,82,83);
|
||||
aWE("selection",34,67,82,83);
|
||||
aWE("sens",53);
|
||||
aWE("separat",31);
|
||||
aWE("serv",21,28,54,60);
|
||||
aWE("set",0,15,27,29,37,47,52,56,82);
|
||||
aWE("set",0,15,27,29,37,47,51,52,56,82);
|
||||
aWE("setcolor",11,16);
|
||||
aWE("setdisplaymod",3,4,5,6,8,11,18,37,57,59,68,74,81);
|
||||
aWE("settransparency",3,11,37,68,74,76);
|
||||
@ -1109,7 +1120,7 @@ aWE("shapetypefac",74);
|
||||
aWE("shar",13);
|
||||
aWE("sharp",65);
|
||||
aWE("shel",13,19,37,52,66,69,81);
|
||||
aWE("shell",50,10,28,37,52,54,60,66,69);
|
||||
aWE("shell",50,10,28,37,52,53,54,60,66,69);
|
||||
aWE("shift",46,56,80,83);
|
||||
aWE("short",16,81);
|
||||
aWE("shortcut",29);
|
||||
@ -1118,9 +1129,9 @@ aWE("show",51,33);
|
||||
aWE("shown",43);
|
||||
aWE("sid",55);
|
||||
aWE("sign",52);
|
||||
aWE("similar",55);
|
||||
aWE("simp",43);
|
||||
aWE("simpl",47,48,49);
|
||||
aWE("sinc",53);
|
||||
aWE("singl",29);
|
||||
aWE("six",50,8);
|
||||
aWE("siz",9,55,65);
|
||||
@ -1132,7 +1143,7 @@ aWE("sketcher3",37);
|
||||
aWE("skip",83);
|
||||
aWE("small",51,65);
|
||||
aWE("so",29,46);
|
||||
aWE("solid",50,7,8,20,23,26,28,37,48,52,54,60,69,70,77);
|
||||
aWE("solid",50,7,8,20,23,26,28,37,48,52,53,54,60,69,70,77);
|
||||
aWE("solid1",8);
|
||||
aWE("solid2",8);
|
||||
aWE("sort",26);
|
||||
@ -1177,6 +1188,7 @@ aWE("subshapesort",26);
|
||||
aWE("subtraction",46);
|
||||
aWE("successful",44);
|
||||
aWE("sup_fac",59);
|
||||
aWE("support",53);
|
||||
aWE("suppres",59,71,72,73);
|
||||
aWE("suppressfac",59,71);
|
||||
aWE("suppresshol",59,72);
|
||||
@ -1187,7 +1199,7 @@ aWE("surfacemod",65);
|
||||
aWE("symmetric",74);
|
||||
aWE("symmetrical",45,74);
|
||||
aWE("symmetry",45);
|
||||
aWE("system",20,23,43,46,70,74,82);
|
||||
aWE("system",20,23,43,46,55,70,74,82);
|
||||
aWE("t",7,10,28,40,51,70);
|
||||
aWE("tak",65);
|
||||
aWE("tangent",65,67);
|
||||
@ -1206,8 +1218,8 @@ aWE("therefor",67);
|
||||
aWE("theshap",39,59,33);
|
||||
aWE("thestartlc",46);
|
||||
aWE("thetoleranc",39);
|
||||
aWE("third",7);
|
||||
aWE("thre",1,3,14,18,21,37,43,45,55,56,68,74,82);
|
||||
aWE("third",7,61);
|
||||
aWE("thre",1,3,14,18,21,37,43,45,55,56,61,68,74,82);
|
||||
aWE("thu",65,76);
|
||||
aWE("tim",21,47,49,56,74);
|
||||
aWE("tobezi",65);
|
||||
@ -1242,16 +1254,16 @@ aWE("transparent",76,81);
|
||||
aWE("triangl",51);
|
||||
aWE("trihedron",51);
|
||||
aWE("trimsiz",3,4,55);
|
||||
aWE("tru",0,15,53,59,33);
|
||||
aWE("tru",0,15,59,33);
|
||||
aWE("truncat",20);
|
||||
aWE("try",29);
|
||||
aWE("tt",37,68);
|
||||
aWE("tui",0,1,2,50,7,9,10,12,13,14,15,16,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,42,43,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,76,77,31,33,78,79,80,81,83);
|
||||
aWE("tupl",33);
|
||||
aWE("two",0,3,4,50,7,8,9,13,17,18,20,24,36,37,39,40,46,47,48,49,53,65,68,70,74,77,33,82,83);
|
||||
aWE("two",0,3,4,50,7,8,9,13,17,18,20,24,36,37,39,40,46,47,48,49,53,61,65,68,70,74,77,33,82,83);
|
||||
aWE("typ",21,26,27,53,65,67,31,33,83);
|
||||
aWE("u",65);
|
||||
aWE("uncheck",10);
|
||||
aWE("uncheck",10,51);
|
||||
aWE("underly",15,65);
|
||||
aWE("unionlist",40);
|
||||
aWE("up",16,20,81);
|
||||
@ -1282,6 +1294,7 @@ aWE("vector2_arc1",18);
|
||||
aWE("vector2_arc2",18);
|
||||
aWE("vector3",18);
|
||||
aWE("versa",65);
|
||||
aWE("version",53);
|
||||
aWE("vertex",3,4,6,14,15,18,20,23,24,25,28,37,44,45,54,55,56,57,59,60,62,70,74,77,33);
|
||||
aWE("vertex_n",56);
|
||||
aWE("vertex1",24);
|
||||
@ -1317,7 +1330,7 @@ aWE("wheth",33);
|
||||
aWE("whil",12,18,37,44,65,81);
|
||||
aWE("whos",29,33);
|
||||
aWE("wid",38,30);
|
||||
aWE("will",0,1,2,50,7,9,10,12,13,14,15,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,32,42,43,45,46,47,48,49,51,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,77,78,80,83);
|
||||
aWE("will",0,1,2,50,7,9,10,12,13,14,15,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,32,42,45,46,47,48,49,51,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,77,78,80,83);
|
||||
aWE("wir",3,50,12,15,18,26,28,29,37,44,54,59,60,67,68,72,73,74,80);
|
||||
aWE("wire_clos",59);
|
||||
aWE("wire_nam",59);
|
||||
@ -1351,7 +1364,6 @@ aWE("ydz",43);
|
||||
aWE("ymax",44,33);
|
||||
aWE("ymin",44,33);
|
||||
aWE("your",16,32,64,72,79,82,83);
|
||||
aWE("yourselv",43);
|
||||
aWE("yz_fac",5);
|
||||
aWE("yz_face_ind",5);
|
||||
aWE("z",2,3,7,43,56,70,33);
|
||||
|
@ -8,7 +8,7 @@
|
||||
<script language="javascript" src="whtdata.js"></script>
|
||||
<script language="javascript">
|
||||
<!--
|
||||
aTE(1,98,"Geometry module");
|
||||
aTE(1,97,"Geometry module");
|
||||
aTE(2,0,"Introduction to Geometry","geometry.htm");
|
||||
aTE(2,0,"Importing/exporting geometrical objects","files/salome2_sp3_geomtoolsgui_functions.htm");
|
||||
aTE(1,33,"Creating geometrical objects");
|
||||
@ -45,9 +45,8 @@
|
||||
aTE(2,0,"Shell","shell.htm");
|
||||
aTE(2,0,"Solid","solid.htm");
|
||||
aTE(2,0,"Compound","compound.htm");
|
||||
aTE(1,6,"Viewing geometrical objects");
|
||||
aTE(1,5,"Viewing geometrical objects");
|
||||
aTE(2,0,"Viewing Geometrical Objects","viewing_geometrical_objects.htm");
|
||||
aTE(2,0,"OCC 3D Viewer","occ_viewer.htm");
|
||||
aTE(2,0,"Display Mode","wireframe_and_shading.htm");
|
||||
aTE(2,0,"Color","color.htm");
|
||||
aTE(2,0,"Transparency","transparency.htm");
|
||||
@ -90,7 +89,7 @@
|
||||
aTE(2,0,"Check Free Faces","check_free_faces.htm");
|
||||
aTE(2,0,"Change Orientation","change_orientation.htm");
|
||||
aTE(2,0,"Using measurement tools","files/salome2_sp3_measuregui_functions.htm");
|
||||
aTE(2,0,"Python interface geompy.py" , geompy_doc/namespacegeompy.html");
|
||||
aTE(2,0,"Python interface geompy.py" , geompy_doc/namespacegeompy.html");
|
||||
aTE(1,16,"TUI Scripts");
|
||||
aTE(2,0,"Viewing Geometrical Objects","changing_display_parameters.htm");
|
||||
aTE(1,7,"Creating Geometric Objects");
|
||||
|
@ -36,7 +36,7 @@
|
||||
<key name="25"> 3,5,6,57,74, </key>
|
||||
<key name="250"> 37,44,59,68, </key>
|
||||
<key name="2d"> 5,35,59,65,74,31, </key>
|
||||
<key name="3"> 1,2,5,7,11,14,18,20,37,40,44,48,55,56,59,67,74,75,31,78, </key>
|
||||
<key name="3"> 1,2,5,7,11,14,18,20,37,40,44,48,55,56,59,61,67,74,75,31,78, </key>
|
||||
<key name="30"> 3,8,11,18,37,44,57,59,68,74, </key>
|
||||
<key name="300"> 37,68, </key>
|
||||
<key name="300000"> 44, </key>
|
||||
@ -44,7 +44,7 @@
|
||||
<key name="32"> 59, </key>
|
||||
<key name="32000"> 44, </key>
|
||||
<key name="35"> 6,8,57,59,74, </key>
|
||||
<key name="3d"> 14,21,35,43,51,53,55,56,59,65,71,31,33,78,79,81,83, </key>
|
||||
<key name="3d"> 14,21,35,43,51,55,56,59,65,71,31,33,78,79,81,83, </key>
|
||||
<key name="4"> 50,37,40,44,48,67,74,31, </key>
|
||||
<key name="40"> 6,8,18,37,57,59,74, </key>
|
||||
<key name="41"> 59, </key>
|
||||
@ -75,16 +75,16 @@
|
||||
<key name="addtostudy"> 3,4,5,6,8,11,18,37,40,57,59,68,74, </key>
|
||||
<key name="addtostudyinfath"> 5,59, </key>
|
||||
<key name="advanc"> 7,19,24,28,29,37,66,69,70,80, </key>
|
||||
<key name="algorithm"> 7,14,20,21,23,28,43,46,53,55,56,67,70,77,78,82, </key>
|
||||
<key name="algorithm"> 7,14,20,21,23,28,43,46,55,56,61,67,70,77,78,82, </key>
|
||||
<key name="all_fac"> 59, </key>
|
||||
<key name="allow"> 50,9,26,45,46,47,51,61,64,65,67,72,75,33,79, </key>
|
||||
<key name="allow"> 50,9,26,43,45,46,47,51,53,61,64,65,67,72,75,33,79, </key>
|
||||
<key name="along"> 7,9,46,49,52,54,74,75, </key>
|
||||
<key name="alongsid"> 31, </key>
|
||||
<key name="already"> 40, </key>
|
||||
<key name="although"> 46, </key>
|
||||
<key name="angl"> 47,59,60,61,65,67,74, </key>
|
||||
<key name="anoth"> 22,42,55,56,70,74, </key>
|
||||
<key name="any"> 53,61,65,75, </key>
|
||||
<key name="any"> 43,53,61,65,75, </key>
|
||||
<key name="ap"> 43,74,83, </key>
|
||||
<key name="appear"> 79,83, </key>
|
||||
<key name="append"> 18,37,74, </key>
|
||||
@ -98,14 +98,14 @@
|
||||
<key name="archimed"> 2,4, </key>
|
||||
<key name="area"> 44,51, </key>
|
||||
<key name="argument"> 0,1,2,50,7,9,10,14,15,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,41,42,43,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,66,67,69,70,71,72,73,75,77,31,78,80,82,83, </key>
|
||||
<key name="around"> 47,60,74, </key>
|
||||
<key name="around"> 47,51,60,74, </key>
|
||||
<key name="automatical"> 50,43,79, </key>
|
||||
<key name="availabl"> 0,50,15,32,51,67,71,72,73,83, </key>
|
||||
<key name="ax"> 7,43,49,51,75, </key>
|
||||
<key name="axi"> 18,20,23,43,45,46,47,60,61,74,33, </key>
|
||||
<key name="b"> 3,21,65, </key>
|
||||
<key name="background"> 79, </key>
|
||||
<key name="bas"> 20,23,28,47,51,54,59,60,62,65,75,77, </key>
|
||||
<key name="bas"> 20,23,28,43,47,51,54,59,60,62,65,75,77, </key>
|
||||
<key name="baseshap"> 54, </key>
|
||||
<key name="basi"> 28,51, </key>
|
||||
<key name="basic"> 1,2,3,4,14,21,25,38,30,42,43,44,53,55,56,67,33,78,82, </key>
|
||||
@ -124,11 +124,11 @@
|
||||
<key name="boolean"> 6,17,22,36,38,30,63,31,33, </key>
|
||||
<key name="both"> 7,20,48,49,65, </key>
|
||||
<key name="boudari"> 59, </key>
|
||||
<key name="bound"> 8,37,44,33, </key>
|
||||
<key name="bound"> 8,37,44,51,33, </key>
|
||||
<key name="boundari"> 12,59,64,72, </key>
|
||||
<key name="boundary"> 12,59,73, </key>
|
||||
<key name="boundingbox"> 44,33, </key>
|
||||
<key name="box"> 4,50,5,7,11,16,22,27,40,32,44,57,59,65,67,73,74,76,33,80,83, </key>
|
||||
<key name="box"> 4,50,5,7,11,16,22,27,40,32,44,51,53,57,59,65,67,73,74,76,33,80,83, </key>
|
||||
<key name="box_tr1"> 5, </key>
|
||||
<key name="box_tr2"> 5, </key>
|
||||
<key name="box1"> 44,57,59, </key>
|
||||
@ -148,15 +148,17 @@
|
||||
<key name="c1"> 65, </key>
|
||||
<key name="c2"> 65, </key>
|
||||
<key name="cad"> 38,30, </key>
|
||||
<key name="calculat"> 33, </key>
|
||||
<key name="calculat"> 43,33, </key>
|
||||
<key name="camera"> 82, </key>
|
||||
<key name="cas"> 50,43,48,73, </key>
|
||||
<key name="cas"> 50,43,48,61,73, </key>
|
||||
<key name="cascad"> 51, </key>
|
||||
<key name="catia"> 32, </key>
|
||||
<key name="cent"> 7,14,20,25,44,46,47,51,67,70,77,33, </key>
|
||||
<key name="cc"> 51, </key>
|
||||
<key name="cent"> 7,14,20,25,44,46,47,51,67,70,74,77,33, </key>
|
||||
<key name="center"> 26, </key>
|
||||
<key name="centerofscal"> 62, </key>
|
||||
<key name="central"> 20,23,62,65, </key>
|
||||
<key name="central"> 20,23,61,62,65, </key>
|
||||
<key name="centralpoint"> 61, </key>
|
||||
<key name="certain"> 65,83, </key>
|
||||
<key name="chain"> 5, </key>
|
||||
<key name="chamf"> 9,74, </key>
|
||||
@ -164,15 +166,15 @@
|
||||
<key name="chamfer_all"> 74, </key>
|
||||
<key name="chamfer_f"> 74, </key>
|
||||
<key name="chamfer_f1"> 74, </key>
|
||||
<key name="chang"> 10,11,16,41,76,79,81, </key>
|
||||
<key name="chang"> 10,11,16,41,51,76,79,81, </key>
|
||||
<key name="changeorientation"> 10, </key>
|
||||
<key name="check"> 12,13,27,29,44,59,65,73,33, </key>
|
||||
<key name="check_box"> 5, </key>
|
||||
<key name="checkbox"> 10,45,46,47,61,72,75,33, </key>
|
||||
<key name="checkcompoundofblock"> 44,33, </key>
|
||||
<key name="checkshap"> 44,59, </key>
|
||||
<key name="checkshap"> 44,59,33, </key>
|
||||
<key name="choic"> 21, </key>
|
||||
<key name="choos"> 27,32,43, </key>
|
||||
<key name="choos"> 27,32,43,51,53, </key>
|
||||
<key name="circl"> 3,14,67, </key>
|
||||
<key name="circle1"> 3, </key>
|
||||
<key name="circle2"> 3, </key>
|
||||
@ -213,7 +215,7 @@
|
||||
<key name="consol"> 33, </key>
|
||||
<key name="constraint"> 50, </key>
|
||||
<key name="construct"> 50,69, </key>
|
||||
<key name="construction"> 21,38,30,51,31, </key>
|
||||
<key name="construction"> 21,38,30,43,51,31, </key>
|
||||
<key name="contain"> 0,13,15,58, </key>
|
||||
<key name="content"> 40,32,51, </key>
|
||||
<key name="continuiti"> 65, </key>
|
||||
@ -225,7 +227,7 @@
|
||||
<key name="conversion"> 65, </key>
|
||||
<key name="convert"> 65, </key>
|
||||
<key name="coord"> 44, </key>
|
||||
<key name="coordinat"> 7,20,23,26,43,44,46,51,56,67,70,74,75,77,33,78,82, </key>
|
||||
<key name="coordinat"> 7,20,23,26,43,44,46,51,55,56,67,70,74,75,77,33,78,82, </key>
|
||||
<key name="copy"> 10,45,46,61,75, </key>
|
||||
<key name="corn"> 65, </key>
|
||||
<key name="corner"> 7,8, </key>
|
||||
@ -241,11 +243,10 @@
|
||||
<key name="creation"> 1,3,7,14,15,18,19,20,21,23,24,25,28,29,35,37,38,40,30,42,54,55,56,57,59,60,66,69,70,77,78,80,83, </key>
|
||||
<key name="criteria"> 5, </key>
|
||||
<key name="cros"> 51, </key>
|
||||
<key name="cs"> 43, </key>
|
||||
<key name="cs1"> 74, </key>
|
||||
<key name="cs2"> 74, </key>
|
||||
<key name="cub"> 46, </key>
|
||||
<key name="current"> 7,42,51,67,70, </key>
|
||||
<key name="current"> 7,42,51,53,67,70, </key>
|
||||
<key name="curv"> 3,21,35,65,67, </key>
|
||||
<key name="curvatur"> 65, </key>
|
||||
<key name="curve2dmod"> 65, </key>
|
||||
@ -269,17 +270,20 @@
|
||||
<key name="definit"> 72, </key>
|
||||
<key name="definition"> 54, </key>
|
||||
<key name="deflection"> 2, </key>
|
||||
<key name="defn"> 61, </key>
|
||||
<key name="degenerat"> 33, </key>
|
||||
<key name="degre"> 35,60,65,67, </key>
|
||||
<key name="delet"> 53,83, </key>
|
||||
<key name="delet"> 83, </key>
|
||||
<key name="density"> 2, </key>
|
||||
<key name="depend"> 48,65, </key>
|
||||
<key name="derivativ"> 65, </key>
|
||||
<key name="descr"> 44, </key>
|
||||
<key name="describ"> 79, </key>
|
||||
<key name="description"> 50,44,67,68,33, </key>
|
||||
<key name="design"> 83, </key>
|
||||
<key name="destin"> 38,30, </key>
|
||||
<key name="destination"> 67, </key>
|
||||
<key name="detail"> 79, </key>
|
||||
<key name="detect"> 12,64,72, </key>
|
||||
<key name="detection"> 65, </key>
|
||||
<key name="develop"> 51, </key>
|
||||
@ -290,7 +294,7 @@
|
||||
<key name="dir"> 47,49, </key>
|
||||
<key name="dir1"> 49, </key>
|
||||
<key name="dir2"> 49, </key>
|
||||
<key name="direct"> 43, </key>
|
||||
<key name="direct"> 43,61, </key>
|
||||
<key name="direction"> 2,14,20,25,28,43,47,48,49,51,60,61,65,67,77, </key>
|
||||
<key name="dirfaceid1"> 48, </key>
|
||||
<key name="dirfaceid1u"> 48, </key>
|
||||
@ -303,6 +307,7 @@
|
||||
<key name="distanc"> 39,44,52,65,33, </key>
|
||||
<key name="divid"> 0,59, </key>
|
||||
<key name="divideedg"> 0,59, </key>
|
||||
<key name="documentation"> 79, </key>
|
||||
<key name="doesn"> 40,51, </key>
|
||||
<key name="don"> 7,10,15,28,49,51,70, </key>
|
||||
<key name="doubl"> 47,48,49,67,76, </key>
|
||||
@ -318,7 +323,7 @@
|
||||
<key name="dx"> 7,44,67,75,78, </key>
|
||||
<key name="dy"> 7,44,67,75,78, </key>
|
||||
<key name="dz"> 7,44,75,78, </key>
|
||||
<key name="e"> 44,65, </key>
|
||||
<key name="e"> 44,53,65, </key>
|
||||
<key name="e1"> 50, </key>
|
||||
<key name="e2"> 50, </key>
|
||||
<key name="e3"> 50, </key>
|
||||
@ -351,10 +356,10 @@
|
||||
<key name="eraseall"> 79, </key>
|
||||
<key name="eraseon"> 79, </key>
|
||||
<key name="error"> 12,40,33, </key>
|
||||
<key name="etc"> 26,65, </key>
|
||||
<key name="etc"> 26,53,65, </key>
|
||||
<key name="exampl"> 0,1,2,50,7,9,10,12,13,14,15,16,17,19,20,21,22,23,24,25,27,28,29,34,35,36,39,32,41,42,43,45,46,47,48,49,52,53,54,55,56,58,59,60,61,62,63,64,65,66,67,69,70,71,72,73,75,76,77,31,78,80,81,83, </key>
|
||||
<key name="except"> 73, </key>
|
||||
<key name="exist"> 55,67,83, </key>
|
||||
<key name="exist"> 67,83, </key>
|
||||
<key name="expand"> 32, </key>
|
||||
<key name="explod"> 5,26,27,37, </key>
|
||||
<key name="export"> 38,32,30,51,79, </key>
|
||||
@ -388,13 +393,14 @@
|
||||
<key name="factor"> 62,74, </key>
|
||||
<key name="fail"> 44,59, </key>
|
||||
<key name="fals"> 12, </key>
|
||||
<key name="far"> 53, </key>
|
||||
<key name="field"> 10, </key>
|
||||
<key name="fil"> 16,18,35,32,43,79,81, </key>
|
||||
<key name="fil"> 16,18,35,32,79,81, </key>
|
||||
<key name="fill"> 72, </key>
|
||||
<key name="fillet"> 9,34,74, </key>
|
||||
<key name="filletall"> 74, </key>
|
||||
<key name="final"> 45,46,55,56,75,82,83, </key>
|
||||
<key name="first"> 7,14,20,23,24,28,43,45,46,48,49,53,55,56,65,68,70,75,77,31,78,82, </key>
|
||||
<key name="first"> 7,14,20,23,24,28,43,45,46,48,49,53,55,56,61,65,68,70,75,77,31,78,82, </key>
|
||||
<key name="fit"> 51, </key>
|
||||
<key name="fix"> 65, </key>
|
||||
<key name="fixfacesiz"> 65, </key>
|
||||
@ -408,7 +414,7 @@
|
||||
<key name="fre"> 12,13,59,64,72, </key>
|
||||
<key name="function"> 38,30,51,74, </key>
|
||||
<key name="functionaliti"> 50, </key>
|
||||
<key name="functionality"> 51,67,83, </key>
|
||||
<key name="functionality"> 51,53,67,83, </key>
|
||||
<key name="fus"> 6,11,36,31, </key>
|
||||
<key name="fuse_id"> 11, </key>
|
||||
<key name="g1"> 65, </key>
|
||||
@ -421,7 +427,7 @@
|
||||
<key name="geom"> 3,4,5,6,8,11,18,37,40,44,57,58,59,68,74,33, </key>
|
||||
<key name="geom_object"> 0,1,2,50,7,9,12,13,14,15,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,42,45,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,77,33,78,80,83, </key>
|
||||
<key name="geometric"> 1,50,14,19,21,24,25,28,29,35,42,54,55,56,60,65,66,69,78,79,80, </key>
|
||||
<key name="geometrical"> 3,11,17,37,38,32,30,47,51,31,33,79,81,83, </key>
|
||||
<key name="geometrical"> 3,11,17,37,38,32,30,47,51,53,31,33,79,81,83, </key>
|
||||
<key name="geometry"> 38,32,30,51,59,65,33, </key>
|
||||
<key name="geompy"> 0,1,2,3,4,50,5,6,7,8,9,10,11,12,14,15,17,18,19,20,21,23,24,25,26,27,28,29,34,35,36,37,39,40,42,43,44,45,46,47,48,49,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,31,33,78,80,83, </key>
|
||||
<key name="get"> 5,44,59,74,33, </key>
|
||||
@ -435,14 +441,15 @@
|
||||
<key name="gg"> 3,4,5,6,8,11,16,18,37,40,44,57,59,68,74,76,81, </key>
|
||||
<key name="giv"> 14,25,32,55,65, </key>
|
||||
<key name="given"> 3,5,8,9,13,18,23,26,27,29,34,37,39,42,47,52,56,59,65,68,74,77,33, </key>
|
||||
<key name="global"> 43,46,51, </key>
|
||||
<key name="glu"> 5,39,44,53,59,33, </key>
|
||||
<key name="global"> 46,51, </key>
|
||||
<key name="glu"> 5,39,44,59,33, </key>
|
||||
<key name="good"> 51, </key>
|
||||
<key name="gravity"> 26,44,47,33, </key>
|
||||
<key name="great"> 51, </key>
|
||||
<key name="group"> 5,38,40,30,51,58,83, </key>
|
||||
<key name="group_n"> 83, </key>
|
||||
<key name="group1"> 40, </key>
|
||||
<key name="gui"> 79, </key>
|
||||
<key name="handl"> 83, </key>
|
||||
<key name="hav"> 65,66, </key>
|
||||
<key name="height"> 6,20,23,28,57,59,74, </key>
|
||||
@ -455,7 +462,7 @@
|
||||
<key name="hol"> 59,72, </key>
|
||||
<key name="hold"> 80, </key>
|
||||
<key name="how"> 33, </key>
|
||||
<key name="i"> 18,37,40,59,65, </key>
|
||||
<key name="i"> 18,37,40,53,59,65, </key>
|
||||
<key name="i11"> 33, </key>
|
||||
<key name="i12"> 33, </key>
|
||||
<key name="i13"> 33, </key>
|
||||
@ -523,9 +530,9 @@
|
||||
<key name="id_p"> 59, </key>
|
||||
<key name="id_p_on_arc"> 3, </key>
|
||||
<key name="id_p0"> 3, </key>
|
||||
<key name="id_p1"> 3,8, </key>
|
||||
<key name="id_p1"> 3,8,74, </key>
|
||||
<key name="id_p100"> 3, </key>
|
||||
<key name="id_p2"> 3,8, </key>
|
||||
<key name="id_p2"> 3,8,74, </key>
|
||||
<key name="id_p3"> 3,8, </key>
|
||||
<key name="id_p4"> 3,8,74, </key>
|
||||
<key name="id_partition1"> 4, </key>
|
||||
@ -551,7 +558,8 @@
|
||||
<key name="id_revolution"> 18, </key>
|
||||
<key name="id_rot1d"> 74, </key>
|
||||
<key name="id_rot2d"> 74, </key>
|
||||
<key name="id_rotation"> 74, </key>
|
||||
<key name="id_rotation1"> 74, </key>
|
||||
<key name="id_rotation2"> 74, </key>
|
||||
<key name="id_scal"> 74, </key>
|
||||
<key name="id_section"> 6, </key>
|
||||
<key name="id_sew"> 59, </key>
|
||||
@ -584,12 +592,14 @@
|
||||
<key name="idlist"> 59,74, </key>
|
||||
<key name="idlist_"> 74, </key>
|
||||
<key name="idlist_f"> 74, </key>
|
||||
<key name="if"> 0,10,12,15,20,29,40,44,51,53,59,65,72,73,33, </key>
|
||||
<key name="if"> 0,10,12,15,20,29,40,44,51,59,65,72,73,33, </key>
|
||||
<key name="ig"> 38,32,30, </key>
|
||||
<key name="ignor"> 53, </key>
|
||||
<key name="ii"> 5, </key>
|
||||
<key name="imag"> 45,51,74,79, </key>
|
||||
<key name="imp"> 65, </key>
|
||||
<key name="implement"> 32, </key>
|
||||
<key name="implementation"> 53, </key>
|
||||
<key name="impli"> 65, </key>
|
||||
<key name="import"> 3,4,5,6,8,11,18,37,38,40,32,30,44,57,59,68,74,33, </key>
|
||||
<key name="importation"> 32, </key>
|
||||
@ -601,14 +611,13 @@
|
||||
<key name="increas"> 15, </key>
|
||||
<key name="independent"> 17, </key>
|
||||
<key name="index"> 26,83, </key>
|
||||
<key name="indic"> 9,26,53,59, </key>
|
||||
<key name="indic"> 9,26,59, </key>
|
||||
<key name="indicat"> 49,56, </key>
|
||||
<key name="inertia"> 44,33, </key>
|
||||
<key name="inform"> 33, </key>
|
||||
<key name="initial"> 10,45,46,47,61,62,75, </key>
|
||||
<key name="inquir"> 33, </key>
|
||||
<key name="insert"> 15, </key>
|
||||
<key name="insid"> 53, </key>
|
||||
<key name="instead"> 20, </key>
|
||||
<key name="integ"> 48, </key>
|
||||
<key name="integer"> 27,48, </key>
|
||||
@ -660,7 +669,7 @@
|
||||
<key name="length"> 0,44,67,33, </key>
|
||||
<key name="li"> 1,14, </key>
|
||||
<key name="limit"> 53, </key>
|
||||
<key name="lin"> 2,3,42,67,83, </key>
|
||||
<key name="lin"> 2,3,42,43,67,83, </key>
|
||||
<key name="line1"> 3, </key>
|
||||
<key name="line2"> 3, </key>
|
||||
<key name="linear"> 67, </key>
|
||||
@ -678,10 +687,10 @@
|
||||
<key name="listofwireid"> 72, </key>
|
||||
<key name="listshap"> 34, </key>
|
||||
<key name="ll"> 51, </key>
|
||||
<key name="local"> 43,46,52,67,74, </key>
|
||||
<key name="local"> 43,46,52,55,67,74,82, </key>
|
||||
<key name="localcs1"> 46, </key>
|
||||
<key name="localcs2"> 46, </key>
|
||||
<key name="locat"> 56, </key>
|
||||
<key name="locat"> 51,56, </key>
|
||||
<key name="location"> 32,43,46,74, </key>
|
||||
<key name="lock"> 10,51, </key>
|
||||
<key name="lsc"> 46, </key>
|
||||
@ -690,7 +699,7 @@
|
||||
<key name="main"> 0,1,2,50,7,9,10,12,13,14,15,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,42,43,44,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,77,33,78,80,82,83, </key>
|
||||
<key name="mainshap"> 83, </key>
|
||||
<key name="major"> 25,77, </key>
|
||||
<key name="mak"> 5,6,9,44,48,49,53,59,74,75,83, </key>
|
||||
<key name="mak"> 5,6,9,44,48,49,59,74,75,83, </key>
|
||||
<key name="make_block_explod"> 5, </key>
|
||||
<key name="makearc"> 1,3,18,37,59,68,74, </key>
|
||||
<key name="makebezi"> 3,21, </key>
|
||||
@ -753,6 +762,7 @@
|
||||
<key name="makequad4vertic"> 50,8, </key>
|
||||
<key name="makerevolution"> 18,60, </key>
|
||||
<key name="makerotation"> 59,61,74, </key>
|
||||
<key name="makerotationthreepoint"> 61,74, </key>
|
||||
<key name="makescaletransform"> 62,74, </key>
|
||||
<key name="makesection"> 6,63, </key>
|
||||
<key name="makesew"> 59,64, </key>
|
||||
@ -773,10 +783,9 @@
|
||||
<key name="makevertexoncurv"> 3,56, </key>
|
||||
<key name="makevertexwithref"> 3,56, </key>
|
||||
<key name="makewir"> 3,18,37,59,68,74,80, </key>
|
||||
<key name="manual"> 83, </key>
|
||||
<key name="manual"> 51,83, </key>
|
||||
<key name="mark"> 51, </key>
|
||||
<key name="mas"> 44,33, </key>
|
||||
<key name="material"> 53, </key>
|
||||
<key name="math"> 44,59,74, </key>
|
||||
<key name="matrix"> 44,33, </key>
|
||||
<key name="max"> 27,35,44,65, </key>
|
||||
@ -819,7 +828,7 @@
|
||||
<key name="model"> 2,38,30, </key>
|
||||
<key name="modifi"> 15,46, </key>
|
||||
<key name="modify"> 46,74, </key>
|
||||
<key name="modul"> 38,32,30,51, </key>
|
||||
<key name="modul"> 38,32,30,51,79, </key>
|
||||
<key name="moment"> 44,33, </key>
|
||||
<key name="mous"> 51,79, </key>
|
||||
<key name="mov"> 46,49, </key>
|
||||
@ -844,13 +853,13 @@
|
||||
<key name="nbtimesv"> 48, </key>
|
||||
<key name="ncentr"> 44, </key>
|
||||
<key name="ncompound"> 44, </key>
|
||||
<key name="ne"> 7,9,26,28,29,34,35,47,49,54,60,61,62,65,70,75, </key>
|
||||
<key name="ne"> 7,9,26,28,29,34,35,47,49,54,60,62,65,70,75, </key>
|
||||
<key name="necessari"> 65, </key>
|
||||
<key name="necessary"> 9,34,65,67,33, </key>
|
||||
<key name="need"> 15, </key>
|
||||
<key name="need"> 15,61, </key>
|
||||
<key name="negativ"> 52, </key>
|
||||
<key name="neighbour"> 65, </key>
|
||||
<key name="new"> 1,50,7,14,15,19,20,21,23,24,25,26,28,29,35,42,43,51,54,55,56,60,66,67,69,70,74,77,78,79,80,82,83, </key>
|
||||
<key name="new"> 1,50,7,14,15,19,20,21,23,24,25,26,28,29,35,42,43,51,53,54,55,56,60,66,67,69,70,74,77,78,79,80,82,83, </key>
|
||||
<key name="ninertia"> 44, </key>
|
||||
<key name="nminimal"> 44, </key>
|
||||
<key name="nod"> 21, </key>
|
||||
@ -863,14 +872,14 @@
|
||||
<key name="nth"> 65, </key>
|
||||
<key name="numb"> 27,35,41,47,48,49,52,59,64,65,72,74,79, </key>
|
||||
<key name="number"> 48, </key>
|
||||
<key name="object"> 1,2,3,4,5,6,8,9,10,11,14,16,17,18,19,21,24,25,26,28,29,34,35,37,38,40,32,30,42,43,45,46,47,51,52,54,55,56,57,58,59,60,61,65,66,68,69,73,74,75,31,33,78,79,80,81,83, </key>
|
||||
<key name="object"> 1,2,3,4,5,6,8,9,10,11,14,16,17,18,19,21,24,25,26,28,29,34,35,37,38,40,32,30,42,43,45,46,47,51,52,53,54,55,56,57,58,59,60,61,65,66,68,69,73,74,75,31,33,78,79,80,81,83, </key>
|
||||
<key name="obtain"> 26,44,46,65, </key>
|
||||
<key name="occ"> 0,9,15,34,51,71,72,73,79,83, </key>
|
||||
<key name="occur"> 12, </key>
|
||||
<key name="offset"> 52,74, </key>
|
||||
<key name="ok"> 43,44,59,83, </key>
|
||||
<key name="old"> 56, </key>
|
||||
<key name="on"> 0,15,22,47,48,49,55,56,59,65,67,82, </key>
|
||||
<key name="old"> 53,56, </key>
|
||||
<key name="on"> 0,15,22,47,48,49,56,59,65,67,82, </key>
|
||||
<key name="opaqu"> 76, </key>
|
||||
<key name="open"> 12,15,32,51,59,83, </key>
|
||||
<key name="openwir"> 12,59, </key>
|
||||
@ -885,11 +894,11 @@
|
||||
<key name="orientat"> 51, </key>
|
||||
<key name="orientation"> 10,51, </key>
|
||||
<key name="origin"> 7,20,23,43,51,70,77,78, </key>
|
||||
<key name="orthogonal"> 61, </key>
|
||||
<key name="os"> 59, </key>
|
||||
<key name="otherwis"> 0,15,45,46,61,75, </key>
|
||||
<key name="our"> 0,1,2,50,7,9,12,13,14,15,16,17,19,20,21,22,23,24,25,27,28,29,34,35,36,39,42,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,76,77,31,33,78,80,81,83, </key>
|
||||
<key name="out"> 51,65, </key>
|
||||
<key name="outsid"> 53, </key>
|
||||
<key name="outward"> 10, </key>
|
||||
<key name="ox"> 43,67, </key>
|
||||
<key name="oy"> 43, </key>
|
||||
@ -916,9 +925,9 @@
|
||||
<key name="p8"> 8,18, </key>
|
||||
<key name="p9"> 8, </key>
|
||||
<key name="pan"> 51, </key>
|
||||
<key name="parallel"> 7,42,43,65, </key>
|
||||
<key name="parallel"> 7,42,65, </key>
|
||||
<key name="paramet"> 0,15,56,65, </key>
|
||||
<key name="parameter"> 4,16,35,59,65,67,76,79,81, </key>
|
||||
<key name="parameter"> 4,16,35,53,59,65,67,76,79,81, </key>
|
||||
<key name="parameterization"> 65, </key>
|
||||
<key name="parametric"> 65, </key>
|
||||
<key name="paramt"> 0, </key>
|
||||
@ -927,16 +936,17 @@
|
||||
<key name="partition1"> 4, </key>
|
||||
<key name="partition2"> 4, </key>
|
||||
<key name="partition3"> 4, </key>
|
||||
<key name="pas"> 5,21,42,44,47,55,67, </key>
|
||||
<key name="partitionalgo"> 53, </key>
|
||||
<key name="pas"> 5,21,42,44,47,55,61,67, </key>
|
||||
<key name="path"> 18,54, </key>
|
||||
<key name="pathshap"> 54, </key>
|
||||
<key name="perform"> 4,26,53,74, </key>
|
||||
<key name="perform"> 4,26,51,74, </key>
|
||||
<key name="perpendicular"> 67, </key>
|
||||
<key name="pi"> 47,59,74, </key>
|
||||
<key name="pictur"> 46, </key>
|
||||
<key name="pip"> 18,54, </key>
|
||||
<key name="plac"> 46,51,65, </key>
|
||||
<key name="plan"> 2,3,4,45,51,53,55,67,74,82,83, </key>
|
||||
<key name="plan"> 2,3,4,45,51,53,55,61,67,74,82,83, </key>
|
||||
<key name="planar"> 29,67,68,74,82, </key>
|
||||
<key name="plane1"> 3, </key>
|
||||
<key name="plane2"> 3, </key>
|
||||
@ -944,9 +954,9 @@
|
||||
<key name="plug"> 32, </key>
|
||||
<key name="plung"> 2, </key>
|
||||
<key name="png"> 51,79, </key>
|
||||
<key name="point"> 0,1,3,4,50,7,8,14,15,18,20,21,23,24,25,28,37,40,42,43,44,45,47,51,52,55,56,59,62,65,67,68,70,74,75,77,33,78,83, </key>
|
||||
<key name="point1"> 1,3,7,8,14,24,28,42,55,75,78, </key>
|
||||
<key name="point2"> 1,3,7,8,14,24,28,42,55,75,78, </key>
|
||||
<key name="point"> 0,1,3,4,50,7,8,14,15,18,20,21,23,24,25,28,37,40,42,43,44,45,47,51,52,55,56,59,61,62,65,67,68,70,74,75,77,33,78,83, </key>
|
||||
<key name="point1"> 1,3,7,8,14,24,28,42,55,61,75,78, </key>
|
||||
<key name="point2"> 1,3,7,8,14,24,28,42,55,61,75,78, </key>
|
||||
<key name="point3"> 1,3,8,14,55, </key>
|
||||
<key name="point4"> 3,8, </key>
|
||||
<key name="point5"> 3, </key>
|
||||
@ -960,9 +970,9 @@
|
||||
<key name="possibl"> 5,21,58,65,33, </key>
|
||||
<key name="precision"> 59,64, </key>
|
||||
<key name="predefin"> 67, </key>
|
||||
<key name="preferrabl"> 53, </key>
|
||||
<key name="pres"> 43,51, </key>
|
||||
<key name="presentation"> 79, </key>
|
||||
<key name="presum"> 43, </key>
|
||||
<key name="preview"> 51, </key>
|
||||
<key name="previou"> 65,67, </key>
|
||||
<key name="primitiv"> 7,20,23,38,30,57,70,77, </key>
|
||||
@ -1023,7 +1033,7 @@
|
||||
<key name="regard"> 56, </key>
|
||||
<key name="relativ"> 67, </key>
|
||||
<key name="relevant"> 81, </key>
|
||||
<key name="remain"> 51,81, </key>
|
||||
<key name="remain"> 51,53,81, </key>
|
||||
<key name="remaind"> 46, </key>
|
||||
<key name="remot"> 51, </key>
|
||||
<key name="remov"> 40,45,46,51,59,61,65,71,72,73,75,83, </key>
|
||||
@ -1055,6 +1065,8 @@
|
||||
<key name="rot2d"> 74, </key>
|
||||
<key name="rotat"> 47,51,60,61,74, </key>
|
||||
<key name="rotation"> 47,51,59,61,74, </key>
|
||||
<key name="rotation1"> 74, </key>
|
||||
<key name="rotation2"> 74, </key>
|
||||
<key name="rul"> 65, </key>
|
||||
<key name="runtimeerror"> 44,59, </key>
|
||||
<key name="s"> 12,14,15,18,37,48,59,62,71,72,73,83, </key>
|
||||
@ -1070,16 +1082,15 @@
|
||||
<key name="script"> 0,1,2,50,7,9,12,13,14,15,16,17,19,20,21,22,23,24,25,27,28,29,34,35,36,39,42,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,76,77,31,33,78,80,81,83, </key>
|
||||
<key name="se"> 46,51,81, </key>
|
||||
<key name="search"> 32, </key>
|
||||
<key name="second"> 7,14,20,23,28,43,45,46,48,49,53,55,56,65,68,70,75,77,31,78,82, </key>
|
||||
<key name="second"> 7,14,20,23,28,43,45,46,48,49,53,55,56,61,65,68,70,75,77,31,78,82, </key>
|
||||
<key name="section"> 2,6,51,63,31, </key>
|
||||
<key name="seem"> 59, </key>
|
||||
<key name="segment"> 65,67, </key>
|
||||
<key name="select"> 0,1,2,4,7,9,10,12,13,14,15,16,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,40,32,42,43,45,46,47,48,49,51,52,53,54,55,56,58,59,60,61,62,63,64,65,66,67,69,70,71,72,73,75,77,33,78,79,80,81,82,83, </key>
|
||||
<key name="selection"> 34,67,82,83, </key>
|
||||
<key name="sens"> 53, </key>
|
||||
<key name="separat"> 31, </key>
|
||||
<key name="serv"> 21,28,54,60, </key>
|
||||
<key name="set"> 0,15,27,29,37,47,52,56,82, </key>
|
||||
<key name="set"> 0,15,27,29,37,47,51,52,56,82, </key>
|
||||
<key name="setcolor"> 11,16, </key>
|
||||
<key name="setdisplaymod"> 3,4,5,6,8,11,18,37,57,59,68,74,81, </key>
|
||||
<key name="settransparency"> 3,11,37,68,74,76, </key>
|
||||
@ -1097,7 +1108,7 @@
|
||||
<key name="shar"> 13, </key>
|
||||
<key name="sharp"> 65, </key>
|
||||
<key name="shel"> 13,19,37,52,66,69,81, </key>
|
||||
<key name="shell"> 50,10,28,37,52,54,60,66,69, </key>
|
||||
<key name="shell"> 50,10,28,37,52,53,54,60,66,69, </key>
|
||||
<key name="shift"> 46,56,80,83, </key>
|
||||
<key name="short"> 16,81, </key>
|
||||
<key name="shortcut"> 29, </key>
|
||||
@ -1106,9 +1117,9 @@
|
||||
<key name="shown"> 43, </key>
|
||||
<key name="sid"> 55, </key>
|
||||
<key name="sign"> 52, </key>
|
||||
<key name="similar"> 55, </key>
|
||||
<key name="simp"> 43, </key>
|
||||
<key name="simpl"> 47,48,49, </key>
|
||||
<key name="sinc"> 53, </key>
|
||||
<key name="singl"> 29, </key>
|
||||
<key name="six"> 50,8, </key>
|
||||
<key name="siz"> 9,55,65, </key>
|
||||
@ -1120,7 +1131,7 @@
|
||||
<key name="skip"> 83, </key>
|
||||
<key name="small"> 51,65, </key>
|
||||
<key name="so"> 29,46, </key>
|
||||
<key name="solid"> 50,7,8,20,23,26,28,37,48,52,54,60,69,70,77, </key>
|
||||
<key name="solid"> 50,7,8,20,23,26,28,37,48,52,53,54,60,69,70,77, </key>
|
||||
<key name="solid1"> 8, </key>
|
||||
<key name="solid2"> 8, </key>
|
||||
<key name="sort"> 26, </key>
|
||||
@ -1165,6 +1176,7 @@
|
||||
<key name="subtraction"> 46, </key>
|
||||
<key name="successful"> 44, </key>
|
||||
<key name="sup_fac"> 59, </key>
|
||||
<key name="support"> 53, </key>
|
||||
<key name="suppres"> 59,71,72,73, </key>
|
||||
<key name="suppressfac"> 59,71, </key>
|
||||
<key name="suppresshol"> 59,72, </key>
|
||||
@ -1175,7 +1187,7 @@
|
||||
<key name="symmetric"> 74, </key>
|
||||
<key name="symmetrical"> 45,74, </key>
|
||||
<key name="symmetry"> 45, </key>
|
||||
<key name="system"> 20,23,43,46,70,74,82, </key>
|
||||
<key name="system"> 20,23,43,46,55,70,74,82, </key>
|
||||
<key name="t"> 7,10,28,40,51,70, </key>
|
||||
<key name="tak"> 65, </key>
|
||||
<key name="tangent"> 65,67, </key>
|
||||
@ -1194,8 +1206,8 @@
|
||||
<key name="theshap"> 39,59,33, </key>
|
||||
<key name="thestartlc"> 46, </key>
|
||||
<key name="thetoleranc"> 39, </key>
|
||||
<key name="third"> 7, </key>
|
||||
<key name="thre"> 1,3,14,18,21,37,43,45,55,56,68,74,82, </key>
|
||||
<key name="third"> 7,61, </key>
|
||||
<key name="thre"> 1,3,14,18,21,37,43,45,55,56,61,68,74,82, </key>
|
||||
<key name="thu"> 65,76, </key>
|
||||
<key name="tim"> 21,47,49,56,74, </key>
|
||||
<key name="tobezi"> 65, </key>
|
||||
@ -1230,16 +1242,16 @@
|
||||
<key name="triangl"> 51, </key>
|
||||
<key name="trihedron"> 51, </key>
|
||||
<key name="trimsiz"> 3,4,55, </key>
|
||||
<key name="tru"> 0,15,53,59,33, </key>
|
||||
<key name="tru"> 0,15,59,33, </key>
|
||||
<key name="truncat"> 20, </key>
|
||||
<key name="try"> 29, </key>
|
||||
<key name="tt"> 37,68, </key>
|
||||
<key name="tui"> 0,1,2,50,7,9,10,12,13,14,15,16,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,42,43,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,76,77,31,33,78,79,80,81,83, </key>
|
||||
<key name="tupl"> 33, </key>
|
||||
<key name="two"> 0,3,4,50,7,8,9,13,17,18,20,24,36,37,39,40,46,47,48,49,53,65,68,70,74,77,33,82,83, </key>
|
||||
<key name="two"> 0,3,4,50,7,8,9,13,17,18,20,24,36,37,39,40,46,47,48,49,53,61,65,68,70,74,77,33,82,83, </key>
|
||||
<key name="typ"> 21,26,27,53,65,67,31,33,83, </key>
|
||||
<key name="u"> 65, </key>
|
||||
<key name="uncheck"> 10, </key>
|
||||
<key name="uncheck"> 10,51, </key>
|
||||
<key name="underly"> 15,65, </key>
|
||||
<key name="unionlist"> 40, </key>
|
||||
<key name="up"> 16,20,81, </key>
|
||||
@ -1270,6 +1282,7 @@
|
||||
<key name="vector2_arc2"> 18, </key>
|
||||
<key name="vector3"> 18, </key>
|
||||
<key name="versa"> 65, </key>
|
||||
<key name="version"> 53, </key>
|
||||
<key name="vertex"> 3,4,6,14,15,18,20,23,24,25,28,37,44,45,54,55,56,57,59,60,62,70,74,77,33, </key>
|
||||
<key name="vertex_n"> 56, </key>
|
||||
<key name="vertex1"> 24, </key>
|
||||
@ -1305,7 +1318,7 @@
|
||||
<key name="whil"> 12,18,37,44,65,81, </key>
|
||||
<key name="whos"> 29,33, </key>
|
||||
<key name="wid"> 38,30, </key>
|
||||
<key name="will"> 0,1,2,50,7,9,10,12,13,14,15,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,32,42,43,45,46,47,48,49,51,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,77,78,80,83, </key>
|
||||
<key name="will"> 0,1,2,50,7,9,10,12,13,14,15,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,32,42,45,46,47,48,49,51,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,77,78,80,83, </key>
|
||||
<key name="wir"> 3,50,12,15,18,26,28,29,37,44,54,59,60,67,68,72,73,74,80, </key>
|
||||
<key name="wire_clos"> 59, </key>
|
||||
<key name="wire_nam"> 59, </key>
|
||||
@ -1339,7 +1352,6 @@
|
||||
<key name="ymax"> 44,33, </key>
|
||||
<key name="ymin"> 44,33, </key>
|
||||
<key name="your"> 16,32,64,72,79,82,83, </key>
|
||||
<key name="yourselv"> 43, </key>
|
||||
<key name="yz_fac"> 5, </key>
|
||||
<key name="yz_face_ind"> 5, </key>
|
||||
<key name="z"> 2,3,7,43,56,70,33, </key>
|
||||
|
@ -44,7 +44,6 @@
|
||||
</book>
|
||||
<book name="Viewing geometrical objects" >
|
||||
<item name="Viewing Geometrical Objects" url="viewing_geometrical_objects.htm" />
|
||||
<item name="OCC 3D Viewer" url="occ_viewer.htm" />
|
||||
<item name="Display Mode" url="wireframe_and_shading.htm" />
|
||||
<item name="Color" url="color.htm" />
|
||||
<item name="Transparency" url="transparency.htm" />
|
||||
|
@ -17,9 +17,20 @@ if (navigator.appName !="Netscape")
|
||||
img_whs1 { width:20px; height:20px; border-style:none; }
|
||||
p.whs2 { font-size:12pt; }
|
||||
p.whs3 { font-size:12pt; margin-left:40px; }
|
||||
img_whs4 { border:none; width:400px; height:231px; float:none; }
|
||||
img_whs5 { border:none; width:312px; height:266px; float:none; border-style:none; }
|
||||
img_whs6 { border:none; width:312px; height:274px; float:none; border-style:none; }
|
||||
img_whs4 { border:none; width:400px; height:277px; float:none; border-style:none; }
|
||||
img_whs5 { border:none; width:400px; height:312px; float:none; border-style:none; }
|
||||
img_whs6 { border:none; width:400px; height:320px; float:none; border-style:none; }
|
||||
table.whs7 { x-cell-content-align:top; width:39.231%; border-spacing:0px; }
|
||||
col.whs8 { width:52.696%; }
|
||||
col.whs9 { width:47.304%; }
|
||||
tr.whs10 { x-cell-content-align:top; }
|
||||
td.whs11 { width:52.696%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-right-style:none; border-left-style:none; border-top-style:none; }
|
||||
p.whs12 { font-style:italic; }
|
||||
td.whs13 { width:47.304%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-top-style:none; border-right-style:none; }
|
||||
td.whs14 { width:52.696%; padding-right:10px; padding-left:10px; border-right-style:none; border-left-style:none; border-bottom-style:none; }
|
||||
img_whs15 { border:none; width:176px; height:217px; border-style:none; }
|
||||
td.whs16 { width:47.304%; padding-right:10px; padding-left:10px; border-bottom-style:none; border-right-style:none; }
|
||||
img_whs17 { border:none; width:191px; height:217px; border-style:none; }
|
||||
-->
|
||||
</style><script type="text/javascript" language="JavaScript" title="WebHelpInlineScript">
|
||||
<!--
|
||||
@ -82,14 +93,20 @@ if (window.writeIntopicBar)
|
||||
</script>
|
||||
<h1><b style="font-weight: bold;"><span style="font-size: 14pt;"><font size=4 style="font-size:14pt;"><img src="files/salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image34.gif" width="20px" height="20px" border="0" class="img_whs1"></font></span></b>Working Plane</h1>
|
||||
|
||||
<p>Definition of a <span style="font-weight: bold;"><B>Working Plane</B></span>
|
||||
is necessary for work with <span style="font-weight: bold;"><B><a href="sketcher.htm">Sketcher</a></B></span>.
|
||||
</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p>To create a <span style="font-weight: bold;"><B>Working Plane</B></span> in
|
||||
the <span style="font-weight: bold;"><B>Main Menu</B></span> select <span style="font-weight: bold;"><B>New
|
||||
Entity - > Basic - > Working Plane</B></span></p>
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
<p class="whs2">There are some algorithms to set the <span
|
||||
style="font-weight: bold;"><B>Working Plane</B></span> and the Camera Position.</p>
|
||||
<p class="whs2">There is a number of algorithms to set the
|
||||
<span style="font-weight: bold;"><B>Working Plane</B></span> and the Camera Position.</p>
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
@ -98,12 +115,12 @@ if (window.writeIntopicBar)
|
||||
Face</B></span> or a <span style="font-weight: bold;"><B>Local Coordinate System</B></span>
|
||||
to be your <span style="font-weight: bold;"><B>Working Plane</B></span></p>
|
||||
|
||||
<p class="whs2"><b>Arguments:</b> Name + 1 selection (face
|
||||
or planar face), </p>
|
||||
<p class="whs2"><b style="font-weight: bold;">Arguments:</b>
|
||||
Name + 1 selection (face or planar face), </p>
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
<p class="whs3"><img src="pics/workplane4.png" x-maintain-ratio="TRUE" width="400px" height="231px" border="0" class="img_whs4"></p>
|
||||
<p class="whs3"><img src="pics/workplane4.png" x-maintain-ratio="TRUE" width="400px" height="277px" border="0" class="img_whs4"></p>
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
@ -112,9 +129,11 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p class="whs2"><b style="font-weight: bold;">Arguments:</b>
|
||||
Name + 2
|
||||
vectors, </p>
|
||||
vectors.</p>
|
||||
|
||||
<p class="whs3"><img src="pics/workplane5.png" x-maintain-ratio="TRUE" width="312px" height="266px" border="0" class="img_whs5"></p>
|
||||
<p class="whs2"> </p>
|
||||
|
||||
<p class="whs3"><img src="pics/workplane5.png" x-maintain-ratio="TRUE" width="400px" height="312px" border="0" class="img_whs5"></p>
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
@ -124,9 +143,38 @@ if (window.writeIntopicBar)
|
||||
|
||||
<p class="whs2"> </p>
|
||||
|
||||
<p class="whs3"><img src="pics/workplane6.png" x-maintain-ratio="TRUE" width="312px" height="274px" border="0" class="img_whs6"></p>
|
||||
<p class="whs3"><img src="pics/workplane6.png" x-maintain-ratio="TRUE" width="400px" height="320px" border="0" class="img_whs6"></p>
|
||||
|
||||
<p class="whs2"> </p>
|
||||
<p> </p>
|
||||
|
||||
<p><span style="font-weight: bold;"><B>Reverse the plane normal</B></span> checkbox
|
||||
allows changing the direction of the working plane.</p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p><span style="font-weight: bold;"><B>Example:</B></span> Working plane on the
|
||||
upper face of a box. </p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<table x-use-null-cells cellspacing="0" width="39.231%" class="whs7">
|
||||
<col class="whs8">
|
||||
<col class="whs9">
|
||||
|
||||
<tr valign="top" class="whs10">
|
||||
<td width="52.696%" class="whs11">
|
||||
<p class="whs12">Normal Direction</td>
|
||||
<td width="47.304%" class="whs13">
|
||||
<p class="whs12">Reversed Direction</td></tr>
|
||||
|
||||
<tr valign="top" class="whs10">
|
||||
<td width="52.696%" class="whs14">
|
||||
<p><img src="image36.gif" width="176px" height="217px" border="0" class="img_whs15"></td>
|
||||
<td width="47.304%" class="whs16">
|
||||
<p><img src="image47.gif" width="191px" height="217px" border="0" class="img_whs17"></td></tr>
|
||||
</table>
|
||||
|
||||
<p> </p>
|
||||
|
||||
<p> </p>
|
||||
|
||||
|
119
idl/GEOM_Gen.idl
@ -147,7 +147,7 @@ module GEOM
|
||||
/*!
|
||||
* Get the TopoDS_Shape, for colocated case only.
|
||||
*/
|
||||
long getShape();
|
||||
long long getShape();
|
||||
|
||||
/*!
|
||||
######################################################################
|
||||
@ -888,6 +888,29 @@ module GEOM
|
||||
in boolean theWithContact ,
|
||||
in boolean theWithCorrection );
|
||||
|
||||
/*!
|
||||
* Create a shape by extrusion of the profile shape along
|
||||
* the path shape. The path shape can be a shell or a face.
|
||||
* the several profiles can be specified in the several locations of path.
|
||||
* \param theSeqBases - list of Bases shape to be extruded.
|
||||
* \param theSeqSubBases - list of corresponding subshapes of section shapes.
|
||||
* \param theLocations - list of locations on the path corresponding
|
||||
* specified list of the Bases shapes. Number of locations
|
||||
* should be equal to number of bases or list of locations can be empty.
|
||||
* \param thePath - Path shape to extrude the base shape along it.
|
||||
* \param theWithContact - the mode defining that the section is translated to be in
|
||||
* contact with the spine.
|
||||
* \param - WithCorrection - defining that the section is rotated to be
|
||||
* orthogonal to the spine tangent in the correspondent point
|
||||
* \return New GEOM_Object, containing the created pipe.
|
||||
*/
|
||||
GEOM_Object MakePipeWithShellSections (in ListOfGO theSeqBases,
|
||||
in ListOfGO theSeqSubBases,
|
||||
in ListOfGO theLocations,
|
||||
in GEOM_Object thePath,
|
||||
in boolean theWithContact ,
|
||||
in boolean theWithCorrection );
|
||||
|
||||
};
|
||||
|
||||
/*!
|
||||
@ -966,6 +989,25 @@ module GEOM
|
||||
*/
|
||||
GEOM_Object MakeGlueFaces (in GEOM_Object theShape, in double theTolerance);
|
||||
|
||||
/*!
|
||||
* Find coincident faces in theShape for possible gluing.
|
||||
* \param theShape Initial shape.
|
||||
* \param theTolerance Maximum distance between faces, which can be considered as coincident.
|
||||
* \return ListOfGO
|
||||
*/
|
||||
ListOfGO GetGlueFaces (in GEOM_Object theShape, in double theTolerance);
|
||||
|
||||
/*!
|
||||
* Replace coincident faces in theShape by one face
|
||||
* in compliance with given list of faces
|
||||
* \param theShape Initial shape.
|
||||
* \param theTolerance Maximum distance between faces, which can be considered as coincident.
|
||||
* \param theFaces List of faces for gluing.
|
||||
* \return New GEOM_Object, containing a copy of theShape without some faces.
|
||||
*/
|
||||
GEOM_Object MakeGlueFacesByList (in GEOM_Object theShape, in double theTolerance,
|
||||
in ListOfGO theFaces);
|
||||
|
||||
/*!
|
||||
* Explode a shape on subshapes of a given type.
|
||||
* \param theShape Shape to be exploded.
|
||||
@ -1750,6 +1792,20 @@ module GEOM
|
||||
in GEOM_Object thePnt2,
|
||||
in GEOM_Object thePnt3);
|
||||
|
||||
/*!
|
||||
* Create an arc of circle of center C from one point to another
|
||||
* \param theCenter Center point of the arc.
|
||||
* \param thePnt1 Start point of the arc.
|
||||
* \param thePnt2 End point of the arc.
|
||||
* \param theSense Orientation of the arc
|
||||
* \return New GEOM_Object, containing the created arc.
|
||||
*/
|
||||
GEOM_Object MakeArcCenter (in GEOM_Object theCenter,
|
||||
in GEOM_Object thePnt1,
|
||||
in GEOM_Object thePnt2,
|
||||
in boolean theSense);
|
||||
|
||||
|
||||
/*!
|
||||
* Create a polyline on the set of points.
|
||||
* \param thePoints Sequence of points for the polyline.
|
||||
@ -2100,6 +2156,52 @@ module GEOM
|
||||
out string_array thePatterns);
|
||||
};
|
||||
|
||||
/*!
|
||||
* GEOM_IKindOfShape: namespace for shape_kind enumeration.
|
||||
*/
|
||||
interface GEOM_IKindOfShape
|
||||
{
|
||||
enum shape_kind {
|
||||
NO_SHAPE,
|
||||
// COMPOSITEs
|
||||
COMPOUND,
|
||||
COMPSOLID,
|
||||
SHELL,
|
||||
WIRE,
|
||||
// SOLIDs
|
||||
SPHERE, // full sphere
|
||||
CYLINDER, // cylinder
|
||||
BOX, // box with faces, parallel to global coordinate planes
|
||||
ROTATED_BOX, // other box
|
||||
TORUS, // full torus
|
||||
CONE, // cone
|
||||
POLYHEDRON, // solid, bounded by polygons
|
||||
SOLID, // other solid
|
||||
// FACEs
|
||||
SPHERE2D, // spherical face (closed)
|
||||
CYLINDER2D, // cylindrical face with defined height
|
||||
TORUS2D, // toroidal face (closed)
|
||||
CONE2D, // conical face with defined height
|
||||
DISK_CIRCLE, // planar, bounded by circle
|
||||
DISK_ELLIPSE, // planar, bounded by ellipse
|
||||
POLYGON, // planar, bounded by segments
|
||||
PLANE, // infinite planar
|
||||
PLANAR, // other planar
|
||||
FACE, // other face
|
||||
// EDGEs
|
||||
CIRCLE, // full circle
|
||||
ARC_CIRCLE, // arc of circle
|
||||
ELLIPSE, // full ellipse
|
||||
ARC_ELLIPSE, // arc of ellipse
|
||||
LINE, // infinite segment
|
||||
SEGMENT, // segment
|
||||
EDGE, // other edge
|
||||
// VERTEX
|
||||
VERTEX
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
/*!
|
||||
* GEOM_IMeasureOperations: Interface for measurement (distance, whatis) and
|
||||
* properties calculation (like Centre of Mass, Inertia, etc.).
|
||||
@ -2107,6 +2209,21 @@ module GEOM
|
||||
*/
|
||||
interface GEOM_IMeasureOperations : GEOM_IOperations
|
||||
{
|
||||
/*!
|
||||
* Get kind of theShape.
|
||||
* \param theShape Shape to get a kind of.
|
||||
* \param theIntegers Output. Integer and enumerated shape's parameters
|
||||
* (kind of surface, closed/unclosed, number of edges, etc.)
|
||||
* \param theDoubles Output. Double shape's parameters (coordinates, dimensions, etc.)
|
||||
* \note Concrete meaning of each value, returned via \a theIntegers
|
||||
* or \a theDoubles list depends on the kind of the shape.
|
||||
* \return Returns a kind of shape in terms of <VAR>GEOM_IKindOfShape.shape_kind</VAR> enumeration.
|
||||
*/
|
||||
//short KindOfShape (in GEOM_Object theShape,
|
||||
GEOM_IKindOfShape::shape_kind KindOfShape (in GEOM_Object theShape,
|
||||
out ListOfLong theIntegers,
|
||||
out ListOfDouble theDoubles);
|
||||
|
||||
/*!
|
||||
* Get position (LCS) of theShape.
|
||||
* \param theShape Shape to calculate position of.
|
||||
|
@ -177,6 +177,13 @@ module GEOM
|
||||
in boolean theWithContact ,
|
||||
in boolean theWithCorrection );
|
||||
|
||||
GEOM_Object MakePipeWithShellSections (in ListOfGO theSeqBases,
|
||||
in ListOfGO theSeqSubBases,
|
||||
in ListOfGO theLocations,
|
||||
in GEOM_Object thePath,
|
||||
in boolean theWithContact ,
|
||||
in boolean theWithCorrection );
|
||||
|
||||
//-----------------------------------------------------------//
|
||||
// BooleanOperations //
|
||||
//-----------------------------------------------------------//
|
||||
@ -305,7 +312,12 @@ module GEOM
|
||||
GEOM_Object MakeSolidShells (in GEOM_List theShells) ;
|
||||
GEOM_Object MakeCompound (in GEOM_List theShapes) ;
|
||||
GEOM_Object MakeGlueFaces (in GEOM_Object theShape,
|
||||
in double theTolerance) ;
|
||||
in double theTolerance);
|
||||
GEOM_List GetGlueFaces (in GEOM_Object theShape,
|
||||
in double theTolerance);
|
||||
GEOM_Object MakeGlueFacesByList (in GEOM_Object theShape,
|
||||
in double theTolerance,
|
||||
in ListOfGO theFaces);
|
||||
GEOM_List MakeExplode (in GEOM_Object theShape,
|
||||
in long theShapeType,
|
||||
in boolean isSorted) ;
|
||||
@ -403,6 +415,10 @@ module GEOM
|
||||
GEOM_Object MakeArc (in GEOM_Object thePnt1,
|
||||
in GEOM_Object thePnt2,
|
||||
in GEOM_Object thePnt3) ;
|
||||
GEOM_Object MakeArcCenter (in GEOM_Object theCenter,
|
||||
in GEOM_Object thePnt1,
|
||||
in GEOM_Object thePnt2,
|
||||
in boolean theSense) ;
|
||||
GEOM_Object MakePolyline (in GEOM_List thePoints) ;
|
||||
GEOM_Object MakeSplineBezier (in GEOM_List thePoints) ;
|
||||
GEOM_Object MakeSplineInterpolation (in GEOM_List thePoints) ;
|
||||
|
@ -3857,6 +3857,42 @@
|
||||
<DataStream-list></DataStream-list>
|
||||
</component-service>
|
||||
<component-service>
|
||||
<service-name>MakeArcCenter</service-name>
|
||||
<service-author>ngr</service-author>
|
||||
<service-version>3.2.6</service-version>
|
||||
<service-comment>unknown</service-comment>
|
||||
<service-by-default>0</service-by-default>
|
||||
<inParameter-list>
|
||||
<inParameter>
|
||||
<inParameter-name>theCenter</inParameter-name>
|
||||
<inParameter-type>GEOM_Object</inParameter-type>
|
||||
<inParameter-comment>unknown</inParameter-comment>
|
||||
</inParameter>
|
||||
<inParameter>
|
||||
<inParameter-name>thePnt1</inParameter-name>
|
||||
<inParameter-type>GEOM_Object</inParameter-type>
|
||||
<inParameter-comment>unknown</inParameter-comment>
|
||||
</inParameter>
|
||||
<inParameter>
|
||||
<inParameter-name>thePnt2</inParameter-name>
|
||||
<inParameter-type>GEOM_Object</inParameter-type>
|
||||
<inParameter-comment>unknown</inParameter-comment>
|
||||
</inParameter>
|
||||
<inParameter>
|
||||
<inParameter-name>theSense</inParameter-name>
|
||||
<inParameter-type>boolean</inParameter-type>
|
||||
<inParameter-comment>unknown</inParameter-comment>
|
||||
</inParameter>
|
||||
</inParameter-list>
|
||||
<outParameter-list>
|
||||
<outParameter>
|
||||
<outParameter-name>return</outParameter-name>
|
||||
<outParameter-type>GEOM_Object</outParameter-type>
|
||||
<outParameter-comment>unknown</outParameter-comment>
|
||||
</outParameter>
|
||||
</outParameter-list>
|
||||
<DataStream-list></DataStream-list>
|
||||
</component-service> <component-service>
|
||||
<service-name>MakePolyline</service-name>
|
||||
<service-author>mkr</service-author>
|
||||
<service-version>2.1.0</service-version>
|
||||
|
@ -1,5 +1,5 @@
|
||||
Import: BREP|IGES|STEP
|
||||
Export: BREP|IGES|IGES_5_3|STEP
|
||||
Import: BREP|IGES|STEP|ACIS
|
||||
Export: BREP|IGES|IGES_5_3|STEP|STL_Bin|STL_ASCII|ACIS
|
||||
|
||||
BREP.Import: libBREPImport
|
||||
BREP.Export: libBREPExport
|
||||
@ -16,3 +16,13 @@ IGES_5_3.Pattern: IGES 5.3 Files ( *.iges *.igs )
|
||||
STEP.Import: libSTEPImport
|
||||
STEP.Export: libSTEPExport
|
||||
STEP.Pattern: STEP Files ( *.step *.stp )
|
||||
|
||||
STL_Bin.Export: libSTLExport.so
|
||||
STL_Bin.Pattern: STL Binary Files ( *.stl )
|
||||
|
||||
STL_ASCII.Export: libSTLExport.so
|
||||
STL_ASCII.Pattern: STL ASCII Files ( *.stl )
|
||||
|
||||
ACIS.Import: libACISImport.so
|
||||
ACIS.Export: libACISExport.so
|
||||
ACIS.Pattern: ACIS Files ( *.sat )
|
@ -188,6 +188,8 @@ check_blocks_compound.png \
|
||||
free_faces.png \
|
||||
propagate.png \
|
||||
redo.png \
|
||||
undo.png
|
||||
undo.png \
|
||||
arccenter.png \
|
||||
glue2.png
|
||||
|
||||
nodist_salomeres_DATA = GEOMCatalog.xml
|
||||
|
BIN
resources/arccenter.png
Normal file
After Width: | Height: | Size: 485 B |
BIN
resources/glue2.png
Normal file
After Width: | Height: | Size: 410 B |
@ -59,14 +59,15 @@ BasicGUI_ArcDlg::BasicGUI_ArcDlg(GeometryGUI* theGeometryGUI, QWidget* parent,
|
||||
WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu)
|
||||
{
|
||||
QPixmap image0(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_ARC")));
|
||||
QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT")));
|
||||
QPixmap image1(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_DLG_ARC_CENTER")));
|
||||
QPixmap image2(SUIT_Session::session()->resourceMgr()->loadPixmap("GEOM",tr("ICON_SELECT")));
|
||||
|
||||
setCaption(tr("GEOM_ARC_TITLE"));
|
||||
|
||||
/***************************************************************/
|
||||
GroupConstructors->setTitle(tr("GEOM_ARC"));
|
||||
RadioButton1->setPixmap(image0);
|
||||
RadioButton2->close(TRUE);
|
||||
RadioButton2->setPixmap(image1);
|
||||
RadioButton3->close(TRUE);
|
||||
|
||||
Group3Pnts = new DlgRef_3Sel_QTD(this, "Group3Pnts");
|
||||
@ -79,11 +80,29 @@ BasicGUI_ArcDlg::BasicGUI_ArcDlg(GeometryGUI* theGeometryGUI, QWidget* parent,
|
||||
Group3Pnts->LineEdit2->setReadOnly( true );
|
||||
Group3Pnts->LineEdit3->setReadOnly( true );
|
||||
|
||||
Group3Pnts->PushButton1->setPixmap(image1);
|
||||
Group3Pnts->PushButton2->setPixmap(image1);
|
||||
Group3Pnts->PushButton3->setPixmap(image1);
|
||||
Group3Pnts->PushButton1->setPixmap(image2);
|
||||
Group3Pnts->PushButton2->setPixmap(image2);
|
||||
Group3Pnts->PushButton3->setPixmap(image2);
|
||||
|
||||
|
||||
Group3Pnts2 = new DlgRef_3Sel1Check_QTD(this, "Group3Pnts2");
|
||||
Group3Pnts2->GroupBox1->setTitle(tr("GEOM_POINTS"));
|
||||
Group3Pnts2->TextLabel1->setText(tr("GEOM_CENTER_POINT"));
|
||||
Group3Pnts2->TextLabel2->setText(tr("GEOM_POINT_I").arg("Start"));
|
||||
Group3Pnts2->TextLabel3->setText(tr("GEOM_POINT_I").arg("End"));
|
||||
|
||||
Group3Pnts2->LineEdit1->setReadOnly( true );
|
||||
Group3Pnts2->LineEdit2->setReadOnly( true );
|
||||
Group3Pnts2->LineEdit3->setReadOnly( true );
|
||||
|
||||
Group3Pnts2->PushButton1->setPixmap(image2);
|
||||
Group3Pnts2->PushButton2->setPixmap(image2);
|
||||
Group3Pnts2->PushButton3->setPixmap(image2);
|
||||
|
||||
Group3Pnts2->radioButton4->setText(tr("GEOM_REVERSE"));
|
||||
|
||||
Layout1->addWidget( Group3Pnts, 2, 0 );
|
||||
Layout1->addWidget( Group3Pnts2, 2, 0 );
|
||||
|
||||
setHelpFileName("arc.htm");
|
||||
|
||||
@ -110,16 +129,20 @@ void BasicGUI_ArcDlg::Init()
|
||||
// myGeomGUI->SetState( 0 );
|
||||
globalSelection( GEOM_POINT );
|
||||
|
||||
myConstructorId = -1;
|
||||
myEditCurrentArgument = Group3Pnts->LineEdit1;
|
||||
myEditCurrentArgument->setFocus();
|
||||
|
||||
myPoint1 = myPoint2 = myPoint3 = GEOM::GEOM_Object::_nil();
|
||||
Group3Pnts2->radioButton4->setChecked(FALSE);
|
||||
|
||||
/* signals and slots connections */
|
||||
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel()));
|
||||
connect(myGeomGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
|
||||
connect(myGeomGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel()));
|
||||
|
||||
connect(GroupConstructors, SIGNAL(clicked(int)), this, SLOT(ConstructorsClicked(int)));
|
||||
|
||||
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
|
||||
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
|
||||
|
||||
@ -131,10 +154,23 @@ void BasicGUI_ArcDlg::Init()
|
||||
connect(Group3Pnts->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
|
||||
connect(Group3Pnts->LineEdit3, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
|
||||
|
||||
connect(Group3Pnts2->PushButton1, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
|
||||
connect(Group3Pnts2->PushButton2, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
|
||||
connect(Group3Pnts2->PushButton3, SIGNAL(clicked()), this, SLOT(SetEditCurrentArgument()));
|
||||
|
||||
connect(Group3Pnts2->LineEdit1, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
|
||||
connect(Group3Pnts2->LineEdit2, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
|
||||
connect(Group3Pnts2->LineEdit3, SIGNAL(returnPressed()), this, SLOT(LineEditReturnPressed()));
|
||||
|
||||
connect(Group3Pnts2->radioButton4, SIGNAL(stateChanged(int)), this, SLOT(ReverseSense(int)));
|
||||
|
||||
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
|
||||
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
|
||||
|
||||
initName( tr( "GEOM_ARC" ) );
|
||||
initName( tr( "GEOM_ARC" ));
|
||||
|
||||
|
||||
ConstructorsClicked( 0 );
|
||||
}
|
||||
|
||||
|
||||
@ -173,8 +209,13 @@ bool BasicGUI_ArcDlg::ClickOnApply()
|
||||
Group3Pnts->LineEdit1->setText( "" );
|
||||
Group3Pnts->LineEdit2->setText( "" );
|
||||
Group3Pnts->LineEdit3->setText( "" );
|
||||
myEditCurrentArgument = Group3Pnts->LineEdit1;
|
||||
Group3Pnts2->LineEdit1->setText( "" );
|
||||
Group3Pnts2->LineEdit2->setText( "" );
|
||||
Group3Pnts2->LineEdit3->setText( "" );
|
||||
if (getConstructorId() == 0) myEditCurrentArgument = Group3Pnts->LineEdit1;
|
||||
if (getConstructorId() == 1) myEditCurrentArgument = Group3Pnts2->LineEdit1;
|
||||
|
||||
ConstructorsClicked( getConstructorId() );
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -185,25 +226,55 @@ bool BasicGUI_ArcDlg::ClickOnApply()
|
||||
//=================================================================================
|
||||
void BasicGUI_ArcDlg::SelectionIntoArgument()
|
||||
{
|
||||
myEditCurrentArgument->setText("");
|
||||
if ((getConstructorId() != 0) && (getConstructorId() != 1))
|
||||
return;
|
||||
|
||||
if ( IObjectCount() != 1 )
|
||||
myEditCurrentArgument->setText("");
|
||||
if ( IObjectCount() != 1 ){
|
||||
switch (getConstructorId())
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
if ( myEditCurrentArgument == Group3Pnts->LineEdit1 ) myPoint1 = GEOM::GEOM_Object::_nil();
|
||||
else if ( myEditCurrentArgument == Group3Pnts->LineEdit2 ) myPoint2 = GEOM::GEOM_Object::_nil();
|
||||
else if ( myEditCurrentArgument == Group3Pnts->LineEdit3 ) myPoint3 = GEOM::GEOM_Object::_nil();
|
||||
return;
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
if ( myEditCurrentArgument == Group3Pnts2->LineEdit1 ) myPoint1 = GEOM::GEOM_Object::_nil();
|
||||
else if ( myEditCurrentArgument == Group3Pnts2->LineEdit2 ) myPoint2 = GEOM::GEOM_Object::_nil();
|
||||
else if ( myEditCurrentArgument == Group3Pnts2->LineEdit3 ) myPoint3 = GEOM::GEOM_Object::_nil();
|
||||
return;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// nbSel == 1
|
||||
Standard_Boolean aRes = Standard_False;
|
||||
GEOM::GEOM_Object_var aSelectedObject = GEOMBase::ConvertIOinGEOMObject( firstIObject(), aRes );
|
||||
if ( !CORBA::is_nil( aSelectedObject ) && aRes )
|
||||
{
|
||||
switch (getConstructorId())
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
|
||||
if ( myEditCurrentArgument == Group3Pnts->LineEdit1 ) myPoint1 = aSelectedObject;
|
||||
else if ( myEditCurrentArgument == Group3Pnts->LineEdit2 ) myPoint2 = aSelectedObject;
|
||||
else if ( myEditCurrentArgument == Group3Pnts->LineEdit3 ) myPoint3 = aSelectedObject;
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
|
||||
if ( myEditCurrentArgument == Group3Pnts2->LineEdit1 ) myPoint1 = aSelectedObject;
|
||||
else if ( myEditCurrentArgument == Group3Pnts2->LineEdit2 ) myPoint2 = aSelectedObject;
|
||||
else if ( myEditCurrentArgument == Group3Pnts2->LineEdit3 ) myPoint3 = aSelectedObject;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
displayPreview();
|
||||
@ -217,11 +288,23 @@ void BasicGUI_ArcDlg::SelectionIntoArgument()
|
||||
void BasicGUI_ArcDlg::SetEditCurrentArgument()
|
||||
{
|
||||
QPushButton* send = (QPushButton*)sender();
|
||||
|
||||
switch (getConstructorId())
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
if ( send == Group3Pnts->PushButton1 ) myEditCurrentArgument = Group3Pnts->LineEdit1;
|
||||
else if ( send == Group3Pnts->PushButton2 ) myEditCurrentArgument = Group3Pnts->LineEdit2;
|
||||
else if ( send == Group3Pnts->PushButton3 ) myEditCurrentArgument = Group3Pnts->LineEdit3;
|
||||
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
if ( send == Group3Pnts2->PushButton1 ) myEditCurrentArgument = Group3Pnts2->LineEdit1;
|
||||
else if ( send == Group3Pnts2->PushButton2 ) myEditCurrentArgument = Group3Pnts2->LineEdit2;
|
||||
else if ( send == Group3Pnts2->PushButton3 ) myEditCurrentArgument = Group3Pnts2->LineEdit3;
|
||||
break;
|
||||
}
|
||||
}
|
||||
myEditCurrentArgument->setFocus();
|
||||
SelectionIntoArgument();
|
||||
}
|
||||
@ -234,9 +317,8 @@ void BasicGUI_ArcDlg::SetEditCurrentArgument()
|
||||
void BasicGUI_ArcDlg::LineEditReturnPressed()
|
||||
{
|
||||
QLineEdit* send = (QLineEdit*)sender();
|
||||
if ( send == Group3Pnts->LineEdit1 ||
|
||||
send == Group3Pnts->LineEdit2 ||
|
||||
send == Group3Pnts->LineEdit3 )
|
||||
if ( send == Group3Pnts->LineEdit1 || send == Group3Pnts->LineEdit2 || send == Group3Pnts->LineEdit3 ||
|
||||
send == Group3Pnts2->LineEdit1 || send == Group3Pnts2->LineEdit2 || send == Group3Pnts2->LineEdit3 )
|
||||
{
|
||||
myEditCurrentArgument = send;
|
||||
GEOMBase_Skeleton::LineEditReturnPressed();
|
||||
@ -264,6 +346,9 @@ void BasicGUI_ArcDlg::ActivateThisDialog()
|
||||
Group3Pnts->LineEdit2->setText( "" );
|
||||
Group3Pnts->LineEdit3->setText( "" );
|
||||
myPoint1 = myPoint2 = myPoint3 = GEOM::GEOM_Object::_nil();
|
||||
|
||||
ConstructorsClicked( getConstructorId() );
|
||||
|
||||
}
|
||||
|
||||
//=================================================================================
|
||||
@ -320,11 +405,34 @@ bool BasicGUI_ArcDlg::isValid( QString& msg )
|
||||
//=================================================================================
|
||||
bool BasicGUI_ArcDlg::execute( ObjectList& objects )
|
||||
{
|
||||
GEOM::GEOM_Object_var anObj =
|
||||
GEOM::GEOM_ICurvesOperations::_narrow(getOperation())->MakeArc(myPoint1, myPoint2, myPoint3);
|
||||
if ( !anObj->_is_nil() )
|
||||
bool res = false;
|
||||
GEOM::GEOM_Object_var anObj;
|
||||
|
||||
switch (getConstructorId())
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
if ( !CORBA::is_nil(myPoint1) && !CORBA::is_nil(myPoint2) &&!CORBA::is_nil(myPoint3) ){
|
||||
anObj = GEOM::GEOM_ICurvesOperations::_narrow(getOperation())->MakeArc(myPoint1, myPoint2, myPoint3);
|
||||
res = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
bool Sense;
|
||||
(Group3Pnts2->radioButton4->isChecked()) ? Sense=true : Sense = false;
|
||||
if ( !CORBA::is_nil(myPoint1) && !CORBA::is_nil(myPoint2) &&!CORBA::is_nil(myPoint3) ){
|
||||
anObj = GEOM::GEOM_ICurvesOperations::_narrow(getOperation())->MakeArcCenter(myPoint1, myPoint2, myPoint3,Sense);
|
||||
res = true;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if ( !anObj->_is_nil() ){
|
||||
objects.push_back( anObj._retn() );
|
||||
return true;
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
//=================================================================================
|
||||
@ -335,3 +443,45 @@ void BasicGUI_ArcDlg::closeEvent( QCloseEvent* e )
|
||||
{
|
||||
GEOMBase_Skeleton::closeEvent( e );
|
||||
}
|
||||
|
||||
//=================================================================================
|
||||
// function : ConstructorsClicked()
|
||||
// purpose : Radio button management
|
||||
//=================================================================================
|
||||
void BasicGUI_ArcDlg::ConstructorsClicked( int constructorId )
|
||||
{
|
||||
|
||||
disconnect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), 0, this, 0);
|
||||
|
||||
switch (constructorId)
|
||||
{
|
||||
case 0:
|
||||
{
|
||||
Group3Pnts->show();
|
||||
resize(0, 0);
|
||||
Group3Pnts2->hide();
|
||||
|
||||
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
|
||||
break;
|
||||
}
|
||||
case 1:
|
||||
{
|
||||
Group3Pnts->hide();
|
||||
resize(0, 0);
|
||||
Group3Pnts2->show();
|
||||
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(), SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
displayPreview();
|
||||
}
|
||||
|
||||
//=================================================================================
|
||||
// function : ReverseSense()
|
||||
// purpose : Orientation of the arc
|
||||
//=================================================================================
|
||||
void BasicGUI_ArcDlg::ReverseSense(int sense)
|
||||
{
|
||||
displayPreview();
|
||||
}
|
||||
|
@ -32,6 +32,7 @@
|
||||
|
||||
#include "GEOMBase_Skeleton.h"
|
||||
#include "DlgRef_3Sel_QTD.h"
|
||||
#include "DlgRef_3Sel1Check_QTD.h"
|
||||
|
||||
//=================================================================================
|
||||
// class : BasicGUI_ArcDlg
|
||||
@ -57,10 +58,11 @@ protected:
|
||||
private :
|
||||
void Init();
|
||||
void enterEvent(QEvent* e);
|
||||
|
||||
int myConstructorId;
|
||||
GEOM::GEOM_Object_var myPoint1, myPoint2, myPoint3;
|
||||
|
||||
DlgRef_3Sel_QTD* Group3Pnts;
|
||||
DlgRef_3Sel1Check_QTD* Group3Pnts2;
|
||||
|
||||
private slots:
|
||||
void ClickOnOk();
|
||||
@ -69,11 +71,11 @@ private slots:
|
||||
|
||||
void ActivateThisDialog();
|
||||
void DeactivateActiveDialog();
|
||||
|
||||
void ConstructorsClicked( int );
|
||||
void LineEditReturnPressed();
|
||||
void SelectionIntoArgument();
|
||||
void SetEditCurrentArgument();
|
||||
|
||||
void ReverseSense(int);
|
||||
};
|
||||
|
||||
#endif // DIALOGBOX_ARC_H
|
||||
|
@ -102,6 +102,16 @@ BasicGUI_WorkingPlaneDlg::BasicGUI_WorkingPlaneDlg(GeometryGUI* theGeometryGUI,
|
||||
Layout1->addWidget(Group2, 1, 0);
|
||||
Layout1->addWidget(Group3, 1, 0);
|
||||
/***************************************************************/
|
||||
QGroupBox* aReverseGroupBox = new QGroupBox(this, "aReverseGroupBox");
|
||||
aReverseGroupBox->setTitle(tr(""));
|
||||
aReverseGroupBox->setColumnLayout(1, Qt::Horizontal);
|
||||
aReverseGroupBox->setInsideMargin(10);
|
||||
|
||||
myReverseCB = new QCheckBox(aReverseGroupBox, "myReverseCB");
|
||||
myReverseCB->setText(tr("GEOM_REVERSE_PLANE"));
|
||||
|
||||
Layout1->addWidget(aReverseGroupBox, 2, 0);
|
||||
|
||||
|
||||
setHelpFileName("working_plane.htm");
|
||||
|
||||
@ -156,6 +166,8 @@ void BasicGUI_WorkingPlaneDlg::Init()
|
||||
|
||||
connect(Group3->GroupBox1, SIGNAL(clicked(int)), this, SLOT(GroupClicked(int)));
|
||||
|
||||
connect(myReverseCB, SIGNAL(clicked()), this, SLOT(onReverse()));
|
||||
|
||||
connect(((SalomeApp_Application*)(SUIT_Session::session()->activeApplication()))->selectionMgr(),
|
||||
SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
|
||||
|
||||
@ -225,7 +237,8 @@ void BasicGUI_WorkingPlaneDlg::ConstructorsClicked(int constructorId)
|
||||
break;
|
||||
}
|
||||
}
|
||||
displayPreview();
|
||||
|
||||
updateWPlane();
|
||||
}
|
||||
|
||||
//=================================================================================
|
||||
@ -235,6 +248,7 @@ void BasicGUI_WorkingPlaneDlg::ConstructorsClicked(int constructorId)
|
||||
void BasicGUI_WorkingPlaneDlg::GroupClicked(int groupId)
|
||||
{
|
||||
aOriginType = groupId;
|
||||
updateWPlane();
|
||||
}
|
||||
|
||||
//=================================================================================
|
||||
@ -255,99 +269,12 @@ bool BasicGUI_WorkingPlaneDlg::ClickOnApply()
|
||||
{
|
||||
buttonApply->setFocus();
|
||||
myGeomGUI->application()->putInfo(tr(""));
|
||||
const int id = getConstructorId();
|
||||
|
||||
if (id == 0) { // by planar face selection
|
||||
if (CORBA::is_nil(myFace)) {
|
||||
showError( "Face has to be selected" );
|
||||
return false;
|
||||
}
|
||||
|
||||
// PAL12781: set center of WPL to face's center of mass
|
||||
// like it is done for LCS creation
|
||||
CORBA::Double Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz;
|
||||
Ox = Oy = Oz = Zx = Zy = Xy = Xz = 0.;
|
||||
Zz = Xx = 1.;
|
||||
|
||||
GEOM::GEOM_IMeasureOperations_ptr aMeasureOp =
|
||||
myGeomGUI->GetGeomGen()->GetIMeasureOperations(getStudyId());
|
||||
aMeasureOp->GetPosition(myFace, Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz);
|
||||
|
||||
if (aMeasureOp->IsDone()) {
|
||||
gp_Pnt aPnt (Ox,Oy,Oz);
|
||||
gp_Dir aDirN (Zx,Zy,Zz);
|
||||
gp_Dir aDirX (Xx,Xy,Xz);
|
||||
myWPlane = gp_Ax3(aPnt, aDirN, aDirX);
|
||||
} else {
|
||||
showError( "Wrong shape selected (has to be a planar face)" );
|
||||
return false;
|
||||
}
|
||||
|
||||
} else if (id == 1) { // by two vectors (Ox & Oz)
|
||||
if ( CORBA::is_nil( myVectX ) || CORBA::is_nil( myVectZ ) ) {
|
||||
showError( "Two vectors have to be selected" );
|
||||
return false;
|
||||
}
|
||||
|
||||
TopoDS_Edge aVectX, aVectZ;
|
||||
TopoDS_Vertex VX1, VX2, VZ1, VZ2;
|
||||
gp_Vec aVX, aVZ;
|
||||
|
||||
if (!GEOMBase::GetShape( myVectX, aVectX, TopAbs_EDGE ) ||
|
||||
!GEOMBase::GetShape( myVectZ, aVectZ, TopAbs_EDGE )) {
|
||||
showError( "Wrong shape selected (two vectors(edges) have to be selected)" );
|
||||
return false;
|
||||
}
|
||||
|
||||
TopExp::Vertices(aVectX, VX1, VX2, Standard_True);
|
||||
TopExp::Vertices(aVectZ, VZ1, VZ2, Standard_True);
|
||||
|
||||
if (VX1.IsNull() || VX2.IsNull()) {
|
||||
showError( "Bad OX vector" );
|
||||
return false;
|
||||
}
|
||||
if (VZ1.IsNull() || VZ2.IsNull()) {
|
||||
showError( "Bad OZ vector" );
|
||||
return false;
|
||||
}
|
||||
|
||||
aVX = gp_Vec(BRep_Tool::Pnt(VX1), BRep_Tool::Pnt(VX2));
|
||||
aVZ = gp_Vec(BRep_Tool::Pnt(VZ1), BRep_Tool::Pnt(VZ2));
|
||||
|
||||
if (aVX.Magnitude() < Precision::Confusion()) {
|
||||
showError( "Bad OX vector" );
|
||||
return false;
|
||||
}
|
||||
if (aVZ.Magnitude() < Precision::Confusion()) {
|
||||
showError( "Bad OZ vector" );
|
||||
return false;
|
||||
}
|
||||
|
||||
gp_Dir aDirX = gp_Dir(aVX.X(), aVX.Y(), aVX.Z());
|
||||
gp_Dir aDirZ = gp_Dir(aVZ.X(), aVZ.Y(), aVZ.Z());
|
||||
|
||||
if (aDirX.IsParallel(aDirZ, Precision::Angular())) {
|
||||
showError( "Parallel vectors selected" );
|
||||
return false;
|
||||
}
|
||||
|
||||
myWPlane = gp_Ax3(BRep_Tool::Pnt(VX1), aDirZ, aDirX);
|
||||
|
||||
} else if (id == 2) { // by selection from standard (OXY or OYZ, or OZX)
|
||||
gp_Ax2 anAx2;
|
||||
|
||||
if (aOriginType == 1) anAx2 = gp::XOY();
|
||||
else if (aOriginType == 2) anAx2 = gp::YOZ();
|
||||
else if (aOriginType == 0) anAx2 = gp::ZOX();
|
||||
|
||||
myWPlane = gp_Ax3(anAx2);
|
||||
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (updateWPlane(false)){
|
||||
myGeomGUI->SetWorkingPlane(myWPlane);
|
||||
myGeomGUI->ActiveWorkingPlane();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -387,6 +314,8 @@ void BasicGUI_WorkingPlaneDlg::SelectionIntoArgument()
|
||||
myVectZ = aSelectedObject;
|
||||
|
||||
myEditCurrentArgument->setText( GEOMBase::GetName( aSelectedObject ) );
|
||||
|
||||
updateWPlane();
|
||||
}
|
||||
|
||||
|
||||
@ -430,6 +359,16 @@ void BasicGUI_WorkingPlaneDlg::LineEditReturnPressed()
|
||||
}
|
||||
|
||||
|
||||
//=================================================================================
|
||||
// function : onReverse()
|
||||
// purpose :
|
||||
//=================================================================================
|
||||
void BasicGUI_WorkingPlaneDlg::onReverse()
|
||||
{
|
||||
updateWPlane();
|
||||
}
|
||||
|
||||
|
||||
//=================================================================================
|
||||
// function : ActivateThisDialog()
|
||||
// purpose :
|
||||
@ -481,3 +420,130 @@ void BasicGUI_WorkingPlaneDlg::closeEvent( QCloseEvent* e )
|
||||
{
|
||||
GEOMBase_Skeleton::closeEvent( e );
|
||||
}
|
||||
|
||||
|
||||
//=================================================================================
|
||||
// function : updateWPlane
|
||||
// purpose :
|
||||
//=================================================================================
|
||||
bool BasicGUI_WorkingPlaneDlg::updateWPlane( const bool showPreview )
|
||||
{
|
||||
erasePreview();
|
||||
|
||||
const int id = getConstructorId();
|
||||
|
||||
if (id == 0) { // by planar face selection
|
||||
if (CORBA::is_nil(myFace)) {
|
||||
if(!showPreview)
|
||||
showError( "Face has to be selected" );
|
||||
return false;
|
||||
}
|
||||
|
||||
// PAL12781: set center of WPL to face's center of mass
|
||||
// like it is done for LCS creation
|
||||
CORBA::Double Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz;
|
||||
Ox = Oy = Oz = Zx = Zy = Xy = Xz = 0.;
|
||||
Zz = Xx = 1.;
|
||||
|
||||
GEOM::GEOM_IMeasureOperations_ptr aMeasureOp =
|
||||
myGeomGUI->GetGeomGen()->GetIMeasureOperations(getStudyId());
|
||||
aMeasureOp->GetPosition(myFace, Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz);
|
||||
|
||||
if (aMeasureOp->IsDone()) {
|
||||
gp_Pnt aPnt (Ox,Oy,Oz);
|
||||
gp_Dir aDirN (Zx,Zy,Zz);
|
||||
gp_Dir aDirX (Xx,Xy,Xz);
|
||||
myWPlane = gp_Ax3(aPnt, aDirN, aDirX);
|
||||
} else {
|
||||
if(!showPreview)
|
||||
showError( "Wrong shape selected (has to be a planar face)" );
|
||||
return false;
|
||||
}
|
||||
|
||||
} else if (id == 1) { // by two vectors (Ox & Oz)
|
||||
if ( CORBA::is_nil( myVectX ) || CORBA::is_nil( myVectZ ) ) {
|
||||
if(!showPreview)
|
||||
showError( "Two vectors have to be selected" );
|
||||
return false;
|
||||
}
|
||||
|
||||
TopoDS_Edge aVectX, aVectZ;
|
||||
TopoDS_Vertex VX1, VX2, VZ1, VZ2;
|
||||
gp_Vec aVX, aVZ;
|
||||
|
||||
if (!GEOMBase::GetShape( myVectX, aVectX, TopAbs_EDGE ) ||
|
||||
!GEOMBase::GetShape( myVectZ, aVectZ, TopAbs_EDGE )) {
|
||||
if(!showPreview)
|
||||
showError( "Wrong shape selected (two vectors(edges) have to be selected)" );
|
||||
return false;
|
||||
}
|
||||
|
||||
TopExp::Vertices(aVectX, VX1, VX2, Standard_True);
|
||||
TopExp::Vertices(aVectZ, VZ1, VZ2, Standard_True);
|
||||
|
||||
if (VX1.IsNull() || VX2.IsNull()) {
|
||||
if(!showPreview)
|
||||
showError( "Bad OX vector" );
|
||||
return false;
|
||||
}
|
||||
if (VZ1.IsNull() || VZ2.IsNull()) {
|
||||
if(!showPreview)
|
||||
showError( "Bad OZ vector" );
|
||||
return false;
|
||||
}
|
||||
|
||||
aVX = gp_Vec(BRep_Tool::Pnt(VX1), BRep_Tool::Pnt(VX2));
|
||||
aVZ = gp_Vec(BRep_Tool::Pnt(VZ1), BRep_Tool::Pnt(VZ2));
|
||||
|
||||
if (aVX.Magnitude() < Precision::Confusion()) {
|
||||
if(!showPreview)
|
||||
showError( "Bad OX vector" );
|
||||
return false;
|
||||
}
|
||||
if (aVZ.Magnitude() < Precision::Confusion()) {
|
||||
if(!showPreview)
|
||||
showError( "Bad OZ vector" );
|
||||
return false;
|
||||
}
|
||||
|
||||
gp_Dir aDirX = gp_Dir(aVX.X(), aVX.Y(), aVX.Z());
|
||||
gp_Dir aDirZ = gp_Dir(aVZ.X(), aVZ.Y(), aVZ.Z());
|
||||
|
||||
if (aDirX.IsParallel(aDirZ, Precision::Angular())) {
|
||||
if(!showPreview)
|
||||
showError( "Parallel vectors selected" );
|
||||
return false;
|
||||
}
|
||||
|
||||
myWPlane = gp_Ax3(BRep_Tool::Pnt(VX1), aDirZ, aDirX);
|
||||
|
||||
} else if (id == 2) { // by selection from standard (OXY or OYZ, or OZX)
|
||||
gp_Ax2 anAx2;
|
||||
|
||||
if (aOriginType == 1) anAx2 = gp::XOY();
|
||||
else if (aOriginType == 2) anAx2 = gp::YOZ();
|
||||
else if (aOriginType == 0) anAx2 = gp::ZOX();
|
||||
|
||||
myWPlane = gp_Ax3(anAx2);
|
||||
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (myReverseCB->isChecked())
|
||||
{
|
||||
myWPlane.YReverse();
|
||||
myWPlane.ZReverse();
|
||||
}
|
||||
|
||||
if (showPreview)
|
||||
{
|
||||
GEOM::GEOM_IBasicOperations_var aBasicOp = getGeomEngine()->GetIBasicOperations( getStudyId() );
|
||||
GEOM::GEOM_Object_var anObj = aBasicOp->MakeMarker( myWPlane.Location().X(), myWPlane.Location().Y(), myWPlane.Location().Z(),
|
||||
myWPlane.XDirection().X(), myWPlane.XDirection().Y(), myWPlane.XDirection().Z(),
|
||||
myWPlane.YDirection().X(), myWPlane.YDirection().Y(), myWPlane.YDirection().Z() );
|
||||
displayPreview(anObj);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
@ -35,6 +35,8 @@
|
||||
#include "DlgRef_2Sel_QTD.h"
|
||||
#include "DlgRef_3Check_QTD.h"
|
||||
|
||||
class QCheckBox;
|
||||
|
||||
//=================================================================================
|
||||
// class : BasicGUI_WorkingPlaneDlg
|
||||
// purpose :
|
||||
@ -53,6 +55,8 @@ private:
|
||||
void Init();
|
||||
void enterEvent(QEvent* e);
|
||||
|
||||
bool updateWPlane(const bool showPreview = true);
|
||||
|
||||
GEOM::GEOM_Object_var myFace;
|
||||
GEOM::GEOM_Object_var myVectX;
|
||||
GEOM::GEOM_Object_var myVectZ;
|
||||
@ -63,6 +67,8 @@ private:
|
||||
DlgRef_2Sel_QTD* Group2;
|
||||
DlgRef_3Check_QTD* Group3;
|
||||
|
||||
QCheckBox* myReverseCB;
|
||||
|
||||
gp_Ax3 myWPlane;
|
||||
|
||||
private slots:
|
||||
@ -75,6 +81,7 @@ private slots:
|
||||
void SetEditCurrentArgument();
|
||||
void SelectionIntoArgument();
|
||||
void LineEditReturnPressed();
|
||||
void onReverse();
|
||||
|
||||
void ActivateThisDialog();
|
||||
void DeactivateActiveDialog();
|
||||
|
127
src/DlgRef/DlgRef_3Sel1Check_QTD.cxx
Normal file
@ -0,0 +1,127 @@
|
||||
/****************************************************************************
|
||||
** Form implementation generated from reading ui file 'UIFiles/DlgRef_3Sel1Check_QTD.ui'
|
||||
**
|
||||
** Created: Wed Feb 21 10:49:18 2007
|
||||
** by: The User Interface Compiler ($Id$)
|
||||
**
|
||||
** WARNING! All changes made in this file will be lost!
|
||||
****************************************************************************/
|
||||
|
||||
#include "DlgRef_3Sel1Check_QTD.h"
|
||||
|
||||
#include <qvariant.h>
|
||||
#include <qpushbutton.h>
|
||||
#include <qgroupbox.h>
|
||||
#include <qlineedit.h>
|
||||
#include <qlabel.h>
|
||||
#include <qradiobutton.h>
|
||||
#include <qlayout.h>
|
||||
#include <qtooltip.h>
|
||||
#include <qwhatsthis.h>
|
||||
|
||||
/*
|
||||
* Constructs a DlgRef_3Sel1Check_QTD as a child of 'parent', with the
|
||||
* name 'name' and widget flags set to 'f'.
|
||||
*/
|
||||
DlgRef_3Sel1Check_QTD::DlgRef_3Sel1Check_QTD( QWidget* parent, const char* name, WFlags fl )
|
||||
: QWidget( parent, name, fl )
|
||||
{
|
||||
if ( !name )
|
||||
setName( "DlgRef_3Sel1Check_QTD" );
|
||||
setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)5, 0, 0, sizePolicy().hasHeightForWidth() ) );
|
||||
DlgRef_3Sel1Check_QTDLayout = new QGridLayout( this, 1, 1, 0, 6, "DlgRef_3Sel1Check_QTDLayout");
|
||||
|
||||
GroupBox1 = new QGroupBox( this, "GroupBox1" );
|
||||
GroupBox1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)5, 0, 0, GroupBox1->sizePolicy().hasHeightForWidth() ) );
|
||||
GroupBox1->setColumnLayout(0, Qt::Vertical );
|
||||
GroupBox1->layout()->setSpacing( 6 );
|
||||
GroupBox1->layout()->setMargin( 11 );
|
||||
GroupBox1Layout = new QGridLayout( GroupBox1->layout() );
|
||||
GroupBox1Layout->setAlignment( Qt::AlignTop );
|
||||
|
||||
PushButton1 = new QPushButton( GroupBox1, "PushButton1" );
|
||||
PushButton1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton1->sizePolicy().hasHeightForWidth() ) );
|
||||
|
||||
GroupBox1Layout->addWidget( PushButton1, 0, 1 );
|
||||
|
||||
LineEdit1 = new QLineEdit( GroupBox1, "LineEdit1" );
|
||||
|
||||
GroupBox1Layout->addWidget( LineEdit1, 0, 2 );
|
||||
|
||||
TextLabel1 = new QLabel( GroupBox1, "TextLabel1" );
|
||||
TextLabel1->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel1->sizePolicy().hasHeightForWidth() ) );
|
||||
|
||||
GroupBox1Layout->addWidget( TextLabel1, 0, 0 );
|
||||
|
||||
PushButton2 = new QPushButton( GroupBox1, "PushButton2" );
|
||||
PushButton2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton2->sizePolicy().hasHeightForWidth() ) );
|
||||
|
||||
GroupBox1Layout->addWidget( PushButton2, 1, 1 );
|
||||
|
||||
LineEdit2 = new QLineEdit( GroupBox1, "LineEdit2" );
|
||||
|
||||
GroupBox1Layout->addWidget( LineEdit2, 1, 2 );
|
||||
|
||||
TextLabel2 = new QLabel( GroupBox1, "TextLabel2" );
|
||||
TextLabel2->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel2->sizePolicy().hasHeightForWidth() ) );
|
||||
|
||||
GroupBox1Layout->addWidget( TextLabel2, 1, 0 );
|
||||
|
||||
PushButton3 = new QPushButton( GroupBox1, "PushButton3" );
|
||||
PushButton3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, PushButton3->sizePolicy().hasHeightForWidth() ) );
|
||||
|
||||
GroupBox1Layout->addWidget( PushButton3, 2, 1 );
|
||||
|
||||
LineEdit3 = new QLineEdit( GroupBox1, "LineEdit3" );
|
||||
|
||||
GroupBox1Layout->addWidget( LineEdit3, 2, 2 );
|
||||
|
||||
TextLabel3 = new QLabel( GroupBox1, "TextLabel3" );
|
||||
TextLabel3->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, 0, 0, TextLabel3->sizePolicy().hasHeightForWidth() ) );
|
||||
|
||||
GroupBox1Layout->addWidget( TextLabel3, 2, 0 );
|
||||
|
||||
radioButton4 = new QRadioButton( GroupBox1, "radioButton4" );
|
||||
|
||||
GroupBox1Layout->addMultiCellWidget( radioButton4, 3, 3, 0, 1 );
|
||||
Spacer3 = new QSpacerItem( 16, 721, QSizePolicy::Minimum, QSizePolicy::Expanding );
|
||||
GroupBox1Layout->addItem( Spacer3, 4, 2 );
|
||||
|
||||
DlgRef_3Sel1Check_QTDLayout->addWidget( GroupBox1, 0, 0 );
|
||||
languageChange();
|
||||
resize( QSize(490, 878).expandedTo(minimumSizeHint()) );
|
||||
clearWState( WState_Polished );
|
||||
|
||||
// tab order
|
||||
setTabOrder( PushButton1, LineEdit1 );
|
||||
setTabOrder( LineEdit1, PushButton2 );
|
||||
setTabOrder( PushButton2, LineEdit2 );
|
||||
setTabOrder( LineEdit2, PushButton3 );
|
||||
setTabOrder( PushButton3, LineEdit3 );
|
||||
}
|
||||
|
||||
/*
|
||||
* Destroys the object and frees any allocated resources
|
||||
*/
|
||||
DlgRef_3Sel1Check_QTD::~DlgRef_3Sel1Check_QTD()
|
||||
{
|
||||
// no need to delete child widgets, Qt does it all for us
|
||||
}
|
||||
|
||||
/*
|
||||
* Sets the strings of the subwidgets using the current
|
||||
* language.
|
||||
*/
|
||||
void DlgRef_3Sel1Check_QTD::languageChange()
|
||||
{
|
||||
setCaption( tr( "DlgRef_3Sel3Spin1Check_QTD" ) );
|
||||
GroupBox1->setTitle( QString::null );
|
||||
PushButton1->setText( QString::null );
|
||||
TextLabel1->setText( tr( "TL1" ) );
|
||||
PushButton2->setText( QString::null );
|
||||
TextLabel2->setText( tr( "TL2" ) );
|
||||
PushButton3->setText( QString::null );
|
||||
TextLabel3->setText( tr( "TL3" ) );
|
||||
radioButton4->setText( tr( "radioButton4" ) );
|
||||
}
|
||||
|
56
src/DlgRef/DlgRef_3Sel1Check_QTD.h
Normal file
@ -0,0 +1,56 @@
|
||||
/****************************************************************************
|
||||
** Form interface generated from reading ui file 'UIFiles/DlgRef_3Sel1Check_QTD.ui'
|
||||
**
|
||||
** Created: Wed Feb 21 10:48:39 2007
|
||||
** by: The User Interface Compiler ($Id$)
|
||||
**
|
||||
** WARNING! All changes made in this file will be lost!
|
||||
****************************************************************************/
|
||||
|
||||
#ifndef DLGREF_3SEL1CHECK_QTD_H
|
||||
#define DLGREF_3SEL1CHECK_QTD_H
|
||||
|
||||
#include <qvariant.h>
|
||||
#include <qwidget.h>
|
||||
|
||||
class QVBoxLayout;
|
||||
class QHBoxLayout;
|
||||
class QGridLayout;
|
||||
class QSpacerItem;
|
||||
class QGroupBox;
|
||||
class QPushButton;
|
||||
class QLineEdit;
|
||||
class QLabel;
|
||||
class QRadioButton;
|
||||
|
||||
class DlgRef_3Sel1Check_QTD : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
DlgRef_3Sel1Check_QTD( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
|
||||
~DlgRef_3Sel1Check_QTD();
|
||||
|
||||
QGroupBox* GroupBox1;
|
||||
QPushButton* PushButton1;
|
||||
QLineEdit* LineEdit1;
|
||||
QLabel* TextLabel1;
|
||||
QPushButton* PushButton2;
|
||||
QLineEdit* LineEdit2;
|
||||
QLabel* TextLabel2;
|
||||
QPushButton* PushButton3;
|
||||
QLineEdit* LineEdit3;
|
||||
QLabel* TextLabel3;
|
||||
QRadioButton* radioButton4;
|
||||
|
||||
protected:
|
||||
QGridLayout* DlgRef_3Sel1Check_QTDLayout;
|
||||
QGridLayout* GroupBox1Layout;
|
||||
QSpacerItem* Spacer3;
|
||||
|
||||
protected slots:
|
||||
virtual void languageChange();
|
||||
|
||||
};
|
||||
|
||||
#endif // DLGREF_3SEL1CHECK_QTD_H
|
@ -86,7 +86,8 @@ dist_libDlgRef_la_SOURCES = \
|
||||
DlgRef_3Sel1Spin.cxx \
|
||||
DlgRef_3Check_QTD.cxx \
|
||||
DlgRef_6Sel_QTD.cxx \
|
||||
DlgRef_4Sel1Spin2Check.cxx
|
||||
DlgRef_4Sel1Spin2Check.cxx \
|
||||
DlgRef_3Sel1Check_QTD.cxx
|
||||
|
||||
MOC_FILES = \
|
||||
DlgRef_Skeleton_QTD_moc.cxx \
|
||||
@ -142,7 +143,8 @@ MOC_FILES = \
|
||||
DlgRef_1Sel_Ext_moc.cxx \
|
||||
DlgRef_3Check_QTD_moc.cxx \
|
||||
DlgRef_6Sel_QTD_moc.cxx \
|
||||
DlgRef_4Sel1Spin2Check_moc.cxx
|
||||
DlgRef_4Sel1Spin2Check_moc.cxx \
|
||||
DlgRef_3Sel1Check_QTD_moc.cxx
|
||||
|
||||
# header files
|
||||
salomeinclude_HEADERS = \
|
||||
@ -200,6 +202,7 @@ salomeinclude_HEADERS = \
|
||||
DlgRef_3Check_QTD.h \
|
||||
DlgRef_6Sel_QTD.h \
|
||||
DlgRef_4Sel1Spin2Check.h \
|
||||
DlgRef_3Sel1Check_QTD.h \
|
||||
GEOM_DlgRef.hxx
|
||||
|
||||
nodist_libDlgRef_la_SOURCES= \
|
||||
|
210
src/DlgRef/UIFiles/DlgRef_3Sel1Check_QTD.ui
Normal file
@ -0,0 +1,210 @@
|
||||
<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
|
||||
<class>DlgRef_3Sel1Check_QTD</class>
|
||||
<widget class="QWidget">
|
||||
<property name="name">
|
||||
<cstring>DlgRef_3Sel1Check_QTD</cstring>
|
||||
</property>
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>490</width>
|
||||
<height>878</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy>
|
||||
<hsizetype>5</hsizetype>
|
||||
<vsizetype>5</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="caption">
|
||||
<string>DlgRef_3Sel3Spin1Check_QTD</string>
|
||||
</property>
|
||||
<grid>
|
||||
<property name="name">
|
||||
<cstring>unnamed</cstring>
|
||||
</property>
|
||||
<property name="margin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<widget class="QGroupBox" row="0" column="0">
|
||||
<property name="name">
|
||||
<cstring>GroupBox1</cstring>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy>
|
||||
<hsizetype>5</hsizetype>
|
||||
<vsizetype>5</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string></string>
|
||||
</property>
|
||||
<grid>
|
||||
<property name="name">
|
||||
<cstring>unnamed</cstring>
|
||||
</property>
|
||||
<property name="margin">
|
||||
<number>11</number>
|
||||
</property>
|
||||
<property name="spacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<widget class="QPushButton" row="0" column="1">
|
||||
<property name="name">
|
||||
<cstring>PushButton1</cstring>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy>
|
||||
<hsizetype>0</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string></string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" row="0" column="2">
|
||||
<property name="name">
|
||||
<cstring>LineEdit1</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" row="0" column="0">
|
||||
<property name="name">
|
||||
<cstring>TextLabel1</cstring>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy>
|
||||
<hsizetype>0</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TL1</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" row="1" column="1">
|
||||
<property name="name">
|
||||
<cstring>PushButton2</cstring>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy>
|
||||
<hsizetype>0</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string></string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" row="1" column="2">
|
||||
<property name="name">
|
||||
<cstring>LineEdit2</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" row="1" column="0">
|
||||
<property name="name">
|
||||
<cstring>TextLabel2</cstring>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy>
|
||||
<hsizetype>0</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TL2</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QPushButton" row="2" column="1">
|
||||
<property name="name">
|
||||
<cstring>PushButton3</cstring>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy>
|
||||
<hsizetype>0</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string></string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLineEdit" row="2" column="2">
|
||||
<property name="name">
|
||||
<cstring>LineEdit3</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QLabel" row="2" column="0">
|
||||
<property name="name">
|
||||
<cstring>TextLabel3</cstring>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy>
|
||||
<hsizetype>0</hsizetype>
|
||||
<vsizetype>0</vsizetype>
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TL3</string>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QRadioButton" row="3" column="0" rowspan="1" colspan="2">
|
||||
<property name="name">
|
||||
<cstring>radioButton4</cstring>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>radioButton4</string>
|
||||
</property>
|
||||
</widget>
|
||||
<spacer row="4" column="2">
|
||||
<property name="name">
|
||||
<cstring>Spacer3</cstring>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeType">
|
||||
<enum>Expanding</enum>
|
||||
</property>
|
||||
<property name="sizeHint">
|
||||
<size>
|
||||
<width>16</width>
|
||||
<height>721</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</grid>
|
||||
</widget>
|
||||
</grid>
|
||||
</widget>
|
||||
<tabstops>
|
||||
<tabstop>PushButton1</tabstop>
|
||||
<tabstop>LineEdit1</tabstop>
|
||||
<tabstop>PushButton2</tabstop>
|
||||
<tabstop>LineEdit2</tabstop>
|
||||
<tabstop>PushButton3</tabstop>
|
||||
<tabstop>LineEdit3</tabstop>
|
||||
</tabstops>
|
||||
<layoutdefaults spacing="6" margin="11"/>
|
||||
</UI>
|
@ -64,12 +64,14 @@ using namespace std;
|
||||
// TRUE to construct a modal dialog.
|
||||
//=================================================================================
|
||||
EntityGUI_SketcherDlg::EntityGUI_SketcherDlg(GeometryGUI* GUI, QWidget* parent,
|
||||
const char* name, bool modal, WFlags fl)
|
||||
const char* name, bool modal, WFlags fl,
|
||||
const double lineWidth)
|
||||
:EntityGUI_Skeleton_QTD(parent, name, modal, WStyle_Customize |
|
||||
WStyle_NormalBorder | WStyle_Title | WStyle_SysMenu | WDestructiveClose),
|
||||
myIsAllAdded( false ),
|
||||
GEOMBase_Helper( dynamic_cast<SUIT_Desktop*>( parent ) ),
|
||||
myGeometryGUI( GUI )
|
||||
myGeometryGUI( GUI ),
|
||||
myLineWidth( lineWidth )
|
||||
{
|
||||
myGeometryGUI->SetActiveDialogBox(this);
|
||||
|
||||
@ -344,7 +346,7 @@ void EntityGUI_SketcherDlg::Init()
|
||||
resize( 0, 0 );
|
||||
TypeClicked(0);
|
||||
|
||||
GEOMBase_Helper::displayPreview();
|
||||
GEOMBase_Helper::displayPreview(false, true, true, myLineWidth);
|
||||
}
|
||||
|
||||
|
||||
@ -443,7 +445,7 @@ void EntityGUI_SketcherDlg::PointClicked(int constructorId)
|
||||
Group2Spin->show();
|
||||
Group2Spin->buttonApply->setFocus();
|
||||
|
||||
GEOMBase_Helper::displayPreview();
|
||||
GEOMBase_Helper::displayPreview(false, true, true, myLineWidth);
|
||||
}
|
||||
else if ( constructorId == 0 )
|
||||
{ // DXDY
|
||||
@ -459,7 +461,7 @@ void EntityGUI_SketcherDlg::PointClicked(int constructorId)
|
||||
Group2Spin->show();
|
||||
Group2Spin->buttonApply->setFocus();
|
||||
|
||||
GEOMBase_Helper::displayPreview();
|
||||
GEOMBase_Helper::displayPreview(false, true, true, myLineWidth);
|
||||
}
|
||||
else if ( constructorId == 2 )
|
||||
{ // Selection
|
||||
@ -693,7 +695,7 @@ void EntityGUI_SketcherDlg::Dir2Clicked(int constructorId)
|
||||
}
|
||||
}
|
||||
|
||||
GEOMBase_Helper::displayPreview();
|
||||
GEOMBase_Helper::displayPreview(false, true, true, myLineWidth);
|
||||
}
|
||||
|
||||
|
||||
@ -764,7 +766,7 @@ bool EntityGUI_SketcherDlg::ClickOnApply()
|
||||
setEnabledUndo(true);
|
||||
setEnabledRedo(false);
|
||||
|
||||
GEOMBase_Helper::displayPreview();
|
||||
GEOMBase_Helper::displayPreview(false, true, true, myLineWidth);
|
||||
|
||||
// Set focus to SpinBox_DX
|
||||
if (sender() == Group1Spin->buttonApply) {
|
||||
@ -833,7 +835,7 @@ void EntityGUI_SketcherDlg::ClickOnUndo()
|
||||
|
||||
setEnabledRedo(true);
|
||||
|
||||
GEOMBase_Helper::displayPreview();
|
||||
GEOMBase_Helper::displayPreview(false, true, true, myLineWidth);
|
||||
}
|
||||
|
||||
//=================================================================================
|
||||
@ -854,7 +856,7 @@ void EntityGUI_SketcherDlg::ClickOnRedo()
|
||||
if(myUndoCommand.count() == 1)
|
||||
setEnabledRedo(false);
|
||||
|
||||
GEOMBase_Helper::displayPreview();
|
||||
GEOMBase_Helper::displayPreview(false, true, true, myLineWidth);
|
||||
}
|
||||
|
||||
//=================================================================================
|
||||
@ -918,7 +920,7 @@ void EntityGUI_SketcherDlg::SelectionIntoArgument()
|
||||
}
|
||||
}
|
||||
|
||||
GEOMBase_Helper::displayPreview();
|
||||
GEOMBase_Helper::displayPreview(false, true, true, myLineWidth);
|
||||
}
|
||||
|
||||
|
||||
@ -992,7 +994,7 @@ void EntityGUI_SketcherDlg::ActivateThisDialog()
|
||||
myEditCurrentArgument = Group1Sel->LineEdit1;
|
||||
myEditCurrentArgument->setFocus();
|
||||
|
||||
GEOMBase_Helper::displayPreview();
|
||||
GEOMBase_Helper::displayPreview(false, true, true, myLineWidth);
|
||||
}
|
||||
|
||||
|
||||
@ -1187,7 +1189,7 @@ void EntityGUI_SketcherDlg::ValueChangedInSpinBox(double newValue)
|
||||
}
|
||||
}
|
||||
|
||||
GEOMBase_Helper::displayPreview();
|
||||
GEOMBase_Helper::displayPreview(false, true, true, myLineWidth);
|
||||
}
|
||||
|
||||
|
||||
@ -1450,7 +1452,7 @@ void EntityGUI_SketcherDlg::displayPreview( GEOM::GEOM_Object_ptr object,
|
||||
getDisplayer()->SetColor( Quantity_NOC_RED );
|
||||
|
||||
// set width of displayed shape
|
||||
getDisplayer()->SetWidth( lineWidth );
|
||||
getDisplayer()->SetWidth( (lineWidth == -1)?myLineWidth:lineWidth );
|
||||
|
||||
// Disable activation of selection
|
||||
getDisplayer()->SetToActivate( activate );
|
||||
|
@ -65,7 +65,8 @@ class GEOM_ENTITYGUI_EXPORT EntityGUI_SketcherDlg : public EntityGUI_Skeleton_QT
|
||||
|
||||
public:
|
||||
EntityGUI_SketcherDlg(GeometryGUI* GUI, QWidget* parent = 0,
|
||||
const char* name = 0, bool modal = FALSE, WFlags fl = 0);
|
||||
const char* name = 0, bool modal = FALSE, WFlags fl = 0,
|
||||
const double lineWidth = 2.);
|
||||
~EntityGUI_SketcherDlg();
|
||||
|
||||
bool eventFilter (QObject* object, QEvent* event);
|
||||
@ -127,6 +128,7 @@ private :
|
||||
DIR_TAN_LENGTH, DIR_TAN_X, DIR_TAN_Y,
|
||||
DIR_DXDY_LENGTH, DIR_DXDY_X, DIR_DXDY_Y};
|
||||
|
||||
double myLineWidth;
|
||||
virtual void displayPreview ( GEOM::GEOM_Object_ptr obj,
|
||||
const bool append = false,
|
||||
const bool activate = false,
|
||||
|
@ -546,7 +546,7 @@ bool EntityGUI_SubShapeDlg::isValid( QString& msg )
|
||||
bool EntityGUI_SubShapeDlg::execute( ObjectList& objects )
|
||||
{
|
||||
GEOM::ListOfGO_var aList = GEOM::GEOM_IShapesOperations::_narrow(
|
||||
getOperation() )->MakeExplode( myObject, shapeType(), false );
|
||||
getOperation() )->MakeExplode( myObject, shapeType(), true );
|
||||
|
||||
if ( !aList->length() )
|
||||
return false;
|
||||
|
@ -61,6 +61,55 @@ is
|
||||
ST_INOUT
|
||||
end State;
|
||||
--
|
||||
enumeration KindOfShape is
|
||||
KS_UNKNOWN,
|
||||
KS_SPHERE,
|
||||
KS_CYLINDER,
|
||||
KS_BOX,
|
||||
KS_TORUS,
|
||||
KS_CONE,
|
||||
KS_ELLIPSE,
|
||||
KS_PLANE,
|
||||
KS_CIRCLE,
|
||||
KS_LINE,
|
||||
KS_DEGENERATED
|
||||
end KindOfShape;
|
||||
--
|
||||
enumeration KindOfName is
|
||||
KN_UNKNOWN,
|
||||
KN_SPHERE,
|
||||
KN_CYLINDER,
|
||||
KN_TORUS,
|
||||
KN_CONE,
|
||||
KN_ELLIPSE,
|
||||
KN_CIRCLE,
|
||||
KN_PLANE,
|
||||
KN_LINE,
|
||||
KN_BOX,
|
||||
KN_SEGMENT,
|
||||
KN_ARCCIRCLE,
|
||||
KN_POLYGON,
|
||||
KN_POLYHEDRON,
|
||||
KN_DISKCIRCLE,
|
||||
KN_DISKELLIPSE,
|
||||
KN_RECTANGLE,
|
||||
KN_TRIANGLE,
|
||||
KN_QUADRANGLE,
|
||||
KN_ARCELLIPSE
|
||||
end KindOfName;
|
||||
--
|
||||
enumeration KindOfBounds is
|
||||
KB_UNKNOWN,
|
||||
KB_TRIMMED,
|
||||
KB_INFINITE
|
||||
end KindOfBounds;
|
||||
--
|
||||
enumeration KindOfClosed is
|
||||
KC_UNKNOWN,
|
||||
KC_CLOSED,
|
||||
KC_NOTCLOSED
|
||||
end KindOfClosed;
|
||||
--
|
||||
deferred class HAlgo;
|
||||
deferred class Clsf;
|
||||
class ClsfSurf;
|
||||
@ -73,8 +122,12 @@ is
|
||||
deferred class Algo;
|
||||
deferred class ShapeAlgo;
|
||||
--
|
||||
class ShapeInfo;
|
||||
class ShapeInfoFiller;
|
||||
--
|
||||
-- gluer
|
||||
class Gluer;
|
||||
class Gluer1;
|
||||
class GlueAnalyser;
|
||||
class CoupleOfShapes;
|
||||
class PassKey;
|
||||
@ -94,7 +147,16 @@ is
|
||||
--
|
||||
class FinderShapeOn1;
|
||||
class StateCollector;
|
||||
|
||||
-- adds
|
||||
deferred class HAlgo;
|
||||
deferred class Clsf;
|
||||
class ClsfSurf;
|
||||
class ClsfBox;
|
||||
--modified by NIZNHY-PKV Mon Jan 29 10:27:44 2007f
|
||||
class ClsfSolid;
|
||||
--modified by NIZNHY-PKV Mon Jan 29 10:27:46 2007t
|
||||
class FinderShapeOn2;
|
||||
class PassKeyShapeMapHasher;
|
||||
--
|
||||
-- Builder/Splitter
|
||||
deferred class BuilderShape;
|
||||
@ -168,4 +230,30 @@ is
|
||||
ListOfShape from TopTools,
|
||||
PassKeyShapeMapHasher from GEOMAlgo);
|
||||
|
||||
class IndexedDataMapOfShapeShapeInfo
|
||||
instantiates IndexedDataMap from TCollection (Shape from TopoDS,
|
||||
ShapeInfo from GEOMAlgo,
|
||||
ShapeMapHasher from TopTools);
|
||||
|
||||
class DataMapOfPassKeyShapeShape
|
||||
instantiates DataMap from TCollection (PassKeyShape from GEOMAlgo,
|
||||
Shape from TopoDS,
|
||||
PassKeyShapeMapHasher from GEOMAlgo);
|
||||
|
||||
class DataMapOfShapeShapeSet instantiates
|
||||
DataMap from TCollection(Shape from TopoDS,
|
||||
ShapeSet from GEOMAlgo,
|
||||
ShapeMapHasher from TopTools);
|
||||
|
||||
class DataMapOfShapeReal instantiates
|
||||
DataMap from TCollection(Shape from TopoDS,
|
||||
Real from Standard,
|
||||
ShapeMapHasher from TopTools);
|
||||
|
||||
|
||||
class DataMapOfRealListOfShape instantiates
|
||||
DataMap from TCollection(Real from Standard,
|
||||
ListOfShape from TopTools,
|
||||
MapRealHasher from TColStd);
|
||||
|
||||
end GEOMAlgo;
|
||||
|
@ -99,6 +99,13 @@ is
|
||||
--
|
||||
-- protected methods
|
||||
--
|
||||
--
|
||||
PerformInternal(me:out;
|
||||
theDSF: DSFiller from NMTTools)
|
||||
---Purpose: Performs calculations using prepared DSFiller
|
||||
-- object theDSF
|
||||
is protected;
|
||||
--
|
||||
PrepareHistory (me:out)
|
||||
---Purpose: Prepare information for history support
|
||||
is redefined protected;
|
||||
@ -241,7 +248,7 @@ fields
|
||||
mySameDomainShapes: IndexedDataMapOfShapeShape from TopTools is protected;
|
||||
-- solids
|
||||
myDraftSolids : IndexedDataMapOfShapeShape from TopTools is protected;
|
||||
|
||||
myEntryPoint : Integer from Standard is protected;
|
||||
--
|
||||
end Builder;
|
||||
|
||||
|
@ -52,6 +52,7 @@
|
||||
{
|
||||
myNbTypes=9;
|
||||
myDSFiller=NULL;
|
||||
myEntryPoint=0; // Entry point through PerformWithFiller ()
|
||||
}
|
||||
//=======================================================================
|
||||
//function : ~
|
||||
@ -59,6 +60,12 @@
|
||||
//=======================================================================
|
||||
GEOMAlgo_Builder::~GEOMAlgo_Builder()
|
||||
{
|
||||
if (myEntryPoint==1) {
|
||||
if (myDSFiller) {
|
||||
delete myDSFiller;
|
||||
myDSFiller=NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
//=======================================================================
|
||||
//function : AddCompound
|
||||
@ -253,18 +260,33 @@
|
||||
aBB.Add(aCS, aS);
|
||||
}
|
||||
//
|
||||
if (myDSFiller) {
|
||||
delete myDSFiller;
|
||||
myDSFiller=NULL;
|
||||
}
|
||||
NMTTools_DSFiller* pDSF=new NMTTools_DSFiller;
|
||||
//
|
||||
pDSF->SetCompositeShape(aCS);
|
||||
pDSF->Perform();
|
||||
//
|
||||
PerformWithFiller(*pDSF);
|
||||
myEntryPoint=1;
|
||||
PerformInternal(*pDSF);
|
||||
}
|
||||
//=======================================================================
|
||||
//function : PerformWithFiller
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_Builder::PerformWithFiller(const NMTTools_DSFiller& theDSF)
|
||||
{
|
||||
myEntryPoint=0;
|
||||
//
|
||||
PerformInternal(theDSF);
|
||||
}
|
||||
//=======================================================================
|
||||
//function : PerformInternal
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_Builder::PerformInternal(const NMTTools_DSFiller& theDSF)
|
||||
{
|
||||
myErrorStatus=0;
|
||||
//
|
||||
|
@ -137,6 +137,10 @@ protected:
|
||||
// Methods PROTECTED
|
||||
//
|
||||
|
||||
//! Performs calculations using prepared DSFiller <br>
|
||||
//! object theDSF <br>
|
||||
Standard_EXPORT void PerformInternal(const NMTTools_DSFiller& theDSF) ;
|
||||
|
||||
//! Prepare information for history support <br>
|
||||
Standard_EXPORT virtual void PrepareHistory() ;
|
||||
|
||||
@ -220,6 +224,7 @@ TopTools_IndexedDataMapOfShapeListOfShape myInParts;
|
||||
BRepAlgo_Image mySplitFaces;
|
||||
TopTools_IndexedDataMapOfShapeShape mySameDomainShapes;
|
||||
TopTools_IndexedDataMapOfShapeShape myDraftSolids;
|
||||
Standard_Integer myEntryPoint;
|
||||
|
||||
|
||||
private:
|
||||
|
@ -578,7 +578,77 @@ void MakeInternalWires(const TopTools_MapOfShape& theME,
|
||||
theWires.Append(aW);
|
||||
}
|
||||
}
|
||||
//=======================================================================
|
||||
//function : IsInside
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Standard_Boolean IsInside(const TopoDS_Shape& theHole,
|
||||
const TopoDS_Shape& theF2,
|
||||
IntTools_PContext& theContext)
|
||||
{
|
||||
Standard_Boolean bRet;
|
||||
Standard_Real aT, aU, aV;
|
||||
|
||||
TopAbs_State aState;
|
||||
TopExp_Explorer aExp;
|
||||
TopTools_IndexedMapOfShape aME2;
|
||||
gp_Pnt2d aP2D;
|
||||
//
|
||||
bRet=Standard_False;
|
||||
aState=TopAbs_UNKNOWN;
|
||||
const TopoDS_Face& aF2=TopoDS::Face(theF2);
|
||||
//
|
||||
TopExp::MapShapes(aF2, TopAbs_EDGE, aME2);
|
||||
//
|
||||
aExp.Init(theHole, TopAbs_EDGE);
|
||||
if (aExp.More()) {
|
||||
const TopoDS_Edge& aE = TopoDS::Edge(aExp.Current());
|
||||
if (aME2.Contains(aE)) {
|
||||
return bRet;
|
||||
}
|
||||
//
|
||||
aT=BOPTools_Tools2D::IntermediatePoint(aE);
|
||||
BOPTools_Tools2D::PointOnSurface(aE, aF2, aT, aU, aV);
|
||||
aP2D.SetCoord(aU, aV);
|
||||
//
|
||||
IntTools_FClass2d& aClsf=theContext->FClass2d(aF2);
|
||||
aState=aClsf.Perform(aP2D);
|
||||
bRet=(aState==TopAbs_IN);
|
||||
}
|
||||
//
|
||||
return bRet;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : IsGrowthWire
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Standard_Boolean IsGrowthWire(const TopoDS_Shape& theWire,
|
||||
const TopTools_IndexedMapOfShape& theMHE)
|
||||
{
|
||||
Standard_Boolean bRet;
|
||||
TopoDS_Iterator aIt;
|
||||
//
|
||||
bRet=Standard_False;
|
||||
if (theMHE.Extent()) {
|
||||
aIt.Initialize(theWire);
|
||||
for(; aIt.More(); aIt.Next()) {
|
||||
const TopoDS_Shape& aE=aIt.Value();
|
||||
if (theMHE.Contains(aE)) {
|
||||
return !bRet;
|
||||
}
|
||||
}
|
||||
}
|
||||
return bRet;
|
||||
}
|
||||
|
||||
//BRepTools::Write(aFF, "ff");
|
||||
//
|
||||
// ErrorStatus :
|
||||
// 11 - Null Context
|
||||
// 12 - Null face generix
|
||||
|
||||
/*
|
||||
//=======================================================================
|
||||
//function : IsInside
|
||||
//purpose :
|
||||
@ -606,71 +676,4 @@ Standard_Boolean IsInside(const TopoDS_Shape& theHole,
|
||||
}
|
||||
return (aState==TopAbs_IN);
|
||||
}
|
||||
//=======================================================================
|
||||
//function : IsGrowthWire
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Standard_Boolean IsGrowthWire(const TopoDS_Shape& theWire,
|
||||
const TopTools_IndexedMapOfShape& theMHE)
|
||||
{
|
||||
Standard_Boolean bRet;
|
||||
TopoDS_Iterator aIt;
|
||||
//
|
||||
bRet=Standard_False;
|
||||
if (theMHE.Extent()) {
|
||||
aIt.Initialize(theWire);
|
||||
for(; aIt.More(); aIt.Next()) {
|
||||
const TopoDS_Shape& aE=aIt.Value();
|
||||
if (theMHE.Contains(aE)) {
|
||||
return !bRet;
|
||||
}
|
||||
}
|
||||
}
|
||||
return bRet;
|
||||
}
|
||||
//modified by NIZNHY-PKV Mon Sep 18 13:18:27 2006f
|
||||
/*
|
||||
static
|
||||
Standard_Boolean IsHole(const TopoDS_Shape& ,
|
||||
const TopoDS_Face& ,
|
||||
IntTools_PContext& );
|
||||
*/
|
||||
//modified by NIZNHY-PKV Mon Sep 18 13:18:34 2006t
|
||||
//modified by NIZNHY-PKV Mon Sep 18 13:18:13 2006f
|
||||
/*
|
||||
//=======================================================================
|
||||
//function : IsHole
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Standard_Boolean IsHole(const TopoDS_Shape& theS2,
|
||||
const TopoDS_Face& theFace,
|
||||
IntTools_PContext& theContext)
|
||||
{
|
||||
Standard_Boolean bIsHole;
|
||||
Standard_Real aTol;
|
||||
Handle(Geom_Surface) aS;
|
||||
TopLoc_Location aLoc;
|
||||
TopoDS_Face aF;
|
||||
BRep_Builder aBB;
|
||||
//
|
||||
aTol=BRep_Tool::Tolerance(theFace);
|
||||
aS=BRep_Tool::Surface(theFace, aLoc);
|
||||
aBB.MakeFace(aF, aS, aLoc, aTol);
|
||||
aBB.Add (aF, theS2);
|
||||
//
|
||||
IntTools_FClass2d& aClsf=theContext->FClass2d(aF);
|
||||
//
|
||||
bIsHole=aClsf.IsHole();
|
||||
//
|
||||
return bIsHole;
|
||||
//
|
||||
}
|
||||
*/
|
||||
//modified by NIZNHY-PKV Mon Sep 18 13:18:06 2006t
|
||||
|
||||
//BRepTools::Write(aFF, "ff");
|
||||
//
|
||||
// ErrorStatus :
|
||||
// 11 - Null Context
|
||||
// 12 - Null face generix
|
||||
|
||||
|
59
src/GEOMAlgo/GEOMAlgo_ClsfSolid.cdl
Executable file
@ -0,0 +1,59 @@
|
||||
-- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||
-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or
|
||||
-- modify it under the terms of the GNU Lesser General Public
|
||||
-- License as published by the Free Software Foundation; either
|
||||
-- version 2.1 of the License.
|
||||
--
|
||||
-- This library is distributed in the hope that it will be useful
|
||||
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
-- Lesser General Public License for more details.
|
||||
--
|
||||
-- You should have received a copy of the GNU Lesser General Public
|
||||
-- License along with this library; if not, write to the Free Software
|
||||
-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
--
|
||||
-- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||
--
|
||||
-- File: GEOMAlgo_ClsfSolid.cdl
|
||||
-- Created: Mon Jan 29 10:28:07 2007
|
||||
-- Author: Peter KURNEV
|
||||
-- <pkv@irinox>
|
||||
|
||||
|
||||
class ClsfSolid from GEOMAlgo
|
||||
inherits Clsf from GEOMAlgo
|
||||
|
||||
---Purpose:
|
||||
|
||||
uses
|
||||
Shape from TopoDS
|
||||
|
||||
--raises
|
||||
|
||||
is
|
||||
Create
|
||||
returns mutable ClsfSolid from GEOMAlgo;
|
||||
---C++: alias "Standard_EXPORT virtual ~GEOMAlgo_ClsfSolid();"
|
||||
|
||||
SetShape(me:mutable;
|
||||
aS:Shape from TopoDS);
|
||||
|
||||
Shape(me)
|
||||
returns Shape from TopoDS;
|
||||
---C++: return const &
|
||||
|
||||
Perform(me:mutable)
|
||||
is redefined;
|
||||
|
||||
CheckData(me:mutable)
|
||||
is redefined;
|
||||
|
||||
|
||||
fields
|
||||
myShape: Shape from TopoDS is protected;
|
||||
myPClsf: Address from Standard is protected;
|
||||
|
||||
end ClsfSolid;
|
139
src/GEOMAlgo/GEOMAlgo_ClsfSolid.cxx
Executable file
@ -0,0 +1,139 @@
|
||||
// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
//
|
||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||
//
|
||||
// File: GEOMAlgo_ClsfSolid.cxx
|
||||
// Created: Mon Jan 29 10:35:46 2007
|
||||
// Author: Peter KURNEV
|
||||
// <pkv@irinox>
|
||||
|
||||
|
||||
#include <GEOMAlgo_ClsfSolid.ixx>
|
||||
|
||||
#include <TopAbs_ShapeEnum.hxx>
|
||||
#include <TopoDS.hxx>
|
||||
#include <TopoDS_Solid.hxx>
|
||||
#include <BRep_Builder.hxx>
|
||||
#include <BRepClass3d_SolidClassifier.hxx>
|
||||
|
||||
//=======================================================================
|
||||
//function :
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
GEOMAlgo_ClsfSolid::GEOMAlgo_ClsfSolid()
|
||||
:
|
||||
GEOMAlgo_Clsf()
|
||||
{
|
||||
myPClsf=NULL;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : ~
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
GEOMAlgo_ClsfSolid::~GEOMAlgo_ClsfSolid()
|
||||
{
|
||||
if (myPClsf) {
|
||||
BRepClass3d_SolidClassifier* pSC;
|
||||
//
|
||||
pSC=(BRepClass3d_SolidClassifier*)myPClsf;
|
||||
delete pSC;
|
||||
}
|
||||
}
|
||||
//=======================================================================
|
||||
//function : SetShape
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ClsfSolid::SetShape(const TopoDS_Shape& aS)
|
||||
{
|
||||
myShape=aS;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : Shape
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
const TopoDS_Shape& GEOMAlgo_ClsfSolid::Shape()const
|
||||
{
|
||||
return myShape;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : CheckData
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ClsfSolid::CheckData()
|
||||
{
|
||||
myErrorStatus=0;
|
||||
//
|
||||
BRepClass3d_SolidClassifier* pSC;
|
||||
TopAbs_ShapeEnum aType;
|
||||
BRep_Builder aBB;
|
||||
TopoDS_Solid aS;
|
||||
//
|
||||
if (myShape.IsNull()) {
|
||||
myErrorStatus=10; // mySolid=NULL
|
||||
return;
|
||||
}
|
||||
//
|
||||
aType=myShape.ShapeType();
|
||||
if (!(aType==TopAbs_SOLID || aType==TopAbs_SHELL)) {
|
||||
myErrorStatus=12;
|
||||
return;
|
||||
}
|
||||
//
|
||||
//===
|
||||
if (aType==TopAbs_SOLID) {
|
||||
aS=TopoDS::Solid(myShape);
|
||||
}
|
||||
else {
|
||||
aBB.MakeSolid(aS);
|
||||
aBB.Add(aS, myShape);
|
||||
}
|
||||
//
|
||||
if (myPClsf) {
|
||||
pSC=(BRepClass3d_SolidClassifier*)myPClsf;
|
||||
delete pSC;
|
||||
}
|
||||
//
|
||||
pSC=new BRepClass3d_SolidClassifier(aS);
|
||||
myPClsf=pSC;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : Perform
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ClsfSolid::Perform()
|
||||
{
|
||||
myErrorStatus=0;
|
||||
//
|
||||
if (!myPClsf) {
|
||||
myErrorStatus=11;
|
||||
return;
|
||||
}
|
||||
//
|
||||
BRepClass3d_SolidClassifier* pSC;
|
||||
//
|
||||
pSC=(BRepClass3d_SolidClassifier*)myPClsf;
|
||||
pSC->Perform(myPnt, myTolerance);
|
||||
myState=pSC->State();
|
||||
}
|
||||
//
|
||||
// myErrorStatus :
|
||||
//
|
||||
// 10 - mySolid=NULL
|
||||
// 11 - myPClsf=NULL
|
||||
// 12 - unallowed type of myShape
|
||||
|
106
src/GEOMAlgo/GEOMAlgo_ClsfSolid.hxx
Normal file
@ -0,0 +1,106 @@
|
||||
// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
//
|
||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||
|
||||
#ifndef _GEOMAlgo_ClsfSolid_HeaderFile
|
||||
#define _GEOMAlgo_ClsfSolid_HeaderFile
|
||||
|
||||
#ifndef _Standard_HeaderFile
|
||||
#include <Standard.hxx>
|
||||
#endif
|
||||
#ifndef _Handle_GEOMAlgo_ClsfSolid_HeaderFile
|
||||
#include <Handle_GEOMAlgo_ClsfSolid.hxx>
|
||||
#endif
|
||||
|
||||
#ifndef _TopoDS_Shape_HeaderFile
|
||||
#include <TopoDS_Shape.hxx>
|
||||
#endif
|
||||
#ifndef _Standard_Address_HeaderFile
|
||||
#include <Standard_Address.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_Clsf_HeaderFile
|
||||
#include <GEOMAlgo_Clsf.hxx>
|
||||
#endif
|
||||
class TopoDS_Shape;
|
||||
|
||||
|
||||
|
||||
class GEOMAlgo_ClsfSolid : public GEOMAlgo_Clsf {
|
||||
|
||||
public:
|
||||
// Methods PUBLIC
|
||||
//
|
||||
|
||||
|
||||
Standard_EXPORT GEOMAlgo_ClsfSolid();
|
||||
Standard_EXPORT virtual ~GEOMAlgo_ClsfSolid();
|
||||
|
||||
|
||||
Standard_EXPORT void SetShape(const TopoDS_Shape& aS) ;
|
||||
|
||||
|
||||
Standard_EXPORT const TopoDS_Shape& Shape() const;
|
||||
|
||||
|
||||
Standard_EXPORT virtual void Perform() ;
|
||||
|
||||
|
||||
Standard_EXPORT virtual void CheckData() ;
|
||||
//Standard_EXPORT ~GEOMAlgo_ClsfSolid();
|
||||
|
||||
|
||||
|
||||
|
||||
// Type management
|
||||
//
|
||||
Standard_EXPORT const Handle(Standard_Type)& DynamicType() const;
|
||||
//Standard_EXPORT Standard_Boolean IsKind(const Handle(Standard_Type)&) const;
|
||||
|
||||
protected:
|
||||
|
||||
// Methods PROTECTED
|
||||
//
|
||||
|
||||
|
||||
// Fields PROTECTED
|
||||
//
|
||||
TopoDS_Shape myShape;
|
||||
Standard_Address myPClsf;
|
||||
|
||||
|
||||
private:
|
||||
|
||||
// Methods PRIVATE
|
||||
//
|
||||
|
||||
|
||||
// Fields PRIVATE
|
||||
//
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// other Inline functions and methods (like "C++: function call" methods)
|
||||
//
|
||||
|
||||
|
||||
#endif
|
74
src/GEOMAlgo/GEOMAlgo_ClsfSolid.ixx
Normal file
@ -0,0 +1,74 @@
|
||||
// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
//
|
||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||
|
||||
#include <GEOMAlgo_ClsfSolid.jxx>
|
||||
|
||||
#ifndef _Standard_TypeMismatch_HeaderFile
|
||||
#include <Standard_TypeMismatch.hxx>
|
||||
#endif
|
||||
|
||||
//GEOMAlgo_ClsfSolid::~GEOMAlgo_ClsfSolid() {}
|
||||
|
||||
|
||||
|
||||
Standard_EXPORT Handle_Standard_Type& GEOMAlgo_ClsfSolid_Type_()
|
||||
{
|
||||
|
||||
static Handle_Standard_Type aType1 = STANDARD_TYPE(GEOMAlgo_Clsf);
|
||||
static Handle_Standard_Type aType2 = STANDARD_TYPE(GEOMAlgo_HAlgo);
|
||||
static Handle_Standard_Type aType3 = STANDARD_TYPE(MMgt_TShared);
|
||||
static Handle_Standard_Type aType4 = STANDARD_TYPE(Standard_Transient);
|
||||
|
||||
|
||||
static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,aType3,aType4,NULL};
|
||||
static Handle_Standard_Type _aType = new Standard_Type("GEOMAlgo_ClsfSolid",
|
||||
sizeof(GEOMAlgo_ClsfSolid),
|
||||
1,
|
||||
(Standard_Address)_Ancestors,
|
||||
(Standard_Address)NULL);
|
||||
|
||||
return _aType;
|
||||
}
|
||||
|
||||
|
||||
// DownCast method
|
||||
// allow safe downcasting
|
||||
//
|
||||
const Handle(GEOMAlgo_ClsfSolid) Handle(GEOMAlgo_ClsfSolid)::DownCast(const Handle(Standard_Transient)& AnObject)
|
||||
{
|
||||
Handle(GEOMAlgo_ClsfSolid) _anOtherObject;
|
||||
|
||||
if (!AnObject.IsNull()) {
|
||||
if (AnObject->IsKind(STANDARD_TYPE(GEOMAlgo_ClsfSolid))) {
|
||||
_anOtherObject = Handle(GEOMAlgo_ClsfSolid)((Handle(GEOMAlgo_ClsfSolid)&)AnObject);
|
||||
}
|
||||
}
|
||||
|
||||
return _anOtherObject ;
|
||||
}
|
||||
const Handle(Standard_Type)& GEOMAlgo_ClsfSolid::DynamicType() const
|
||||
{
|
||||
return STANDARD_TYPE(GEOMAlgo_ClsfSolid) ;
|
||||
}
|
||||
//Standard_Boolean GEOMAlgo_ClsfSolid::IsKind(const Handle(Standard_Type)& AType) const
|
||||
//{
|
||||
// return (STANDARD_TYPE(GEOMAlgo_ClsfSolid) == AType || GEOMAlgo_Clsf::IsKind(AType));
|
||||
//}
|
||||
//Handle_GEOMAlgo_ClsfSolid::~Handle_GEOMAlgo_ClsfSolid() {}
|
||||
|
25
src/GEOMAlgo/GEOMAlgo_ClsfSolid.jxx
Normal file
@ -0,0 +1,25 @@
|
||||
// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
//
|
||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||
|
||||
#ifndef _TopoDS_Shape_HeaderFile
|
||||
#include <TopoDS_Shape.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_ClsfSolid_HeaderFile
|
||||
#include <GEOMAlgo_ClsfSolid.hxx>
|
||||
#endif
|
@ -0,0 +1,113 @@
|
||||
// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
//
|
||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||
|
||||
#ifndef _GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape_HeaderFile
|
||||
#define _GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape_HeaderFile
|
||||
|
||||
#ifndef _TCollection_BasicMapIterator_HeaderFile
|
||||
#include <TCollection_BasicMapIterator.hxx>
|
||||
#endif
|
||||
#ifndef _Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape_HeaderFile
|
||||
#include <Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape.hxx>
|
||||
#endif
|
||||
class Standard_NoSuchObject;
|
||||
class GEOMAlgo_PassKeyShape;
|
||||
class TopoDS_Shape;
|
||||
class GEOMAlgo_PassKeyShapeMapHasher;
|
||||
class GEOMAlgo_DataMapOfPassKeyShapeShape;
|
||||
class GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape;
|
||||
|
||||
|
||||
#ifndef _Standard_HeaderFile
|
||||
#include <Standard.hxx>
|
||||
#endif
|
||||
#ifndef _Standard_Macro_HeaderFile
|
||||
#include <Standard_Macro.hxx>
|
||||
#endif
|
||||
|
||||
|
||||
class GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape : public TCollection_BasicMapIterator {
|
||||
|
||||
public:
|
||||
|
||||
void* operator new(size_t,void* anAddress)
|
||||
{
|
||||
return anAddress;
|
||||
}
|
||||
void* operator new(size_t size)
|
||||
{
|
||||
return Standard::Allocate(size);
|
||||
}
|
||||
void operator delete(void *anAddress)
|
||||
{
|
||||
if (anAddress) Standard::Free((Standard_Address&)anAddress);
|
||||
}
|
||||
// Methods PUBLIC
|
||||
//
|
||||
|
||||
|
||||
Standard_EXPORT GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape();
|
||||
|
||||
|
||||
Standard_EXPORT GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape(const GEOMAlgo_DataMapOfPassKeyShapeShape& aMap);
|
||||
|
||||
|
||||
Standard_EXPORT void Initialize(const GEOMAlgo_DataMapOfPassKeyShapeShape& aMap) ;
|
||||
|
||||
|
||||
Standard_EXPORT const GEOMAlgo_PassKeyShape& Key() const;
|
||||
|
||||
|
||||
Standard_EXPORT const TopoDS_Shape& Value() const;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
// Methods PROTECTED
|
||||
//
|
||||
|
||||
|
||||
// Fields PROTECTED
|
||||
//
|
||||
|
||||
|
||||
private:
|
||||
|
||||
// Methods PRIVATE
|
||||
//
|
||||
|
||||
|
||||
// Fields PRIVATE
|
||||
//
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// other Inline functions and methods (like "C++: function call" methods)
|
||||
//
|
||||
|
||||
|
||||
#endif
|
@ -0,0 +1,57 @@
|
||||
// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
//
|
||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||
|
||||
#include <GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape.hxx>
|
||||
|
||||
#ifndef _Standard_NoSuchObject_HeaderFile
|
||||
#include <Standard_NoSuchObject.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_PassKeyShape_HeaderFile
|
||||
#include <GEOMAlgo_PassKeyShape.hxx>
|
||||
#endif
|
||||
#ifndef _TopoDS_Shape_HeaderFile
|
||||
#include <TopoDS_Shape.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_PassKeyShapeMapHasher_HeaderFile
|
||||
#include <GEOMAlgo_PassKeyShapeMapHasher.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_DataMapOfPassKeyShapeShape_HeaderFile
|
||||
#include <GEOMAlgo_DataMapOfPassKeyShapeShape.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape_HeaderFile
|
||||
#include <GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape.hxx>
|
||||
#endif
|
||||
|
||||
|
||||
#define TheKey GEOMAlgo_PassKeyShape
|
||||
#define TheKey_hxx <GEOMAlgo_PassKeyShape.hxx>
|
||||
#define TheItem TopoDS_Shape
|
||||
#define TheItem_hxx <TopoDS_Shape.hxx>
|
||||
#define Hasher GEOMAlgo_PassKeyShapeMapHasher
|
||||
#define Hasher_hxx <GEOMAlgo_PassKeyShapeMapHasher.hxx>
|
||||
#define TCollection_DataMapNode GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape
|
||||
#define TCollection_DataMapNode_hxx <GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape.hxx>
|
||||
#define TCollection_DataMapIterator GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape
|
||||
#define TCollection_DataMapIterator_hxx <GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape.hxx>
|
||||
#define Handle_TCollection_DataMapNode Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape
|
||||
#define TCollection_DataMapNode_Type_() GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape_Type_()
|
||||
#define TCollection_DataMap GEOMAlgo_DataMapOfPassKeyShapeShape
|
||||
#define TCollection_DataMap_hxx <GEOMAlgo_DataMapOfPassKeyShapeShape.hxx>
|
||||
#include <TCollection_DataMapIterator.gxx>
|
||||
|
@ -0,0 +1,132 @@
|
||||
// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
//
|
||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||
|
||||
#ifndef _GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape_HeaderFile
|
||||
#define _GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape_HeaderFile
|
||||
|
||||
#ifndef _Standard_HeaderFile
|
||||
#include <Standard.hxx>
|
||||
#endif
|
||||
#ifndef _Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape_HeaderFile
|
||||
#include <Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape.hxx>
|
||||
#endif
|
||||
|
||||
#ifndef _GEOMAlgo_PassKeyShape_HeaderFile
|
||||
#include <GEOMAlgo_PassKeyShape.hxx>
|
||||
#endif
|
||||
#ifndef _TopoDS_Shape_HeaderFile
|
||||
#include <TopoDS_Shape.hxx>
|
||||
#endif
|
||||
#ifndef _TCollection_MapNode_HeaderFile
|
||||
#include <TCollection_MapNode.hxx>
|
||||
#endif
|
||||
#ifndef _TCollection_MapNodePtr_HeaderFile
|
||||
#include <TCollection_MapNodePtr.hxx>
|
||||
#endif
|
||||
class GEOMAlgo_PassKeyShape;
|
||||
class TopoDS_Shape;
|
||||
class GEOMAlgo_PassKeyShapeMapHasher;
|
||||
class GEOMAlgo_DataMapOfPassKeyShapeShape;
|
||||
class GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape;
|
||||
|
||||
|
||||
|
||||
class GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape : public TCollection_MapNode {
|
||||
|
||||
public:
|
||||
// Methods PUBLIC
|
||||
//
|
||||
|
||||
GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape(const GEOMAlgo_PassKeyShape& K,const TopoDS_Shape& I,const TCollection_MapNodePtr& n);
|
||||
|
||||
GEOMAlgo_PassKeyShape& Key() const;
|
||||
|
||||
TopoDS_Shape& Value() const;
|
||||
//Standard_EXPORT ~GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape();
|
||||
|
||||
|
||||
|
||||
|
||||
// Type management
|
||||
//
|
||||
Standard_EXPORT const Handle(Standard_Type)& DynamicType() const;
|
||||
//Standard_EXPORT Standard_Boolean IsKind(const Handle(Standard_Type)&) const;
|
||||
|
||||
protected:
|
||||
|
||||
// Methods PROTECTED
|
||||
//
|
||||
|
||||
|
||||
// Fields PROTECTED
|
||||
//
|
||||
|
||||
|
||||
private:
|
||||
|
||||
// Methods PRIVATE
|
||||
//
|
||||
|
||||
|
||||
// Fields PRIVATE
|
||||
//
|
||||
GEOMAlgo_PassKeyShape myKey;
|
||||
TopoDS_Shape myValue;
|
||||
|
||||
|
||||
};
|
||||
|
||||
#define TheKey GEOMAlgo_PassKeyShape
|
||||
#define TheKey_hxx <GEOMAlgo_PassKeyShape.hxx>
|
||||
#define TheItem TopoDS_Shape
|
||||
#define TheItem_hxx <TopoDS_Shape.hxx>
|
||||
#define Hasher GEOMAlgo_PassKeyShapeMapHasher
|
||||
#define Hasher_hxx <GEOMAlgo_PassKeyShapeMapHasher.hxx>
|
||||
#define TCollection_DataMapNode GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape
|
||||
#define TCollection_DataMapNode_hxx <GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape.hxx>
|
||||
#define TCollection_DataMapIterator GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape
|
||||
#define TCollection_DataMapIterator_hxx <GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape.hxx>
|
||||
#define Handle_TCollection_DataMapNode Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape
|
||||
#define TCollection_DataMapNode_Type_() GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape_Type_()
|
||||
#define TCollection_DataMap GEOMAlgo_DataMapOfPassKeyShapeShape
|
||||
#define TCollection_DataMap_hxx <GEOMAlgo_DataMapOfPassKeyShapeShape.hxx>
|
||||
|
||||
#include <TCollection_DataMapNode.lxx>
|
||||
|
||||
#undef TheKey
|
||||
#undef TheKey_hxx
|
||||
#undef TheItem
|
||||
#undef TheItem_hxx
|
||||
#undef Hasher
|
||||
#undef Hasher_hxx
|
||||
#undef TCollection_DataMapNode
|
||||
#undef TCollection_DataMapNode_hxx
|
||||
#undef TCollection_DataMapIterator
|
||||
#undef TCollection_DataMapIterator_hxx
|
||||
#undef Handle_TCollection_DataMapNode
|
||||
#undef TCollection_DataMapNode_Type_
|
||||
#undef TCollection_DataMap
|
||||
#undef TCollection_DataMap_hxx
|
||||
|
||||
|
||||
// other Inline functions and methods (like "C++: function call" methods)
|
||||
//
|
||||
|
||||
|
||||
#endif
|
@ -0,0 +1,103 @@
|
||||
// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
//
|
||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||
|
||||
#include <GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape.hxx>
|
||||
|
||||
#ifndef _Standard_TypeMismatch_HeaderFile
|
||||
#include <Standard_TypeMismatch.hxx>
|
||||
#endif
|
||||
|
||||
#ifndef _GEOMAlgo_PassKeyShape_HeaderFile
|
||||
#include <GEOMAlgo_PassKeyShape.hxx>
|
||||
#endif
|
||||
#ifndef _TopoDS_Shape_HeaderFile
|
||||
#include <TopoDS_Shape.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_PassKeyShapeMapHasher_HeaderFile
|
||||
#include <GEOMAlgo_PassKeyShapeMapHasher.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_DataMapOfPassKeyShapeShape_HeaderFile
|
||||
#include <GEOMAlgo_DataMapOfPassKeyShapeShape.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape_HeaderFile
|
||||
#include <GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape.hxx>
|
||||
#endif
|
||||
//GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape::~GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape() {}
|
||||
|
||||
|
||||
|
||||
Standard_EXPORT Handle_Standard_Type& GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape_Type_()
|
||||
{
|
||||
|
||||
static Handle_Standard_Type aType1 = STANDARD_TYPE(TCollection_MapNode);
|
||||
static Handle_Standard_Type aType2 = STANDARD_TYPE(MMgt_TShared);
|
||||
static Handle_Standard_Type aType3 = STANDARD_TYPE(Standard_Transient);
|
||||
|
||||
|
||||
static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,aType3,NULL};
|
||||
static Handle_Standard_Type _aType = new Standard_Type("GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape",
|
||||
sizeof(GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape),
|
||||
1,
|
||||
(Standard_Address)_Ancestors,
|
||||
(Standard_Address)NULL);
|
||||
|
||||
return _aType;
|
||||
}
|
||||
|
||||
|
||||
// DownCast method
|
||||
// allow safe downcasting
|
||||
//
|
||||
const Handle(GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape) Handle(GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape)::DownCast(const Handle(Standard_Transient)& AnObject)
|
||||
{
|
||||
Handle(GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape) _anOtherObject;
|
||||
|
||||
if (!AnObject.IsNull()) {
|
||||
if (AnObject->IsKind(STANDARD_TYPE(GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape))) {
|
||||
_anOtherObject = Handle(GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape)((Handle(GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape)&)AnObject);
|
||||
}
|
||||
}
|
||||
|
||||
return _anOtherObject ;
|
||||
}
|
||||
const Handle(Standard_Type)& GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape::DynamicType() const
|
||||
{
|
||||
return STANDARD_TYPE(GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape) ;
|
||||
}
|
||||
//Standard_Boolean GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape::IsKind(const Handle(Standard_Type)& AType) const
|
||||
//{
|
||||
// return (STANDARD_TYPE(GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape) == AType || TCollection_MapNode::IsKind(AType));
|
||||
//}
|
||||
//Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape::~Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape() {}
|
||||
#define TheKey GEOMAlgo_PassKeyShape
|
||||
#define TheKey_hxx <GEOMAlgo_PassKeyShape.hxx>
|
||||
#define TheItem TopoDS_Shape
|
||||
#define TheItem_hxx <TopoDS_Shape.hxx>
|
||||
#define Hasher GEOMAlgo_PassKeyShapeMapHasher
|
||||
#define Hasher_hxx <GEOMAlgo_PassKeyShapeMapHasher.hxx>
|
||||
#define TCollection_DataMapNode GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape
|
||||
#define TCollection_DataMapNode_hxx <GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape.hxx>
|
||||
#define TCollection_DataMapIterator GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape
|
||||
#define TCollection_DataMapIterator_hxx <GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape.hxx>
|
||||
#define Handle_TCollection_DataMapNode Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape
|
||||
#define TCollection_DataMapNode_Type_() GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape_Type_()
|
||||
#define TCollection_DataMap GEOMAlgo_DataMapOfPassKeyShapeShape
|
||||
#define TCollection_DataMap_hxx <GEOMAlgo_DataMapOfPassKeyShapeShape.hxx>
|
||||
#include <TCollection_DataMapNode.gxx>
|
||||
|
155
src/GEOMAlgo/GEOMAlgo_DataMapOfPassKeyShapeShape.hxx
Normal file
@ -0,0 +1,155 @@
|
||||
// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
//
|
||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||
|
||||
#ifndef _GEOMAlgo_DataMapOfPassKeyShapeShape_HeaderFile
|
||||
#define _GEOMAlgo_DataMapOfPassKeyShapeShape_HeaderFile
|
||||
|
||||
#ifndef _TCollection_BasicMap_HeaderFile
|
||||
#include <TCollection_BasicMap.hxx>
|
||||
#endif
|
||||
#ifndef _Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape_HeaderFile
|
||||
#include <Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape.hxx>
|
||||
#endif
|
||||
#ifndef _Standard_Integer_HeaderFile
|
||||
#include <Standard_Integer.hxx>
|
||||
#endif
|
||||
#ifndef _Standard_Boolean_HeaderFile
|
||||
#include <Standard_Boolean.hxx>
|
||||
#endif
|
||||
class Standard_DomainError;
|
||||
class Standard_NoSuchObject;
|
||||
class GEOMAlgo_PassKeyShape;
|
||||
class TopoDS_Shape;
|
||||
class GEOMAlgo_PassKeyShapeMapHasher;
|
||||
class GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape;
|
||||
class GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape;
|
||||
|
||||
|
||||
#ifndef _Standard_HeaderFile
|
||||
#include <Standard.hxx>
|
||||
#endif
|
||||
#ifndef _Standard_Macro_HeaderFile
|
||||
#include <Standard_Macro.hxx>
|
||||
#endif
|
||||
|
||||
|
||||
class GEOMAlgo_DataMapOfPassKeyShapeShape : public TCollection_BasicMap {
|
||||
|
||||
public:
|
||||
|
||||
void* operator new(size_t,void* anAddress)
|
||||
{
|
||||
return anAddress;
|
||||
}
|
||||
void* operator new(size_t size)
|
||||
{
|
||||
return Standard::Allocate(size);
|
||||
}
|
||||
void operator delete(void *anAddress)
|
||||
{
|
||||
if (anAddress) Standard::Free((Standard_Address&)anAddress);
|
||||
}
|
||||
// Methods PUBLIC
|
||||
//
|
||||
|
||||
|
||||
Standard_EXPORT GEOMAlgo_DataMapOfPassKeyShapeShape(const Standard_Integer NbBuckets = 1);
|
||||
|
||||
|
||||
Standard_EXPORT GEOMAlgo_DataMapOfPassKeyShapeShape& Assign(const GEOMAlgo_DataMapOfPassKeyShapeShape& Other) ;
|
||||
GEOMAlgo_DataMapOfPassKeyShapeShape& operator =(const GEOMAlgo_DataMapOfPassKeyShapeShape& Other)
|
||||
{
|
||||
return Assign(Other);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Standard_EXPORT void ReSize(const Standard_Integer NbBuckets) ;
|
||||
|
||||
|
||||
Standard_EXPORT void Clear() ;
|
||||
~GEOMAlgo_DataMapOfPassKeyShapeShape()
|
||||
{
|
||||
Clear();
|
||||
}
|
||||
|
||||
|
||||
|
||||
Standard_EXPORT Standard_Boolean Bind(const GEOMAlgo_PassKeyShape& K,const TopoDS_Shape& I) ;
|
||||
|
||||
|
||||
Standard_EXPORT Standard_Boolean IsBound(const GEOMAlgo_PassKeyShape& K) const;
|
||||
|
||||
|
||||
Standard_EXPORT Standard_Boolean UnBind(const GEOMAlgo_PassKeyShape& K) ;
|
||||
|
||||
|
||||
Standard_EXPORT const TopoDS_Shape& Find(const GEOMAlgo_PassKeyShape& K) const;
|
||||
const TopoDS_Shape& operator()(const GEOMAlgo_PassKeyShape& K) const
|
||||
{
|
||||
return Find(K);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Standard_EXPORT TopoDS_Shape& ChangeFind(const GEOMAlgo_PassKeyShape& K) ;
|
||||
TopoDS_Shape& operator()(const GEOMAlgo_PassKeyShape& K)
|
||||
{
|
||||
return ChangeFind(K);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
// Methods PROTECTED
|
||||
//
|
||||
|
||||
|
||||
// Fields PROTECTED
|
||||
//
|
||||
|
||||
|
||||
private:
|
||||
|
||||
// Methods PRIVATE
|
||||
//
|
||||
|
||||
|
||||
Standard_EXPORT GEOMAlgo_DataMapOfPassKeyShapeShape(const GEOMAlgo_DataMapOfPassKeyShapeShape& Other);
|
||||
|
||||
|
||||
// Fields PRIVATE
|
||||
//
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// other Inline functions and methods (like "C++: function call" methods)
|
||||
//
|
||||
|
||||
|
||||
#endif
|
60
src/GEOMAlgo/GEOMAlgo_DataMapOfPassKeyShapeShape_0.cxx
Normal file
@ -0,0 +1,60 @@
|
||||
// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
//
|
||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||
|
||||
#include <GEOMAlgo_DataMapOfPassKeyShapeShape.hxx>
|
||||
|
||||
#ifndef _Standard_DomainError_HeaderFile
|
||||
#include <Standard_DomainError.hxx>
|
||||
#endif
|
||||
#ifndef _Standard_NoSuchObject_HeaderFile
|
||||
#include <Standard_NoSuchObject.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_PassKeyShape_HeaderFile
|
||||
#include <GEOMAlgo_PassKeyShape.hxx>
|
||||
#endif
|
||||
#ifndef _TopoDS_Shape_HeaderFile
|
||||
#include <TopoDS_Shape.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_PassKeyShapeMapHasher_HeaderFile
|
||||
#include <GEOMAlgo_PassKeyShapeMapHasher.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape_HeaderFile
|
||||
#include <GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape_HeaderFile
|
||||
#include <GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape.hxx>
|
||||
#endif
|
||||
|
||||
|
||||
#define TheKey GEOMAlgo_PassKeyShape
|
||||
#define TheKey_hxx <GEOMAlgo_PassKeyShape.hxx>
|
||||
#define TheItem TopoDS_Shape
|
||||
#define TheItem_hxx <TopoDS_Shape.hxx>
|
||||
#define Hasher GEOMAlgo_PassKeyShapeMapHasher
|
||||
#define Hasher_hxx <GEOMAlgo_PassKeyShapeMapHasher.hxx>
|
||||
#define TCollection_DataMapNode GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape
|
||||
#define TCollection_DataMapNode_hxx <GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape.hxx>
|
||||
#define TCollection_DataMapIterator GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape
|
||||
#define TCollection_DataMapIterator_hxx <GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape.hxx>
|
||||
#define Handle_TCollection_DataMapNode Handle_GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape
|
||||
#define TCollection_DataMapNode_Type_() GEOMAlgo_DataMapNodeOfDataMapOfPassKeyShapeShape_Type_()
|
||||
#define TCollection_DataMap GEOMAlgo_DataMapOfPassKeyShapeShape
|
||||
#define TCollection_DataMap_hxx <GEOMAlgo_DataMapOfPassKeyShapeShape.hxx>
|
||||
#include <TCollection_DataMap.gxx>
|
||||
|
@ -25,6 +25,11 @@
|
||||
|
||||
#include <GEOMAlgo_Gluer.ixx>
|
||||
|
||||
#include <NMTDS_BoxBndTree.hxx>
|
||||
#include <NCollection_UBTreeFiller.hxx>
|
||||
|
||||
#include <TColStd_MapIteratorOfMapOfInteger.hxx>
|
||||
#include <TColStd_MapOfInteger.hxx>
|
||||
#include <TColStd_ListOfInteger.hxx>
|
||||
#include <TColStd_ListIteratorOfListOfInteger.hxx>
|
||||
|
||||
@ -77,8 +82,8 @@
|
||||
|
||||
#include <GEOMAlgo_IndexedDataMapOfIntegerShape.hxx>
|
||||
#include <GEOMAlgo_IndexedDataMapOfShapeBox.hxx>
|
||||
#include <GEOMAlgo_IndexedDataMapOfPassKeyShapeListOfShape.hxx> //qft
|
||||
#include <GEOMAlgo_PassKeyShape.hxx>//qft
|
||||
#include <GEOMAlgo_IndexedDataMapOfPassKeyShapeListOfShape.hxx>
|
||||
#include <GEOMAlgo_PassKeyShape.hxx>
|
||||
#include <GEOMAlgo_Tools.hxx>
|
||||
//
|
||||
|
||||
@ -179,11 +184,9 @@ void GEOMAlgo_Gluer::MakeVertices()
|
||||
{
|
||||
myErrorStatus=0;
|
||||
//
|
||||
Standard_Integer j, i, aNbV, aIndex, aNbVSD;
|
||||
Standard_Integer j, i, aNbV, aNbVSD;
|
||||
TColStd_ListIteratorOfListOfInteger aIt;
|
||||
Handle(Bnd_HArray1OfBox) aHAB;
|
||||
Bnd_BoundSortBox aBSB;
|
||||
TopoDS_Shape aSTmp, aVF;
|
||||
TopoDS_Shape aVF;
|
||||
TopoDS_Vertex aVnew;
|
||||
TopTools_IndexedMapOfShape aMV, aMVProcessed;
|
||||
TopTools_ListIteratorOfListOfShape aItS;
|
||||
@ -192,6 +195,11 @@ void GEOMAlgo_Gluer::MakeVertices()
|
||||
GEOMAlgo_IndexedDataMapOfIntegerShape aMIS;
|
||||
GEOMAlgo_IndexedDataMapOfShapeBox aMSB;
|
||||
//
|
||||
NMTDS_BoxBndTreeSelector aSelector;
|
||||
NMTDS_BoxBndTree aBBTree;
|
||||
NCollection_UBTreeFiller <Standard_Integer, Bnd_Box> aTreeFiller(aBBTree);
|
||||
//
|
||||
//
|
||||
TopExp::MapShapes(myShape, TopAbs_VERTEX, aMV);
|
||||
aNbV=aMV.Extent();
|
||||
if (!aNbV) {
|
||||
@ -199,21 +207,23 @@ void GEOMAlgo_Gluer::MakeVertices()
|
||||
return;
|
||||
}
|
||||
//
|
||||
aHAB=new Bnd_HArray1OfBox(1, aNbV);
|
||||
//
|
||||
for (i=1; i<=aNbV; ++i) {
|
||||
const TopoDS_Shape& aV=aMV(i);
|
||||
Bnd_Box aBox;
|
||||
//
|
||||
aBox.SetGap(myTol);
|
||||
BRepBndLib::Add(aV, aBox);
|
||||
aHAB->SetValue(i, aBox);
|
||||
//
|
||||
aTreeFiller.Add(i, aBox);
|
||||
//
|
||||
aMIS.Add(i, aV);
|
||||
aMSB.Add(aV, aBox);
|
||||
}
|
||||
//
|
||||
aBSB.Initialize(aHAB);
|
||||
aTreeFiller.Fill();
|
||||
//
|
||||
//------------------------------
|
||||
// Chains
|
||||
for (i=1; i<=aNbV; ++i) {
|
||||
const TopoDS_Shape& aV=aMV(i);
|
||||
//
|
||||
@ -221,32 +231,87 @@ void GEOMAlgo_Gluer::MakeVertices()
|
||||
continue;
|
||||
}
|
||||
//
|
||||
const Bnd_Box& aBoxV=aMSB.FindFromKey(aV);
|
||||
const TColStd_ListOfInteger& aLI=aBSB.Compare(aBoxV);
|
||||
aNbVSD=aLI.Extent();
|
||||
if (!aNbVSD) {
|
||||
myErrorStatus=3; // it must not be
|
||||
return;
|
||||
}
|
||||
//
|
||||
// Images
|
||||
//
|
||||
Standard_Integer aNbIP, aIP, aNbIP1, aIP1;
|
||||
TopTools_ListOfShape aLVSD;
|
||||
TColStd_MapOfInteger aMIP, aMIP1, aMIPC;
|
||||
TColStd_MapIteratorOfMapOfInteger aIt1;
|
||||
//
|
||||
aMIP.Add(i);
|
||||
while(1) {
|
||||
aNbIP=aMIP.Extent();
|
||||
aIt1.Initialize(aMIP);
|
||||
for(; aIt1.More(); aIt1.Next()) {
|
||||
aIP=aIt1.Key();
|
||||
if (aMIPC.Contains(aIP)) {
|
||||
continue;
|
||||
}
|
||||
//
|
||||
const TopoDS_Shape& aVP=aMIS.FindFromKey(aIP);
|
||||
const Bnd_Box& aBoxVP=aMSB.FindFromKey(aVP);
|
||||
//
|
||||
aSelector.Clear();
|
||||
aSelector.SetBox(aBoxVP);
|
||||
//
|
||||
aNbVSD=aBBTree.Select(aSelector);
|
||||
if (!aNbVSD) {
|
||||
continue; // it must not be
|
||||
}
|
||||
//
|
||||
const TColStd_ListOfInteger& aLI=aSelector.Indices();
|
||||
aIt.Initialize(aLI);
|
||||
for (j=0; aIt.More(); aIt.Next(), ++j) {
|
||||
aIndex=aIt.Value();
|
||||
const TopoDS_Shape& aVx=aMIS.FindFromKey(aIndex);
|
||||
if(!j) {
|
||||
aVF=aVx;
|
||||
for (; aIt.More(); aIt.Next()) {
|
||||
aIP1=aIt.Value();
|
||||
if (aMIP.Contains(aIP1)) {
|
||||
continue;
|
||||
}
|
||||
aLVSD.Append(aVx);
|
||||
aMVProcessed.Add(aVx);
|
||||
aMIP1.Add(aIP1);
|
||||
} //for (; aIt.More(); aIt.Next()) {
|
||||
}//for(; aIt1.More(); aIt1.Next()) {
|
||||
//
|
||||
aNbIP1=aMIP1.Extent();
|
||||
if (!aNbIP1) {
|
||||
break;
|
||||
}
|
||||
//
|
||||
myImages.Bind(aVF, aLVSD);
|
||||
aIt1.Initialize(aMIP);
|
||||
for(; aIt1.More(); aIt1.Next()) {
|
||||
aIP=aIt1.Key();
|
||||
aMIPC.Add(aIP);
|
||||
}
|
||||
//
|
||||
aMIP.Clear();
|
||||
aIt1.Initialize(aMIP1);
|
||||
for(; aIt1.More(); aIt1.Next()) {
|
||||
aIP=aIt1.Key();
|
||||
aMIP.Add(aIP);
|
||||
}
|
||||
aMIP1.Clear();
|
||||
}// while(1)
|
||||
//
|
||||
// Fill myImages
|
||||
aNbIP=aMIPC.Extent();
|
||||
//
|
||||
if (!aNbIP) {// no SD vertices founded
|
||||
aVF=aV;
|
||||
aLVSD.Append(aV);
|
||||
aMVProcessed.Add(aV);
|
||||
}
|
||||
else { // SD vertices founded [ aMIPC ]
|
||||
aIt1.Initialize(aMIPC);
|
||||
for(j=0; aIt1.More(); aIt1.Next(), ++j) {
|
||||
aIP=aIt1.Key();
|
||||
const TopoDS_Shape& aVP=aMIS.FindFromKey(aIP);
|
||||
if (!j) {
|
||||
aVF=aVP;
|
||||
}
|
||||
aLVSD.Append(aVP);
|
||||
aMVProcessed.Add(aVP);
|
||||
}
|
||||
}
|
||||
myImages.Bind(aVF, aLVSD);
|
||||
}// for (i=1; i<=aNbV; ++i) {
|
||||
//------------------------------
|
||||
//
|
||||
// Make new vertices
|
||||
aMV.Clear();
|
||||
aItIm.Initialize(myImages);
|
||||
@ -281,7 +346,6 @@ void GEOMAlgo_Gluer::MakeVertices()
|
||||
for (; aItIm.More(); aItIm.Next()) {
|
||||
const TopoDS_Shape& aV=aItIm.Key();
|
||||
const TopTools_ListOfShape& aLVSD=aItIm.Value();
|
||||
//
|
||||
aItS.Initialize(aLVSD);
|
||||
for (; aItS.More(); aItS.Next()) {
|
||||
const TopoDS_Shape& aVSD=aItS.Value();
|
||||
@ -424,8 +488,8 @@ void GEOMAlgo_Gluer::MakeShapes(const TopAbs_ShapeEnum aType)
|
||||
TopoDS_Shape aNewShape;
|
||||
TopTools_IndexedMapOfShape aMF;
|
||||
TopTools_ListIteratorOfListOfShape aItS;
|
||||
GEOMAlgo_PassKeyShape aPKF;//qft
|
||||
GEOMAlgo_IndexedDataMapOfPassKeyShapeListOfShape aMPKLF;//qft
|
||||
GEOMAlgo_PassKeyShape aPKF;
|
||||
GEOMAlgo_IndexedDataMapOfPassKeyShapeListOfShape aMPKLF;
|
||||
//
|
||||
TopExp::MapShapes(myShape, aType, aMF);
|
||||
//
|
||||
@ -433,7 +497,6 @@ void GEOMAlgo_Gluer::MakeShapes(const TopAbs_ShapeEnum aType)
|
||||
for (i=1; i<=aNbF; ++i) {
|
||||
const TopoDS_Shape& aS=aMF(i);
|
||||
//
|
||||
//aPKF.Clear();//qft
|
||||
if (aType==TopAbs_FACE) {
|
||||
const TopoDS_Face& aF=TopoDS::Face(aS);
|
||||
FacePassKey(aF, aPKF);
|
||||
@ -622,21 +685,12 @@ void GEOMAlgo_Gluer::InnerTolerance()
|
||||
void GEOMAlgo_Gluer::FacePassKey(const TopoDS_Face& aF,
|
||||
GEOMAlgo_PassKeyShape& aPK)
|
||||
{
|
||||
Standard_Integer i, aNbE;//, aNbMax;//qft
|
||||
Standard_Integer i, aNbE;
|
||||
TopTools_ListOfShape aLE;
|
||||
TopTools_IndexedMapOfShape aME;
|
||||
//
|
||||
TopExp::MapShapes(aF, TopAbs_EDGE, aME);
|
||||
aNbE=aME.Extent();
|
||||
//qf
|
||||
/*
|
||||
aNbMax=aPK.NbMax();
|
||||
if (!aNbE || aNbE>aNbMax) {
|
||||
myErrorStatus=101; // temprorary
|
||||
return;
|
||||
}
|
||||
*/
|
||||
//qt
|
||||
//
|
||||
for (i=1; i<=aNbE; ++i) {
|
||||
const TopoDS_Shape& aE=aME(i);
|
||||
@ -647,10 +701,7 @@ void GEOMAlgo_Gluer::FacePassKey(const TopoDS_Face& aF,
|
||||
const TopoDS_Shape& aER=myOrigins.Find(aE);
|
||||
aLE.Append(aER);
|
||||
}
|
||||
//qf
|
||||
//aPK.SetIds(aLE);
|
||||
aPK.SetShapes(aLE);
|
||||
//qt
|
||||
}
|
||||
//=======================================================================
|
||||
//function : EdgePassKey
|
||||
@ -669,10 +720,7 @@ void GEOMAlgo_Gluer::EdgePassKey(const TopoDS_Edge& aE,
|
||||
}
|
||||
const TopoDS_Shape& aVR1=myOrigins.Find(aV1);
|
||||
const TopoDS_Shape& aVR2=myOrigins.Find(aV2);
|
||||
//qf
|
||||
//aPK.SetIds(aVR1, aVR2);
|
||||
aPK.SetShapes(aVR1, aVR2);
|
||||
//qt
|
||||
}
|
||||
//=======================================================================
|
||||
//function : MakeVertex
|
||||
@ -774,7 +822,6 @@ void GEOMAlgo_Gluer::MakeEdge(const TopoDS_Edge& aE,
|
||||
BOPTools_Tools::MakeSplitEdge(aEx, aVR1, aT1, aVR2, aT2, aNewEdge);
|
||||
}
|
||||
}
|
||||
//
|
||||
//=======================================================================
|
||||
//function : MakeFace
|
||||
//purpose :
|
||||
@ -834,15 +881,13 @@ void GEOMAlgo_Gluer::MakeFace(const TopoDS_Face& aF,
|
||||
//
|
||||
aBB.Add(newWire, aER);
|
||||
}
|
||||
//modified by NIZNHY-PKV Mon Jan 31 17:26:36 2005f
|
||||
//
|
||||
// xf
|
||||
TopTools_ListOfShape aLW;
|
||||
//
|
||||
aLW.Append(aW);
|
||||
myImages.Bind(newWire, aLW);
|
||||
myOrigins.Bind(aW, newWire);
|
||||
//
|
||||
//modified by NIZNHY-PKV Mon Jan 31 17:26:41 2005 t
|
||||
// xt
|
||||
aBB.Add(newFace, newWire);
|
||||
}
|
||||
aNewFace=newFace;
|
||||
@ -963,10 +1008,10 @@ const TopTools_ListOfShape& GEOMAlgo_Gluer::Modified (const TopoDS_Shape& aS)
|
||||
aType=aS.ShapeType();
|
||||
if (aType==TopAbs_VERTEX ||
|
||||
aType==TopAbs_EDGE ||
|
||||
aType==TopAbs_WIRE || //modified by NIZNHY-PKV Mon Jan 31 17:18:36 2005ft
|
||||
aType==TopAbs_WIRE ||
|
||||
aType==TopAbs_FACE ||
|
||||
aType==TopAbs_SHELL || //modified by NIZNHY-PKV Mon Jan 31 17:18:36 2005ft
|
||||
aType==TopAbs_SOLID) { //modified by NIZNHY-PKV Mon Jan 31 17:18:36 2005ft
|
||||
aType==TopAbs_SHELL ||
|
||||
aType==TopAbs_SOLID) {
|
||||
if(myOrigins.IsBound(aS)) {
|
||||
const TopoDS_Shape& aSnew=myOrigins.Find(aS);
|
||||
if (!aSnew.IsSame(aS)) {
|
||||
|
71
src/GEOMAlgo/GEOMAlgo_Gluer1.cdl
Executable file
@ -0,0 +1,71 @@
|
||||
-- Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||
-- CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||
--
|
||||
-- This library is free software; you can redistribute it and/or
|
||||
-- modify it under the terms of the GNU Lesser General Public
|
||||
-- License as published by the Free Software Foundation; either
|
||||
-- version 2.1 of the License.
|
||||
--
|
||||
-- This library is distributed in the hope that it will be useful
|
||||
-- but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
-- Lesser General Public License for more details.
|
||||
--
|
||||
-- You should have received a copy of the GNU Lesser General Public
|
||||
-- License along with this library; if not, write to the Free Software
|
||||
-- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
--
|
||||
-- See http:--www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||
--
|
||||
-- File: GEOMAlgo_Gluer1.cdl
|
||||
-- Created: Wed Jan 24 11:37:31 2007
|
||||
-- Author: Peter KURNEV
|
||||
-- <pkv@irinox>
|
||||
|
||||
|
||||
class Gluer1 from GEOMAlgo
|
||||
inherits Gluer from GEOMAlgo
|
||||
|
||||
---Purpose:
|
||||
|
||||
uses
|
||||
ListOfCoupleOfShapes from GEOMAlgo,
|
||||
DataMapOfPassKeyShapeShape from GEOMAlgo
|
||||
|
||||
--raises
|
||||
|
||||
is
|
||||
Create
|
||||
returns Gluer1 from GEOMAlgo;
|
||||
---C++: alias "Standard_EXPORT virtual ~GEOMAlgo_Gluer1();"
|
||||
|
||||
SetFacesToUnglue(me:out;
|
||||
aLCS:ListOfCoupleOfShapes from GEOMAlgo);
|
||||
|
||||
FacesToUnglue(me)
|
||||
returns ListOfCoupleOfShapes from GEOMAlgo;
|
||||
---C++: return const&
|
||||
|
||||
GluedFaces(me)
|
||||
returns ListOfCoupleOfShapes from GEOMAlgo;
|
||||
---C++: return const&
|
||||
|
||||
RejectedFaces(me)
|
||||
returns ListOfCoupleOfShapes from GEOMAlgo;
|
||||
---C++: return const&
|
||||
|
||||
Perform(me:out)
|
||||
is redefined;
|
||||
|
||||
UnglueFaces(me:out);
|
||||
|
||||
FillGluedFaces(me:out)
|
||||
is protected;
|
||||
|
||||
fields
|
||||
myGluedFaces :ListOfCoupleOfShapes from GEOMAlgo is protected;
|
||||
myFacesToUnglue :ListOfCoupleOfShapes from GEOMAlgo is protected;
|
||||
myRejectedFaces :ListOfCoupleOfShapes from GEOMAlgo is protected;
|
||||
myMapGN :DataMapOfPassKeyShapeShape from GEOMAlgo is protected;
|
||||
|
||||
end Gluer1;
|
542
src/GEOMAlgo/GEOMAlgo_Gluer1.cxx
Executable file
@ -0,0 +1,542 @@
|
||||
// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
//
|
||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||
//
|
||||
// File: GEOMAlgo_Gluer1.cxx
|
||||
// Created: Wed Jan 24 11:52:27 2007
|
||||
// Author: Peter KURNEV
|
||||
// <pkv@irinox>
|
||||
|
||||
|
||||
#include <GEOMAlgo_Gluer1.ixx>
|
||||
|
||||
#include <Geom_Surface.hxx>
|
||||
|
||||
#include <TopLoc_Location.hxx>
|
||||
|
||||
#include <TopoDS.hxx>
|
||||
#include <TopoDS_Shape.hxx>
|
||||
#include <TopoDS_Face.hxx>
|
||||
#include <TopoDS_Iterator.hxx>
|
||||
|
||||
#include <BRep_Builder.hxx>
|
||||
#include <BRep_Tool.hxx>
|
||||
|
||||
#include <TopExp.hxx>
|
||||
|
||||
#include <TopTools_DataMapIteratorOfDataMapOfShapeShape.hxx>
|
||||
#include <TopTools_DataMapIteratorOfDataMapOfShapeListOfShape.hxx>
|
||||
#include <TopTools_ListOfShape.hxx>
|
||||
#include <TopTools_ListIteratorOfListOfShape.hxx>
|
||||
#include <TopTools_IndexedDataMapOfShapeListOfShape.hxx>
|
||||
#include <TopTools_MapOfShape.hxx>
|
||||
#include <TopTools_MapOfShape.hxx>
|
||||
#include <TopTools_DataMapOfShapeShape.hxx>
|
||||
|
||||
#include <GEOMAlgo_CoupleOfShapes.hxx>
|
||||
#include <GEOMAlgo_PassKeyShape.hxx>
|
||||
#include <GEOMAlgo_ListIteratorOfListOfCoupleOfShapes.hxx>
|
||||
#include <GEOMAlgo_DataMapOfPassKeyShapeShape.hxx>
|
||||
#include <GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape.hxx>
|
||||
|
||||
//=======================================================================
|
||||
//class : GEOMAlgo_CoupleOfInteger
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
class GEOMAlgo_CoupleOfInteger {
|
||||
//
|
||||
public:
|
||||
//
|
||||
GEOMAlgo_CoupleOfInteger() {
|
||||
myInt1=0;
|
||||
myInt2=0;
|
||||
}
|
||||
//
|
||||
~GEOMAlgo_CoupleOfInteger() {
|
||||
}
|
||||
//
|
||||
void SetValues(const Standard_Integer aI1,
|
||||
const Standard_Integer aI2) {
|
||||
myInt1=aI1;
|
||||
myInt2=aI2;
|
||||
}
|
||||
//
|
||||
void SetValue1(const Standard_Integer aI1) {
|
||||
myInt1=aI1;
|
||||
}
|
||||
//
|
||||
void SetValue2(const Standard_Integer aI1) {
|
||||
myInt1=aI1;
|
||||
}
|
||||
//
|
||||
void Values(Standard_Integer& aI1,
|
||||
Standard_Integer& aI2) const {
|
||||
aI1=myInt1;
|
||||
aI2=myInt2;
|
||||
}
|
||||
//
|
||||
Standard_Integer Value1()const {
|
||||
return myInt1;
|
||||
}
|
||||
//
|
||||
Standard_Integer Value2()const {
|
||||
return myInt2;
|
||||
}
|
||||
//
|
||||
protected:
|
||||
Standard_Integer myInt1;
|
||||
Standard_Integer myInt2;
|
||||
};
|
||||
//
|
||||
//=======================================================================
|
||||
//
|
||||
static
|
||||
void SortShell(const Standard_Integer ,
|
||||
GEOMAlgo_CoupleOfInteger* );
|
||||
static
|
||||
void RefineSolid(const TopoDS_Shape& ,
|
||||
const TopTools_DataMapOfShapeShape& ,
|
||||
TopTools_DataMapOfShapeShape& );
|
||||
static
|
||||
void MakeFaceToReplace(const TopoDS_Face& ,
|
||||
TopoDS_Face& );
|
||||
//
|
||||
//=======================================================================
|
||||
//function : GEOMAlgo_Gluer1
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
GEOMAlgo_Gluer1::GEOMAlgo_Gluer1()
|
||||
:
|
||||
GEOMAlgo_Gluer()
|
||||
{
|
||||
}
|
||||
//=======================================================================
|
||||
//function :
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
GEOMAlgo_Gluer1::~GEOMAlgo_Gluer1()
|
||||
{
|
||||
}
|
||||
//=======================================================================
|
||||
//function : SetFacesToUnglue
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_Gluer1::SetFacesToUnglue(const GEOMAlgo_ListOfCoupleOfShapes& aLCS)
|
||||
{
|
||||
myFacesToUnglue=aLCS;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : FacesToUnglue
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
const GEOMAlgo_ListOfCoupleOfShapes& GEOMAlgo_Gluer1::FacesToUnglue()const
|
||||
{
|
||||
return myFacesToUnglue;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : GluedFaces
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
const GEOMAlgo_ListOfCoupleOfShapes& GEOMAlgo_Gluer1::GluedFaces()const
|
||||
{
|
||||
return myGluedFaces;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : RejectedFaces
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
const GEOMAlgo_ListOfCoupleOfShapes& GEOMAlgo_Gluer1::RejectedFaces()const
|
||||
{
|
||||
return myRejectedFaces;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : Perform
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_Gluer1::Perform()
|
||||
{
|
||||
// 1.
|
||||
GEOMAlgo_Gluer::Perform();
|
||||
if (myErrorStatus) {
|
||||
return;
|
||||
}
|
||||
//
|
||||
FillGluedFaces();
|
||||
if (myErrorStatus) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
//=======================================================================
|
||||
//function : FillGluedFaces
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_Gluer1::FillGluedFaces()
|
||||
{
|
||||
myErrorStatus=0;
|
||||
//
|
||||
Standard_Integer aNbIm, aNbS, i;
|
||||
TopAbs_ShapeEnum aType;
|
||||
TopTools_ListIteratorOfListOfShape aItLS;
|
||||
TopTools_DataMapIteratorOfDataMapOfShapeListOfShape aItIm;
|
||||
GEOMAlgo_CoupleOfShapes aCS;
|
||||
GEOMAlgo_PassKeyShape aPKS;
|
||||
//
|
||||
myMapGN.Clear();
|
||||
myGluedFaces.Clear();
|
||||
//
|
||||
aNbIm=myImages.Extent();
|
||||
aItIm.Initialize(myImages);
|
||||
for (; aItIm.More(); aItIm.Next()) {
|
||||
const TopoDS_Shape& aSnew=aItIm.Key();
|
||||
aType=aSnew.ShapeType();
|
||||
if (aType!=TopAbs_FACE) {
|
||||
continue;
|
||||
}
|
||||
//
|
||||
const TopTools_ListOfShape& aLS=aItIm.Value();
|
||||
aNbS=aLS.Extent();
|
||||
if (aNbS!=2) {
|
||||
continue;
|
||||
}
|
||||
//
|
||||
TopoDS_Shape aSold[2];
|
||||
aItLS.Initialize(aLS);
|
||||
for (i=0; aItLS.More(); aItLS.Next(), ++i) {
|
||||
const TopoDS_Shape& aSi=aItLS.Value();
|
||||
aSold[i]=aItLS.Value();
|
||||
}
|
||||
//
|
||||
aCS.SetShapes(aSold[0], aSold[1]);
|
||||
myGluedFaces.Append(aCS);
|
||||
//
|
||||
aPKS.Clear();
|
||||
aPKS.SetShapes(aSold[0], aSold[1]);
|
||||
myMapGN.Bind(aPKS, aSnew);
|
||||
}
|
||||
}
|
||||
//=======================================================================
|
||||
//function : UnglueFaces
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_Gluer1::UnglueFaces()
|
||||
{
|
||||
if (myErrorStatus) {
|
||||
return;
|
||||
}
|
||||
//
|
||||
Standard_Boolean bFound;
|
||||
Standard_Integer i, aNbUN, aNbS, aNbF, iX;
|
||||
TopTools_IndexedDataMapOfShapeListOfShape aMFSR, aMFS, aMSF;
|
||||
TopTools_ListIteratorOfListOfShape aItLS, aItLS1;
|
||||
GEOMAlgo_PassKeyShape aPKS;
|
||||
GEOMAlgo_ListIteratorOfListOfCoupleOfShapes aItCS;
|
||||
GEOMAlgo_DataMapOfPassKeyShapeShape aMapUN;
|
||||
GEOMAlgo_DataMapIteratorOfDataMapOfPassKeyShapeShape aItUN;
|
||||
GEOMAlgo_CoupleOfInteger *pIx;
|
||||
//
|
||||
if (myResult.IsNull()) {
|
||||
myErrorStatus=200; // no result
|
||||
return;
|
||||
}
|
||||
myWarningStatus=0;
|
||||
myRejectedFaces.Clear();
|
||||
//
|
||||
// 0. Fill map [Face]/Solid for myResult: aMFSR
|
||||
TopExp::MapShapesAndAncestors(myResult, TopAbs_FACE, TopAbs_SOLID, aMFSR);
|
||||
//
|
||||
// 1. Fill Faces to process: aMapUN : [Fold1, Fold2] / Fnew
|
||||
aNbUN=myFacesToUnglue.Extent();
|
||||
if (!aNbUN) {
|
||||
// all faces that can be unglued will be unglued
|
||||
aMapUN=myMapGN;
|
||||
myFacesToUnglue=myGluedFaces;
|
||||
}
|
||||
else {
|
||||
aItCS.Initialize(myFacesToUnglue);
|
||||
for (; aItCS.More(); aItCS.Next()) {
|
||||
const GEOMAlgo_CoupleOfShapes& aCS=aItCS.Value();
|
||||
const TopoDS_Shape& aS1=aCS.Shape1();
|
||||
const TopoDS_Shape& aS2=aCS.Shape2();
|
||||
aPKS.Clear();
|
||||
aPKS.SetShapes(aS1, aS2);
|
||||
if (!myMapGN.IsBound(aPKS)) {
|
||||
//some faces, wanted to unglue, are not glued at all;
|
||||
myWarningStatus=2;
|
||||
myRejectedFaces.Append(aCS);
|
||||
continue;
|
||||
}
|
||||
//
|
||||
const TopoDS_Shape& aFN=myMapGN.Find(aPKS);
|
||||
aMapUN.Bind(aPKS, aFN);
|
||||
}
|
||||
}
|
||||
//
|
||||
// 2 Fill map FN/Solids for myResult: aMFS
|
||||
aNbUN=aMapUN.Extent();
|
||||
aItUN.Initialize(aMapUN);
|
||||
for (; aItUN.More(); aItUN.Next()) {
|
||||
const TopoDS_Shape& aFN=aItUN.Value();
|
||||
if (!aMFSR.Contains(aFN)) {
|
||||
myWarningStatus=3; // how can it be
|
||||
continue;
|
||||
}
|
||||
//
|
||||
const TopTools_ListOfShape& aLS=aMFSR.FindFromKey(aFN);
|
||||
aNbS=aLS.Extent();
|
||||
if (aNbS!=2) {
|
||||
// wrong result: More than 2 solids shared one face
|
||||
myWarningStatus=4;
|
||||
continue;
|
||||
}
|
||||
aMFS.Add(aFN, aLS);
|
||||
}
|
||||
//
|
||||
// 3 Fill map Solids/FN for myResult: aMSF
|
||||
aNbUN=aMFS.Extent();
|
||||
for (i=1; i<=aNbUN; ++i) {
|
||||
const TopoDS_Shape& aFN=aMFS.FindKey(i);
|
||||
const TopTools_ListOfShape& aLS=aMFS(i);
|
||||
aItLS.Initialize(aLS);
|
||||
for (; aItLS.More(); aItLS.Next()) {
|
||||
const TopoDS_Shape& aS=aItLS.Value();
|
||||
if (aMSF.Contains(aS)) {
|
||||
TopTools_ListOfShape& aLF=aMSF.ChangeFromKey(aS);
|
||||
aLF.Append(aFN);
|
||||
}
|
||||
else {
|
||||
TopTools_ListOfShape aLF;
|
||||
aLF.Append(aFN);
|
||||
aMSF.Add(aS, aLF);
|
||||
}
|
||||
}
|
||||
}
|
||||
//
|
||||
// 4 Sort indices of aMSF
|
||||
aNbS=aMSF.Extent();
|
||||
if (aNbS<2) {
|
||||
// wrong number of solids that have shared face
|
||||
myWarningStatus=5;
|
||||
}
|
||||
//
|
||||
pIx=new GEOMAlgo_CoupleOfInteger[aNbS];
|
||||
//
|
||||
for (i=1; i<=aNbS; ++i) {
|
||||
const TopTools_ListOfShape& aLF=aMSF(i);
|
||||
aNbF=aLF.Extent();
|
||||
pIx[i-1].SetValues(aNbF, i);
|
||||
}
|
||||
SortShell(aNbS, pIx);
|
||||
//
|
||||
// 5 Refine solids
|
||||
//
|
||||
TopTools_DataMapOfShapeShape aMFNFN2, aMFNFD;
|
||||
TopTools_DataMapIteratorOfDataMapOfShapeShape aItMSS;
|
||||
TopTools_MapOfShape aMFNP;
|
||||
TopTools_IndexedMapOfShape aMFD;
|
||||
//
|
||||
for (iX=aNbS-1; iX>=0; --iX) {
|
||||
i=pIx[iX].Value2();
|
||||
// solid from myResult aSN
|
||||
const TopoDS_Shape& aSN=aMSF.FindKey(i);
|
||||
//
|
||||
// candidates to be faces to replace for aSN
|
||||
const TopTools_ListOfShape& aLFN=aMSF(i);
|
||||
aNbF=aLFN.Extent();
|
||||
//
|
||||
// original solid for aSN -> aSD
|
||||
const TopTools_ListOfShape& aLSD=myImages.Find(aSN);
|
||||
const TopoDS_Shape& aSD=aLSD.First();
|
||||
//
|
||||
// faces of original solid -> aMFD
|
||||
aMFD.Clear();
|
||||
TopExp::MapShapes(aSD, TopAbs_FACE, aMFD);
|
||||
//
|
||||
// faces to replace for aSN [FN]/FD -> aMFNFD
|
||||
aMFNFD.Clear();
|
||||
aItLS.Initialize(aLFN);
|
||||
for (; aItLS.More(); aItLS.Next()) {
|
||||
const TopoDS_Shape& aFN=aItLS.Value();
|
||||
if (!aMFNP.Add(aFN)) {
|
||||
continue;
|
||||
}
|
||||
//
|
||||
// original face from original solid -> FD
|
||||
TopoDS_Shape aFD;
|
||||
//
|
||||
bFound=Standard_False;
|
||||
const TopTools_ListOfShape& aLFD=myImages.Find(aFN);
|
||||
aItLS1.Initialize(aLFD);
|
||||
for (; aItLS1.More(); aItLS1.Next()) {
|
||||
const TopoDS_Shape& aFDx=aItLS1.Value();
|
||||
if (aMFD.Contains(aFDx)) {
|
||||
aFD=aFDx;
|
||||
bFound=Standard_True;
|
||||
break;
|
||||
}
|
||||
}
|
||||
//if (!bFound) {...}
|
||||
aMFNFD.Bind(aFN, aFD);
|
||||
} // for (; aItLS.More(); aItLS.Next()) {
|
||||
//
|
||||
aNbF=aMFNFD.Extent();
|
||||
if (!aNbF) {
|
||||
// nothing to do here
|
||||
continue;
|
||||
}
|
||||
// update solid SN (and its shells)
|
||||
RefineSolid(aSN, aMFNFD, aMFNFN2);
|
||||
//
|
||||
// update myOrigins / myImages
|
||||
aItMSS.Initialize(aMFNFD);
|
||||
for (; aItMSS.More(); aItMSS.Next()) {
|
||||
const TopoDS_Shape& aFN=aItMSS.Key(); // face removed from aSN
|
||||
const TopoDS_Shape& aFD=aItMSS.Value(); // old face from aSD
|
||||
const TopoDS_Shape& aFN2=aMFNFN2.Find(aFN);// face added to aSN
|
||||
//
|
||||
// myOrigins
|
||||
myOrigins.ChangeFind(aFD)=aFN2;
|
||||
//
|
||||
// myImages
|
||||
TopTools_ListOfShape aLFDx;
|
||||
//
|
||||
TopTools_ListOfShape& aLFD=myImages.ChangeFind(aFN);
|
||||
aItLS.Initialize(aLFD);
|
||||
for (; aItLS.More(); aItLS.Next()) {
|
||||
const TopoDS_Shape& aFDx=aItLS.Value();
|
||||
if (!aFDx.IsSame(aFD)) {
|
||||
aLFDx.Append(aFDx);
|
||||
}
|
||||
}
|
||||
aLFD=aLFDx;
|
||||
//
|
||||
aLFDx.Clear();
|
||||
aLFDx.Append(aFD);
|
||||
myImages.Bind(aFN2, aLFDx);
|
||||
} // for (; aItMSS.More(); aItMSS.Next()) {
|
||||
} // for (iX=aNbS-1; iX>=0; --iX) {
|
||||
//
|
||||
delete [] pIx;
|
||||
}
|
||||
//=======================================================================
|
||||
// function: RefineSolid
|
||||
// purpose : replace faces (aMFN) of solid aSd by new ones
|
||||
//=======================================================================
|
||||
void RefineSolid(const TopoDS_Shape& aSd,
|
||||
const TopTools_DataMapOfShapeShape& aMFNFD,
|
||||
TopTools_DataMapOfShapeShape& aMFNFN2)
|
||||
{
|
||||
TopoDS_Shape *pSh;
|
||||
TopoDS_Face aF2;
|
||||
TopoDS_Iterator aItSd, aItSh;
|
||||
BRep_Builder aBB;
|
||||
TopTools_ListOfShape aLF;
|
||||
TopTools_ListIteratorOfListOfShape aItLF;
|
||||
//
|
||||
aItSd.Initialize(aSd);
|
||||
for (; aItSd.More(); aItSd.Next()) {
|
||||
const TopoDS_Shape& aSh=aItSd.Value();
|
||||
pSh=(TopoDS_Shape *)&aSh;
|
||||
pSh->Free(Standard_True);
|
||||
aLF.Clear();
|
||||
aItSh.Initialize(*pSh);
|
||||
for (; aItSh.More(); aItSh.Next()) {
|
||||
const TopoDS_Shape& aF=aItSh.Value();
|
||||
if (aMFNFD.IsBound(aF)) {
|
||||
aLF.Append(aF);
|
||||
}
|
||||
}
|
||||
//
|
||||
aItLF.Initialize(aLF);
|
||||
for (; aItLF.More(); aItLF.Next()) {
|
||||
const TopoDS_Face& aF=TopoDS::Face(aItLF.Value());
|
||||
//
|
||||
MakeFaceToReplace(aF, aF2);
|
||||
//
|
||||
aMFNFN2.Bind(aF, aF2);
|
||||
aBB.Remove(*pSh, aF);
|
||||
aBB.Add(*pSh, aF2);
|
||||
}
|
||||
pSh->Free(Standard_False);
|
||||
}
|
||||
}
|
||||
//=======================================================================
|
||||
//function : MakeFaceToReplace
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void MakeFaceToReplace(const TopoDS_Face& aF,
|
||||
TopoDS_Face& aFR)
|
||||
{
|
||||
Standard_Real aTol;
|
||||
Handle(Geom_Surface) aS;
|
||||
TopLoc_Location aLoc;
|
||||
TopoDS_Face aFFWD, aFnew;
|
||||
TopoDS_Iterator aItF;
|
||||
BRep_Builder aBB;
|
||||
//
|
||||
aFFWD=aF;
|
||||
aFFWD.Orientation(TopAbs_FORWARD);
|
||||
aS=BRep_Tool::Surface(aFFWD, aLoc);
|
||||
aTol=BRep_Tool::Tolerance(aFFWD);
|
||||
//
|
||||
aBB.MakeFace (aFnew, aS, aLoc, aTol);
|
||||
aItF.Initialize(aFFWD);
|
||||
for (; aItF.More(); aItF.Next()) {
|
||||
const TopoDS_Shape& aW=aItF.Value();
|
||||
aBB.Add(aFnew, aW);
|
||||
}
|
||||
aFnew.Orientation(aF.Orientation());
|
||||
aFR=aFnew;
|
||||
}
|
||||
//=======================================================================
|
||||
// function: SortShell
|
||||
// purpose :
|
||||
//=======================================================================
|
||||
void SortShell(const Standard_Integer n,
|
||||
GEOMAlgo_CoupleOfInteger* a)
|
||||
{
|
||||
Standard_Integer nd, i, j, l, d=1;
|
||||
GEOMAlgo_CoupleOfInteger x;
|
||||
//
|
||||
while(d<=n) {
|
||||
d*=2;
|
||||
}
|
||||
//
|
||||
while (d) {
|
||||
d=(d-1)/2;
|
||||
//
|
||||
nd=n-d;
|
||||
for (i=0; i<nd; ++i) {
|
||||
j=i;
|
||||
m30:;
|
||||
l=j+d;
|
||||
if (a[l].Value1() < a[j].Value1()) {
|
||||
x=a[j];
|
||||
a[j]=a[l];
|
||||
a[l]=x;
|
||||
j-=d;
|
||||
if (j > -1) {
|
||||
goto m30;
|
||||
}
|
||||
}//if (a[l] < a[j]){
|
||||
}//for (i=0; i<nd; ++i)
|
||||
}//while (1)
|
||||
}
|
||||
//
|
||||
// ErrorStatus
|
||||
//
|
||||
// 200; - result shape is Null
|
125
src/GEOMAlgo/GEOMAlgo_Gluer1.hxx
Normal file
@ -0,0 +1,125 @@
|
||||
// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
//
|
||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||
|
||||
#ifndef _GEOMAlgo_Gluer1_HeaderFile
|
||||
#define _GEOMAlgo_Gluer1_HeaderFile
|
||||
|
||||
#ifndef _GEOMAlgo_ListOfCoupleOfShapes_HeaderFile
|
||||
#include <GEOMAlgo_ListOfCoupleOfShapes.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_DataMapOfPassKeyShapeShape_HeaderFile
|
||||
#include <GEOMAlgo_DataMapOfPassKeyShapeShape.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_Gluer_HeaderFile
|
||||
#include <GEOMAlgo_Gluer.hxx>
|
||||
#endif
|
||||
class GEOMAlgo_ListOfCoupleOfShapes;
|
||||
|
||||
|
||||
#ifndef _Standard_HeaderFile
|
||||
#include <Standard.hxx>
|
||||
#endif
|
||||
#ifndef _Standard_Macro_HeaderFile
|
||||
#include <Standard_Macro.hxx>
|
||||
#endif
|
||||
|
||||
|
||||
class GEOMAlgo_Gluer1 : public GEOMAlgo_Gluer {
|
||||
|
||||
public:
|
||||
|
||||
void* operator new(size_t,void* anAddress)
|
||||
{
|
||||
return anAddress;
|
||||
}
|
||||
void* operator new(size_t size)
|
||||
{
|
||||
return Standard::Allocate(size);
|
||||
}
|
||||
void operator delete(void *anAddress)
|
||||
{
|
||||
if (anAddress) Standard::Free((Standard_Address&)anAddress);
|
||||
}
|
||||
// Methods PUBLIC
|
||||
//
|
||||
|
||||
|
||||
Standard_EXPORT GEOMAlgo_Gluer1();
|
||||
Standard_EXPORT virtual ~GEOMAlgo_Gluer1();
|
||||
|
||||
|
||||
Standard_EXPORT void SetFacesToUnglue(const GEOMAlgo_ListOfCoupleOfShapes& aLCS) ;
|
||||
|
||||
|
||||
Standard_EXPORT const GEOMAlgo_ListOfCoupleOfShapes& FacesToUnglue() const;
|
||||
|
||||
|
||||
Standard_EXPORT const GEOMAlgo_ListOfCoupleOfShapes& GluedFaces() const;
|
||||
|
||||
|
||||
Standard_EXPORT const GEOMAlgo_ListOfCoupleOfShapes& RejectedFaces() const;
|
||||
|
||||
|
||||
Standard_EXPORT virtual void Perform() ;
|
||||
|
||||
|
||||
Standard_EXPORT void UnglueFaces() ;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
// Methods PROTECTED
|
||||
//
|
||||
|
||||
|
||||
Standard_EXPORT void FillGluedFaces() ;
|
||||
|
||||
|
||||
// Fields PROTECTED
|
||||
//
|
||||
GEOMAlgo_ListOfCoupleOfShapes myGluedFaces;
|
||||
GEOMAlgo_ListOfCoupleOfShapes myFacesToUnglue;
|
||||
GEOMAlgo_ListOfCoupleOfShapes myRejectedFaces;
|
||||
GEOMAlgo_DataMapOfPassKeyShapeShape myMapGN;
|
||||
|
||||
|
||||
private:
|
||||
|
||||
// Methods PRIVATE
|
||||
//
|
||||
|
||||
|
||||
// Fields PRIVATE
|
||||
//
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// other Inline functions and methods (like "C++: function call" methods)
|
||||
//
|
||||
|
||||
|
||||
#endif
|
24
src/GEOMAlgo/GEOMAlgo_Gluer1.ixx
Normal file
@ -0,0 +1,24 @@
|
||||
// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
//
|
||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||
|
||||
#include <GEOMAlgo_Gluer1.jxx>
|
||||
|
||||
|
||||
|
||||
|
25
src/GEOMAlgo/GEOMAlgo_Gluer1.jxx
Normal file
@ -0,0 +1,25 @@
|
||||
// Copyright (C) 2005 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
|
||||
// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
|
||||
//
|
||||
// This library is free software; you can redistribute it and/or
|
||||
// modify it under the terms of the GNU Lesser General Public
|
||||
// License as published by the Free Software Foundation; either
|
||||
// version 2.1 of the License.
|
||||
//
|
||||
// This library is distributed in the hope that it will be useful
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
// Lesser General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU Lesser General Public
|
||||
// License along with this library; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
//
|
||||
// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
|
||||
|
||||
#ifndef _GEOMAlgo_ListOfCoupleOfShapes_HeaderFile
|
||||
#include <GEOMAlgo_ListOfCoupleOfShapes.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_Gluer1_HeaderFile
|
||||
#include <GEOMAlgo_Gluer1.hxx>
|
||||
#endif
|
@ -0,0 +1,139 @@
|
||||
// File generated by CPPExt (Transient)
|
||||
//
|
||||
//
|
||||
// Copyright (C) 1991 - 2000 by
|
||||
// Matra Datavision SA. All rights reserved.
|
||||
//
|
||||
// Copyright (C) 2001 - 2004 by
|
||||
// Open CASCADE SA. All rights reserved.
|
||||
//
|
||||
// This file is part of the Open CASCADE Technology software.
|
||||
//
|
||||
// This software may be distributed and/or modified under the terms and
|
||||
// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
|
||||
// and appearing in the file LICENSE included in the packaging of this file.
|
||||
//
|
||||
// This software is distributed on an "AS IS" basis, without warranty of any
|
||||
// kind, and Open CASCADE SA hereby disclaims all such warranties,
|
||||
// including without limitation, any warranties of merchantability, fitness
|
||||
// for a particular purpose or non-infringement. Please see the License for
|
||||
// the specific terms and conditions governing rights and limitations under the
|
||||
// License.
|
||||
|
||||
#ifndef _GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo_HeaderFile
|
||||
#define _GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo_HeaderFile
|
||||
|
||||
#ifndef _Standard_HeaderFile
|
||||
#include <Standard.hxx>
|
||||
#endif
|
||||
#ifndef _Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo_HeaderFile
|
||||
#include <Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo.hxx>
|
||||
#endif
|
||||
|
||||
#ifndef _TopoDS_Shape_HeaderFile
|
||||
#include <TopoDS_Shape.hxx>
|
||||
#endif
|
||||
#ifndef _Standard_Integer_HeaderFile
|
||||
#include <Standard_Integer.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_ShapeInfo_HeaderFile
|
||||
#include <GEOMAlgo_ShapeInfo.hxx>
|
||||
#endif
|
||||
#ifndef _TCollection_MapNodePtr_HeaderFile
|
||||
#include <TCollection_MapNodePtr.hxx>
|
||||
#endif
|
||||
#ifndef _TCollection_MapNode_HeaderFile
|
||||
#include <TCollection_MapNode.hxx>
|
||||
#endif
|
||||
class TopoDS_Shape;
|
||||
class GEOMAlgo_ShapeInfo;
|
||||
class TopTools_ShapeMapHasher;
|
||||
class GEOMAlgo_IndexedDataMapOfShapeShapeInfo;
|
||||
|
||||
|
||||
|
||||
class GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo : public TCollection_MapNode {
|
||||
|
||||
public:
|
||||
// Methods PUBLIC
|
||||
//
|
||||
|
||||
GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo(const TopoDS_Shape& K1,const Standard_Integer K2,const GEOMAlgo_ShapeInfo& I,const TCollection_MapNodePtr& n1,const TCollection_MapNodePtr& n2);
|
||||
|
||||
TopoDS_Shape& Key1() const;
|
||||
|
||||
Standard_Integer& Key2() const;
|
||||
|
||||
TCollection_MapNodePtr& Next2() const;
|
||||
|
||||
GEOMAlgo_ShapeInfo& Value() const;
|
||||
//Standard_EXPORT ~GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo();
|
||||
|
||||
|
||||
|
||||
|
||||
// Type management
|
||||
//
|
||||
Standard_EXPORT const Handle(Standard_Type)& DynamicType() const;
|
||||
//Standard_EXPORT Standard_Boolean IsKind(const Handle(Standard_Type)&) const;
|
||||
|
||||
protected:
|
||||
|
||||
// Methods PROTECTED
|
||||
//
|
||||
|
||||
|
||||
// Fields PROTECTED
|
||||
//
|
||||
|
||||
|
||||
private:
|
||||
|
||||
// Methods PRIVATE
|
||||
//
|
||||
|
||||
|
||||
// Fields PRIVATE
|
||||
//
|
||||
TopoDS_Shape myKey1;
|
||||
Standard_Integer myKey2;
|
||||
GEOMAlgo_ShapeInfo myValue;
|
||||
TCollection_MapNodePtr myNext2;
|
||||
|
||||
|
||||
};
|
||||
|
||||
#define TheKey TopoDS_Shape
|
||||
#define TheKey_hxx <TopoDS_Shape.hxx>
|
||||
#define TheItem GEOMAlgo_ShapeInfo
|
||||
#define TheItem_hxx <GEOMAlgo_ShapeInfo.hxx>
|
||||
#define Hasher TopTools_ShapeMapHasher
|
||||
#define Hasher_hxx <TopTools_ShapeMapHasher.hxx>
|
||||
#define TCollection_IndexedDataMapNode GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo
|
||||
#define TCollection_IndexedDataMapNode_hxx <GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo.hxx>
|
||||
#define Handle_TCollection_IndexedDataMapNode Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo
|
||||
#define TCollection_IndexedDataMapNode_Type_() GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo_Type_()
|
||||
#define TCollection_IndexedDataMap GEOMAlgo_IndexedDataMapOfShapeShapeInfo
|
||||
#define TCollection_IndexedDataMap_hxx <GEOMAlgo_IndexedDataMapOfShapeShapeInfo.hxx>
|
||||
|
||||
#include <TCollection_IndexedDataMapNode.lxx>
|
||||
|
||||
#undef TheKey
|
||||
#undef TheKey_hxx
|
||||
#undef TheItem
|
||||
#undef TheItem_hxx
|
||||
#undef Hasher
|
||||
#undef Hasher_hxx
|
||||
#undef TCollection_IndexedDataMapNode
|
||||
#undef TCollection_IndexedDataMapNode_hxx
|
||||
#undef Handle_TCollection_IndexedDataMapNode
|
||||
#undef TCollection_IndexedDataMapNode_Type_
|
||||
#undef TCollection_IndexedDataMap
|
||||
#undef TCollection_IndexedDataMap_hxx
|
||||
|
||||
|
||||
// other Inline functions and methods (like "C++: function call" methods)
|
||||
//
|
||||
|
||||
|
||||
#endif
|
@ -0,0 +1,100 @@
|
||||
// File generated by CPPExt (Transient)
|
||||
//
|
||||
// Copyright (C) 1991 - 2000 by
|
||||
// Matra Datavision SA. All rights reserved.
|
||||
//
|
||||
// Copyright (C) 2001 - 2004 by
|
||||
// Open CASCADE SA. All rights reserved.
|
||||
//
|
||||
// This file is part of the Open CASCADE Technology software.
|
||||
//
|
||||
// This software may be distributed and/or modified under the terms and
|
||||
// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
|
||||
// and appearing in the file LICENSE included in the packaging of this file.
|
||||
//
|
||||
// This software is distributed on an "AS IS" basis, without warranty of any
|
||||
// kind, and Open CASCADE SA hereby disclaims all such warranties,
|
||||
// including without limitation, any warranties of merchantability, fitness
|
||||
// for a particular purpose or non-infringement. Please see the License for
|
||||
// the specific terms and conditions governing rights and limitations under the
|
||||
// License.
|
||||
|
||||
#include <GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo.hxx>
|
||||
|
||||
#ifndef _Standard_TypeMismatch_HeaderFile
|
||||
#include <Standard_TypeMismatch.hxx>
|
||||
#endif
|
||||
|
||||
#ifndef _TopoDS_Shape_HeaderFile
|
||||
#include <TopoDS_Shape.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_ShapeInfo_HeaderFile
|
||||
#include <GEOMAlgo_ShapeInfo.hxx>
|
||||
#endif
|
||||
#ifndef _TopTools_ShapeMapHasher_HeaderFile
|
||||
#include <TopTools_ShapeMapHasher.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_IndexedDataMapOfShapeShapeInfo_HeaderFile
|
||||
#include <GEOMAlgo_IndexedDataMapOfShapeShapeInfo.hxx>
|
||||
#endif
|
||||
//GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo::~GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo() {}
|
||||
|
||||
|
||||
|
||||
Standard_EXPORT Handle_Standard_Type& GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo_Type_()
|
||||
{
|
||||
|
||||
static Handle_Standard_Type aType1 = STANDARD_TYPE(TCollection_MapNode);
|
||||
static Handle_Standard_Type aType2 = STANDARD_TYPE(MMgt_TShared);
|
||||
static Handle_Standard_Type aType3 = STANDARD_TYPE(Standard_Transient);
|
||||
|
||||
|
||||
static Handle_Standard_Transient _Ancestors[]= {aType1,aType2,aType3,NULL};
|
||||
static Handle_Standard_Type _aType = new Standard_Type("GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo",
|
||||
sizeof(GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo),
|
||||
1,
|
||||
(Standard_Address)_Ancestors,
|
||||
(Standard_Address)NULL);
|
||||
|
||||
return _aType;
|
||||
}
|
||||
|
||||
|
||||
// DownCast method
|
||||
// allow safe downcasting
|
||||
//
|
||||
const Handle(GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo) Handle(GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo)::DownCast(const Handle(Standard_Transient)& AnObject)
|
||||
{
|
||||
Handle(GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo) _anOtherObject;
|
||||
|
||||
if (!AnObject.IsNull()) {
|
||||
if (AnObject->IsKind(STANDARD_TYPE(GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo))) {
|
||||
_anOtherObject = Handle(GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo)((Handle(GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo)&)AnObject);
|
||||
}
|
||||
}
|
||||
|
||||
return _anOtherObject ;
|
||||
}
|
||||
const Handle(Standard_Type)& GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo::DynamicType() const
|
||||
{
|
||||
return STANDARD_TYPE(GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo) ;
|
||||
}
|
||||
//Standard_Boolean GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo::IsKind(const Handle(Standard_Type)& AType) const
|
||||
//{
|
||||
// return (STANDARD_TYPE(GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo) == AType || TCollection_MapNode::IsKind(AType));
|
||||
//}
|
||||
//Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo::~Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo() {}
|
||||
#define TheKey TopoDS_Shape
|
||||
#define TheKey_hxx <TopoDS_Shape.hxx>
|
||||
#define TheItem GEOMAlgo_ShapeInfo
|
||||
#define TheItem_hxx <GEOMAlgo_ShapeInfo.hxx>
|
||||
#define Hasher TopTools_ShapeMapHasher
|
||||
#define Hasher_hxx <TopTools_ShapeMapHasher.hxx>
|
||||
#define TCollection_IndexedDataMapNode GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo
|
||||
#define TCollection_IndexedDataMapNode_hxx <GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo.hxx>
|
||||
#define Handle_TCollection_IndexedDataMapNode Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo
|
||||
#define TCollection_IndexedDataMapNode_Type_() GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo_Type_()
|
||||
#define TCollection_IndexedDataMap GEOMAlgo_IndexedDataMapOfShapeShapeInfo
|
||||
#define TCollection_IndexedDataMap_hxx <GEOMAlgo_IndexedDataMapOfShapeShapeInfo.hxx>
|
||||
#include <TCollection_IndexedDataMapNode.gxx>
|
||||
|
172
src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfShapeShapeInfo.hxx
Normal file
@ -0,0 +1,172 @@
|
||||
// File generated by CPPExt (Value)
|
||||
//
|
||||
// Copyright (C) 1991 - 2000 by
|
||||
// Matra Datavision SA. All rights reserved.
|
||||
//
|
||||
// Copyright (C) 2001 - 2004 by
|
||||
// Open CASCADE SA. All rights reserved.
|
||||
//
|
||||
// This file is part of the Open CASCADE Technology software.
|
||||
//
|
||||
// This software may be distributed and/or modified under the terms and
|
||||
// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
|
||||
// and appearing in the file LICENSE included in the packaging of this file.
|
||||
//
|
||||
// This software is distributed on an "AS IS" basis, without warranty of any
|
||||
// kind, and Open CASCADE SA hereby disclaims all such warranties,
|
||||
// including without limitation, any warranties of merchantability, fitness
|
||||
// for a particular purpose or non-infringement. Please see the License for
|
||||
// the specific terms and conditions governing rights and limitations under the
|
||||
// License.
|
||||
|
||||
#ifndef _GEOMAlgo_IndexedDataMapOfShapeShapeInfo_HeaderFile
|
||||
#define _GEOMAlgo_IndexedDataMapOfShapeShapeInfo_HeaderFile
|
||||
|
||||
#ifndef _TCollection_BasicMap_HeaderFile
|
||||
#include <TCollection_BasicMap.hxx>
|
||||
#endif
|
||||
#ifndef _Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo_HeaderFile
|
||||
#include <Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo.hxx>
|
||||
#endif
|
||||
#ifndef _Standard_Integer_HeaderFile
|
||||
#include <Standard_Integer.hxx>
|
||||
#endif
|
||||
#ifndef _Standard_Boolean_HeaderFile
|
||||
#include <Standard_Boolean.hxx>
|
||||
#endif
|
||||
class Standard_DomainError;
|
||||
class Standard_OutOfRange;
|
||||
class Standard_NoSuchObject;
|
||||
class TopoDS_Shape;
|
||||
class GEOMAlgo_ShapeInfo;
|
||||
class TopTools_ShapeMapHasher;
|
||||
class GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo;
|
||||
|
||||
|
||||
#ifndef _Standard_HeaderFile
|
||||
#include <Standard.hxx>
|
||||
#endif
|
||||
#ifndef _Standard_Macro_HeaderFile
|
||||
#include <Standard_Macro.hxx>
|
||||
#endif
|
||||
|
||||
|
||||
class GEOMAlgo_IndexedDataMapOfShapeShapeInfo : public TCollection_BasicMap {
|
||||
|
||||
public:
|
||||
|
||||
void* operator new(size_t,void* anAddress)
|
||||
{
|
||||
return anAddress;
|
||||
}
|
||||
void* operator new(size_t size)
|
||||
{
|
||||
return Standard::Allocate(size);
|
||||
}
|
||||
void operator delete(void *anAddress)
|
||||
{
|
||||
if (anAddress) Standard::Free((Standard_Address&)anAddress);
|
||||
}
|
||||
// Methods PUBLIC
|
||||
//
|
||||
|
||||
|
||||
Standard_EXPORT GEOMAlgo_IndexedDataMapOfShapeShapeInfo(const Standard_Integer NbBuckets = 1);
|
||||
|
||||
|
||||
Standard_EXPORT GEOMAlgo_IndexedDataMapOfShapeShapeInfo& Assign(const GEOMAlgo_IndexedDataMapOfShapeShapeInfo& Other) ;
|
||||
GEOMAlgo_IndexedDataMapOfShapeShapeInfo& operator =(const GEOMAlgo_IndexedDataMapOfShapeShapeInfo& Other)
|
||||
{
|
||||
return Assign(Other);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Standard_EXPORT void ReSize(const Standard_Integer NbBuckets) ;
|
||||
|
||||
|
||||
Standard_EXPORT void Clear() ;
|
||||
~GEOMAlgo_IndexedDataMapOfShapeShapeInfo()
|
||||
{
|
||||
Clear();
|
||||
}
|
||||
|
||||
|
||||
|
||||
Standard_EXPORT Standard_Integer Add(const TopoDS_Shape& K,const GEOMAlgo_ShapeInfo& I) ;
|
||||
|
||||
|
||||
Standard_EXPORT void Substitute(const Standard_Integer I,const TopoDS_Shape& K,const GEOMAlgo_ShapeInfo& T) ;
|
||||
|
||||
|
||||
Standard_EXPORT void RemoveLast() ;
|
||||
|
||||
|
||||
Standard_EXPORT Standard_Boolean Contains(const TopoDS_Shape& K) const;
|
||||
|
||||
|
||||
Standard_EXPORT const TopoDS_Shape& FindKey(const Standard_Integer I) const;
|
||||
|
||||
|
||||
Standard_EXPORT const GEOMAlgo_ShapeInfo& FindFromIndex(const Standard_Integer I) const;
|
||||
const GEOMAlgo_ShapeInfo& operator ()(const Standard_Integer I) const
|
||||
{
|
||||
return FindFromIndex(I);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Standard_EXPORT GEOMAlgo_ShapeInfo& ChangeFromIndex(const Standard_Integer I) ;
|
||||
GEOMAlgo_ShapeInfo& operator ()(const Standard_Integer I)
|
||||
{
|
||||
return ChangeFromIndex(I);
|
||||
}
|
||||
|
||||
|
||||
|
||||
Standard_EXPORT Standard_Integer FindIndex(const TopoDS_Shape& K) const;
|
||||
|
||||
|
||||
Standard_EXPORT const GEOMAlgo_ShapeInfo& FindFromKey(const TopoDS_Shape& K) const;
|
||||
|
||||
|
||||
Standard_EXPORT GEOMAlgo_ShapeInfo& ChangeFromKey(const TopoDS_Shape& K) ;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
// Methods PROTECTED
|
||||
//
|
||||
|
||||
|
||||
// Fields PROTECTED
|
||||
//
|
||||
|
||||
|
||||
private:
|
||||
|
||||
// Methods PRIVATE
|
||||
//
|
||||
|
||||
|
||||
Standard_EXPORT GEOMAlgo_IndexedDataMapOfShapeShapeInfo(const GEOMAlgo_IndexedDataMapOfShapeShapeInfo& Other);
|
||||
|
||||
|
||||
// Fields PRIVATE
|
||||
//
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// other Inline functions and methods (like "C++: function call" methods)
|
||||
//
|
||||
|
||||
|
||||
#endif
|
60
src/GEOMAlgo/GEOMAlgo_IndexedDataMapOfShapeShapeInfo_0.cxx
Normal file
@ -0,0 +1,60 @@
|
||||
// File generated by CPPExt (Value)
|
||||
//
|
||||
// Copyright (C) 1991 - 2000 by
|
||||
// Matra Datavision SA. All rights reserved.
|
||||
//
|
||||
// Copyright (C) 2001 - 2004 by
|
||||
// Open CASCADE SA. All rights reserved.
|
||||
//
|
||||
// This file is part of the Open CASCADE Technology software.
|
||||
//
|
||||
// This software may be distributed and/or modified under the terms and
|
||||
// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
|
||||
// and appearing in the file LICENSE included in the packaging of this file.
|
||||
//
|
||||
// This software is distributed on an "AS IS" basis, without warranty of any
|
||||
// kind, and Open CASCADE SA hereby disclaims all such warranties,
|
||||
// including without limitation, any warranties of merchantability, fitness
|
||||
// for a particular purpose or non-infringement. Please see the License for
|
||||
// the specific terms and conditions governing rights and limitations under the
|
||||
// License.
|
||||
|
||||
#include <GEOMAlgo_IndexedDataMapOfShapeShapeInfo.hxx>
|
||||
|
||||
#ifndef _Standard_DomainError_HeaderFile
|
||||
#include <Standard_DomainError.hxx>
|
||||
#endif
|
||||
#ifndef _Standard_OutOfRange_HeaderFile
|
||||
#include <Standard_OutOfRange.hxx>
|
||||
#endif
|
||||
#ifndef _Standard_NoSuchObject_HeaderFile
|
||||
#include <Standard_NoSuchObject.hxx>
|
||||
#endif
|
||||
#ifndef _TopoDS_Shape_HeaderFile
|
||||
#include <TopoDS_Shape.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_ShapeInfo_HeaderFile
|
||||
#include <GEOMAlgo_ShapeInfo.hxx>
|
||||
#endif
|
||||
#ifndef _TopTools_ShapeMapHasher_HeaderFile
|
||||
#include <TopTools_ShapeMapHasher.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo_HeaderFile
|
||||
#include <GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo.hxx>
|
||||
#endif
|
||||
|
||||
|
||||
#define TheKey TopoDS_Shape
|
||||
#define TheKey_hxx <TopoDS_Shape.hxx>
|
||||
#define TheItem GEOMAlgo_ShapeInfo
|
||||
#define TheItem_hxx <GEOMAlgo_ShapeInfo.hxx>
|
||||
#define Hasher TopTools_ShapeMapHasher
|
||||
#define Hasher_hxx <TopTools_ShapeMapHasher.hxx>
|
||||
#define TCollection_IndexedDataMapNode GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo
|
||||
#define TCollection_IndexedDataMapNode_hxx <GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo.hxx>
|
||||
#define Handle_TCollection_IndexedDataMapNode Handle_GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo
|
||||
#define TCollection_IndexedDataMapNode_Type_() GEOMAlgo_IndexedDataMapNodeOfIndexedDataMapOfShapeShapeInfo_Type_()
|
||||
#define TCollection_IndexedDataMap GEOMAlgo_IndexedDataMapOfShapeShapeInfo
|
||||
#define TCollection_IndexedDataMap_hxx <GEOMAlgo_IndexedDataMapOfShapeShapeInfo.hxx>
|
||||
#include <TCollection_IndexedDataMap.gxx>
|
||||
|
37
src/GEOMAlgo/GEOMAlgo_KindOfBounds.hxx
Normal file
@ -0,0 +1,37 @@
|
||||
// File generated by CPPExt (Enum)
|
||||
//
|
||||
// Copyright (C) 1991 - 2000 by
|
||||
// Matra Datavision SA. All rights reserved.
|
||||
//
|
||||
// Copyright (C) 2001 - 2004 by
|
||||
// Open CASCADE SA. All rights reserved.
|
||||
//
|
||||
// This file is part of the Open CASCADE Technology software.
|
||||
//
|
||||
// This software may be distributed and/or modified under the terms and
|
||||
// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
|
||||
// and appearing in the file LICENSE included in the packaging of this file.
|
||||
//
|
||||
// This software is distributed on an "AS IS" basis, without warranty of any
|
||||
// kind, and Open CASCADE SA hereby disclaims all such warranties,
|
||||
// including without limitation, any warranties of merchantability, fitness
|
||||
// for a particular purpose or non-infringement. Please see the License for
|
||||
// the specific terms and conditions governing rights and limitations under the
|
||||
// License.
|
||||
|
||||
#ifndef _GEOMAlgo_KindOfBounds_HeaderFile
|
||||
#define _GEOMAlgo_KindOfBounds_HeaderFile
|
||||
|
||||
|
||||
enum GEOMAlgo_KindOfBounds {
|
||||
GEOMAlgo_KB_UNKNOWN,
|
||||
GEOMAlgo_KB_TRIMMED,
|
||||
GEOMAlgo_KB_INFINITE
|
||||
};
|
||||
|
||||
|
||||
#ifndef _Standard_PrimitiveTypes_HeaderFile
|
||||
#include <Standard_PrimitiveTypes.hxx>
|
||||
#endif
|
||||
|
||||
#endif
|
37
src/GEOMAlgo/GEOMAlgo_KindOfClosed.hxx
Normal file
@ -0,0 +1,37 @@
|
||||
// File generated by CPPExt (Enum)
|
||||
//
|
||||
// Copyright (C) 1991 - 2000 by
|
||||
// Matra Datavision SA. All rights reserved.
|
||||
//
|
||||
// Copyright (C) 2001 - 2004 by
|
||||
// Open CASCADE SA. All rights reserved.
|
||||
//
|
||||
// This file is part of the Open CASCADE Technology software.
|
||||
//
|
||||
// This software may be distributed and/or modified under the terms and
|
||||
// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
|
||||
// and appearing in the file LICENSE included in the packaging of this file.
|
||||
//
|
||||
// This software is distributed on an "AS IS" basis, without warranty of any
|
||||
// kind, and Open CASCADE SA hereby disclaims all such warranties,
|
||||
// including without limitation, any warranties of merchantability, fitness
|
||||
// for a particular purpose or non-infringement. Please see the License for
|
||||
// the specific terms and conditions governing rights and limitations under the
|
||||
// License.
|
||||
|
||||
#ifndef _GEOMAlgo_KindOfClosed_HeaderFile
|
||||
#define _GEOMAlgo_KindOfClosed_HeaderFile
|
||||
|
||||
|
||||
enum GEOMAlgo_KindOfClosed {
|
||||
GEOMAlgo_KC_UNKNOWN,
|
||||
GEOMAlgo_KC_CLOSED,
|
||||
GEOMAlgo_KC_NOTCLOSED
|
||||
};
|
||||
|
||||
|
||||
#ifndef _Standard_PrimitiveTypes_HeaderFile
|
||||
#include <Standard_PrimitiveTypes.hxx>
|
||||
#endif
|
||||
|
||||
#endif
|
54
src/GEOMAlgo/GEOMAlgo_KindOfName.hxx
Normal file
@ -0,0 +1,54 @@
|
||||
// File generated by CPPExt (Enum)
|
||||
//
|
||||
// Copyright (C) 1991 - 2000 by
|
||||
// Matra Datavision SA. All rights reserved.
|
||||
//
|
||||
// Copyright (C) 2001 - 2004 by
|
||||
// Open CASCADE SA. All rights reserved.
|
||||
//
|
||||
// This file is part of the Open CASCADE Technology software.
|
||||
//
|
||||
// This software may be distributed and/or modified under the terms and
|
||||
// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
|
||||
// and appearing in the file LICENSE included in the packaging of this file.
|
||||
//
|
||||
// This software is distributed on an "AS IS" basis, without warranty of any
|
||||
// kind, and Open CASCADE SA hereby disclaims all such warranties,
|
||||
// including without limitation, any warranties of merchantability, fitness
|
||||
// for a particular purpose or non-infringement. Please see the License for
|
||||
// the specific terms and conditions governing rights and limitations under the
|
||||
// License.
|
||||
|
||||
#ifndef _GEOMAlgo_KindOfName_HeaderFile
|
||||
#define _GEOMAlgo_KindOfName_HeaderFile
|
||||
|
||||
|
||||
enum GEOMAlgo_KindOfName {
|
||||
GEOMAlgo_KN_UNKNOWN,
|
||||
GEOMAlgo_KN_SPHERE,
|
||||
GEOMAlgo_KN_CYLINDER,
|
||||
GEOMAlgo_KN_TORUS,
|
||||
GEOMAlgo_KN_CONE,
|
||||
GEOMAlgo_KN_ELLIPSE,
|
||||
GEOMAlgo_KN_CIRCLE,
|
||||
GEOMAlgo_KN_PLANE,
|
||||
GEOMAlgo_KN_LINE,
|
||||
GEOMAlgo_KN_BOX,
|
||||
GEOMAlgo_KN_SEGMENT,
|
||||
GEOMAlgo_KN_ARCCIRCLE,
|
||||
GEOMAlgo_KN_POLYGON,
|
||||
GEOMAlgo_KN_POLYHEDRON,
|
||||
GEOMAlgo_KN_DISKCIRCLE,
|
||||
GEOMAlgo_KN_DISKELLIPSE,
|
||||
GEOMAlgo_KN_RECTANGLE,
|
||||
GEOMAlgo_KN_TRIANGLE,
|
||||
GEOMAlgo_KN_QUADRANGLE,
|
||||
GEOMAlgo_KN_ARCELLIPSE
|
||||
};
|
||||
|
||||
|
||||
#ifndef _Standard_PrimitiveTypes_HeaderFile
|
||||
#include <Standard_PrimitiveTypes.hxx>
|
||||
#endif
|
||||
|
||||
#endif
|
45
src/GEOMAlgo/GEOMAlgo_KindOfShape.hxx
Normal file
@ -0,0 +1,45 @@
|
||||
// File generated by CPPExt (Enum)
|
||||
//
|
||||
// Copyright (C) 1991 - 2000 by
|
||||
// Matra Datavision SA. All rights reserved.
|
||||
//
|
||||
// Copyright (C) 2001 - 2004 by
|
||||
// Open CASCADE SA. All rights reserved.
|
||||
//
|
||||
// This file is part of the Open CASCADE Technology software.
|
||||
//
|
||||
// This software may be distributed and/or modified under the terms and
|
||||
// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
|
||||
// and appearing in the file LICENSE included in the packaging of this file.
|
||||
//
|
||||
// This software is distributed on an "AS IS" basis, without warranty of any
|
||||
// kind, and Open CASCADE SA hereby disclaims all such warranties,
|
||||
// including without limitation, any warranties of merchantability, fitness
|
||||
// for a particular purpose or non-infringement. Please see the License for
|
||||
// the specific terms and conditions governing rights and limitations under the
|
||||
// License.
|
||||
|
||||
#ifndef _GEOMAlgo_KindOfShape_HeaderFile
|
||||
#define _GEOMAlgo_KindOfShape_HeaderFile
|
||||
|
||||
|
||||
enum GEOMAlgo_KindOfShape {
|
||||
GEOMAlgo_KS_UNKNOWN,
|
||||
GEOMAlgo_KS_SPHERE,
|
||||
GEOMAlgo_KS_CYLINDER,
|
||||
GEOMAlgo_KS_BOX,
|
||||
GEOMAlgo_KS_TORUS,
|
||||
GEOMAlgo_KS_CONE,
|
||||
GEOMAlgo_KS_ELLIPSE,
|
||||
GEOMAlgo_KS_PLANE,
|
||||
GEOMAlgo_KS_CIRCLE,
|
||||
GEOMAlgo_KS_LINE,
|
||||
GEOMAlgo_KS_DEGENERATED
|
||||
};
|
||||
|
||||
|
||||
#ifndef _Standard_PrimitiveTypes_HeaderFile
|
||||
#include <Standard_PrimitiveTypes.hxx>
|
||||
#endif
|
||||
|
||||
#endif
|
190
src/GEOMAlgo/GEOMAlgo_ShapeInfo.cdl
Normal file
@ -0,0 +1,190 @@
|
||||
-- File: GEOMAlgo_ShapeInfo.cdl
|
||||
-- Created: Mon Apr 2 14:04:24 2007
|
||||
-- Author: Peter KURNEV
|
||||
-- <pkv@irinox>
|
||||
---Copyright: Matra Datavision 2007
|
||||
|
||||
|
||||
class ShapeInfo from GEOMAlgo
|
||||
|
||||
---Purpose:
|
||||
|
||||
uses
|
||||
Pnt from gp,
|
||||
Dir from gp,
|
||||
Ax2 from gp,
|
||||
Ax3 from gp,
|
||||
|
||||
ShapeEnum from TopAbs,
|
||||
Shape from TopoDS,
|
||||
|
||||
KindOfShape from GEOMAlgo,
|
||||
KindOfBounds from GEOMAlgo,
|
||||
KindOfClosed from GEOMAlgo,
|
||||
KindOfName from GEOMAlgo
|
||||
--raises
|
||||
|
||||
is
|
||||
Create
|
||||
returns ShapeInfo from GEOMAlgo;
|
||||
---C++: alias "Standard_EXPORT virtual ~GEOMAlgo_ShapeInfo();"
|
||||
|
||||
Reset(me:out);
|
||||
|
||||
SetType(me:out;
|
||||
aType:ShapeEnum from TopAbs);
|
||||
|
||||
Type(me)
|
||||
returns ShapeEnum from TopAbs;
|
||||
|
||||
SetNbSubShapes(me:out;
|
||||
aType:ShapeEnum from TopAbs;
|
||||
aNb :Integer from Standard);
|
||||
|
||||
NbSubShapes(me;
|
||||
aType:ShapeEnum from TopAbs)
|
||||
returns Integer from Standard;
|
||||
|
||||
SetKindOfShape (me:out;
|
||||
aT:KindOfShape from GEOMAlgo);
|
||||
|
||||
KindOfShape (me)
|
||||
returns KindOfShape from GEOMAlgo;
|
||||
|
||||
SetKindOfName (me:out;
|
||||
aT: KindOfName from GEOMAlgo);
|
||||
|
||||
KindOfName(me)
|
||||
returns KindOfName from GEOMAlgo;
|
||||
|
||||
SetKindOfBounds (me:out;
|
||||
aT:KindOfBounds from GEOMAlgo);
|
||||
|
||||
KindOfBounds (me)
|
||||
returns KindOfBounds from GEOMAlgo;
|
||||
|
||||
SetKindOfClosed (me:out;
|
||||
aT:KindOfClosed from GEOMAlgo);
|
||||
|
||||
KindOfClosed(me)
|
||||
returns KindOfClosed from GEOMAlgo;
|
||||
|
||||
SetLocation (me:out;
|
||||
aP: Pnt from gp);
|
||||
|
||||
Location (me)
|
||||
returns Pnt from gp;
|
||||
---C++: return const&
|
||||
|
||||
SetDirection (me:out;
|
||||
aD:Dir from gp);
|
||||
|
||||
Direction (me)
|
||||
returns Dir from gp;
|
||||
---C++: return const&
|
||||
|
||||
SetPosition (me:out;
|
||||
aAx2 : Ax2 from gp);
|
||||
|
||||
SetPosition (me:out;
|
||||
aAx3 : Ax3 from gp);
|
||||
|
||||
Position (me)
|
||||
returns Ax3 from gp;
|
||||
---C++: return const&
|
||||
|
||||
SetPnt1 (me:out;
|
||||
aP: Pnt from gp);
|
||||
|
||||
Pnt1 (me)
|
||||
returns Pnt from gp;
|
||||
---C++: return const&
|
||||
|
||||
SetPnt2 (me:out;
|
||||
aP: Pnt from gp);
|
||||
|
||||
Pnt2 (me)
|
||||
returns Pnt from gp;
|
||||
---C++: return const&
|
||||
|
||||
SetRadius1 (me:out;
|
||||
aR: Real from Standard);
|
||||
|
||||
Radius1(me)
|
||||
returns Real from Standard;
|
||||
|
||||
SetRadius2 (me:out;
|
||||
aR: Real from Standard);
|
||||
|
||||
Radius2(me)
|
||||
returns Real from Standard;
|
||||
|
||||
SetLength(me:out;
|
||||
aL: Real from Standard);
|
||||
|
||||
Length(me)
|
||||
returns Real from Standard;
|
||||
|
||||
SetWidth(me:out;
|
||||
aW: Real from Standard);
|
||||
|
||||
Width(me)
|
||||
returns Real from Standard;
|
||||
|
||||
SetHeight(me:out;
|
||||
aH: Real from Standard);
|
||||
|
||||
Height(me)
|
||||
returns Real from Standard;
|
||||
--
|
||||
-- Dump
|
||||
--
|
||||
Dump(me);
|
||||
|
||||
DumpVertex(me)
|
||||
is protected;
|
||||
|
||||
DumpEdge(me)
|
||||
is protected;
|
||||
|
||||
DumpWire(me)
|
||||
is protected;
|
||||
|
||||
DumpFace(me)
|
||||
is protected;
|
||||
|
||||
DumpShell(me)
|
||||
is protected;
|
||||
|
||||
DumpSolid(me)
|
||||
is protected;
|
||||
|
||||
DumpCompSolid(me)
|
||||
is protected;
|
||||
|
||||
DumpCompound(me)
|
||||
is protected;
|
||||
|
||||
fields
|
||||
myType : ShapeEnum from TopAbs is protected;
|
||||
myNbSubShapes : Integer from Standard[9] is protected;
|
||||
myKindOfShape : KindOfShape from GEOMAlgo is protected;
|
||||
myKindOfName : KindOfName from GEOMAlgo is protected;
|
||||
myKindOfBounds : KindOfBounds from GEOMAlgo is protected;
|
||||
myKindOfClosed : KindOfClosed from GEOMAlgo is protected;
|
||||
--
|
||||
myLocation : Pnt from gp is protected;
|
||||
myDirection : Dir from gp is protected;
|
||||
myPosition : Ax3 from gp is protected;
|
||||
--
|
||||
myRadius1 : Real from Standard is protected;
|
||||
myRadius2 : Real from Standard is protected;
|
||||
myLength : Real from Standard is protected;
|
||||
myWidth : Real from Standard is protected;
|
||||
myHeight : Real from Standard is protected;
|
||||
--
|
||||
myPnt1 : Pnt from gp is protected;
|
||||
myPnt2 : Pnt from gp is protected;
|
||||
--
|
||||
myNbTypes : Integer from Standard is protected;
|
||||
end ShapeInfo;
|
871
src/GEOMAlgo/GEOMAlgo_ShapeInfo.cxx
Normal file
@ -0,0 +1,871 @@
|
||||
#include <GEOMAlgo_ShapeInfo.ixx>
|
||||
|
||||
|
||||
static
|
||||
Standard_Integer TypeToInteger(const TopAbs_ShapeEnum aType);
|
||||
static
|
||||
void DumpKindOfShape(const GEOMAlgo_KindOfShape aKS);
|
||||
static
|
||||
void DumpKindOfClosed(const GEOMAlgo_KindOfClosed aKC);
|
||||
static
|
||||
void DumpKindOfBounds(const GEOMAlgo_KindOfBounds aKB);
|
||||
static
|
||||
void DumpKindOfName(const GEOMAlgo_KindOfName aKS);
|
||||
static
|
||||
void DumpPosition(const gp_Ax3& aAx3);
|
||||
static
|
||||
void DumpLocation(const gp_Pnt& aP);
|
||||
static
|
||||
void DumpDirection(const gp_Dir& aD);
|
||||
//=======================================================================
|
||||
//function :
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
GEOMAlgo_ShapeInfo::GEOMAlgo_ShapeInfo()
|
||||
{
|
||||
Reset();
|
||||
}
|
||||
//=======================================================================
|
||||
//function : ~
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
GEOMAlgo_ShapeInfo::~GEOMAlgo_ShapeInfo()
|
||||
{
|
||||
}
|
||||
//=======================================================================
|
||||
//function : Reset
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfo::Reset()
|
||||
{
|
||||
Standard_Integer i;
|
||||
//
|
||||
myType=TopAbs_SHAPE;
|
||||
//
|
||||
myNbTypes=9;
|
||||
for (i=0; i<myNbTypes; ++i) {
|
||||
myNbSubShapes[i]=0;
|
||||
}
|
||||
//
|
||||
myKindOfShape=GEOMAlgo_KS_UNKNOWN;
|
||||
myKindOfBounds=GEOMAlgo_KB_UNKNOWN;
|
||||
myKindOfClosed=GEOMAlgo_KC_UNKNOWN;
|
||||
myKindOfName=GEOMAlgo_KN_UNKNOWN;
|
||||
//
|
||||
myLocation.SetCoord(99., 99., 99.);
|
||||
myDirection.SetCoord(1.,0.,0.);
|
||||
//
|
||||
myRadius1=-1.;
|
||||
myRadius2=-2.;
|
||||
myLength=-3.;
|
||||
myWidth=-3.;
|
||||
myHeight=-3.;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : SetType
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfo::SetType(const TopAbs_ShapeEnum aType)
|
||||
{
|
||||
myType=aType;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : Type
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
TopAbs_ShapeEnum GEOMAlgo_ShapeInfo::Type() const
|
||||
{
|
||||
return myType;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : SetNbSubShapes
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfo::SetNbSubShapes(const TopAbs_ShapeEnum aType,
|
||||
const Standard_Integer aNb)
|
||||
{
|
||||
Standard_Integer iN;
|
||||
|
||||
iN=TypeToInteger(aType);
|
||||
if (iN>=0 && iN<myNbTypes) {
|
||||
myNbSubShapes[iN]=aNb;
|
||||
}
|
||||
}
|
||||
//=======================================================================
|
||||
//function : NbSubShapes
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Standard_Integer GEOMAlgo_ShapeInfo::NbSubShapes(const TopAbs_ShapeEnum aType) const
|
||||
{
|
||||
Standard_Integer iN;
|
||||
|
||||
iN=TypeToInteger(aType);
|
||||
if (iN>=0 && iN<myNbTypes) {
|
||||
return myNbSubShapes[iN];
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : SetKindOfShape
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfo::SetKindOfShape(const GEOMAlgo_KindOfShape aT)
|
||||
{
|
||||
myKindOfShape=aT;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : KindOfShape
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
GEOMAlgo_KindOfShape GEOMAlgo_ShapeInfo::KindOfShape() const
|
||||
{
|
||||
return myKindOfShape;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : SetKindOfName
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfo::SetKindOfName(const GEOMAlgo_KindOfName aT)
|
||||
{
|
||||
myKindOfName=aT;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : KindOfName
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
GEOMAlgo_KindOfName GEOMAlgo_ShapeInfo::KindOfName() const
|
||||
{
|
||||
return myKindOfName;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : SetKindOfBounds
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfo::SetKindOfBounds(const GEOMAlgo_KindOfBounds aT)
|
||||
{
|
||||
myKindOfBounds=aT;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : KindOfBounds
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
GEOMAlgo_KindOfBounds GEOMAlgo_ShapeInfo::KindOfBounds() const
|
||||
{
|
||||
return myKindOfBounds;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : SetKindOfClosed
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfo::SetKindOfClosed(const GEOMAlgo_KindOfClosed aT)
|
||||
{
|
||||
myKindOfClosed=aT;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : KindOfClosed
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
GEOMAlgo_KindOfClosed GEOMAlgo_ShapeInfo::KindOfClosed() const
|
||||
{
|
||||
return myKindOfClosed;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : SetLocation
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfo::SetLocation(const gp_Pnt& aP)
|
||||
{
|
||||
myLocation=aP;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : Location
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
const gp_Pnt& GEOMAlgo_ShapeInfo::Location() const
|
||||
{
|
||||
return myLocation;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : SetDirection
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfo::SetDirection(const gp_Dir& aD)
|
||||
{
|
||||
myDirection=aD;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : Direction
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
const gp_Dir& GEOMAlgo_ShapeInfo::Direction() const
|
||||
{
|
||||
return myDirection;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : SetPosition
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfo::SetPosition(const gp_Ax2& aAx2)
|
||||
{
|
||||
gp_Ax3 aAx3(aAx2);
|
||||
SetPosition(aAx3);
|
||||
}
|
||||
//=======================================================================
|
||||
//function : SetPosition
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfo::SetPosition(const gp_Ax3& aAx3)
|
||||
{
|
||||
myPosition=aAx3;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : Position
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
const gp_Ax3& GEOMAlgo_ShapeInfo::Position() const
|
||||
{
|
||||
return myPosition;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : SetPnt1
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfo::SetPnt1(const gp_Pnt& aP)
|
||||
{
|
||||
myPnt1=aP;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : Pnt1
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
const gp_Pnt& GEOMAlgo_ShapeInfo::Pnt1() const
|
||||
{
|
||||
return myPnt1;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : SetPnt2
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfo::SetPnt2(const gp_Pnt& aP)
|
||||
{
|
||||
myPnt2=aP;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : Pnt2
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
const gp_Pnt& GEOMAlgo_ShapeInfo::Pnt2() const
|
||||
{
|
||||
return myPnt2;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : SetRadius1
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfo::SetRadius1(const Standard_Real aR)
|
||||
{
|
||||
myRadius1=aR;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : Radius1
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Standard_Real GEOMAlgo_ShapeInfo::Radius1() const
|
||||
{
|
||||
return myRadius1;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : SetRadius2
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfo::SetRadius2(const Standard_Real aR)
|
||||
{
|
||||
myRadius2=aR;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : Radius2
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Standard_Real GEOMAlgo_ShapeInfo::Radius2() const
|
||||
{
|
||||
return myRadius2;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : SetLength
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfo::SetLength(const Standard_Real aL)
|
||||
{
|
||||
myLength=aL;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : Length
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Standard_Real GEOMAlgo_ShapeInfo::Length() const
|
||||
{
|
||||
return myLength;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : SetWidth
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfo::SetWidth(const Standard_Real aW)
|
||||
{
|
||||
myWidth=aW;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : Width
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Standard_Real GEOMAlgo_ShapeInfo::Width() const
|
||||
{
|
||||
return myWidth;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : SetHeight
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfo::SetHeight(const Standard_Real aH)
|
||||
{
|
||||
myHeight=aH;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : Height
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Standard_Real GEOMAlgo_ShapeInfo::Height() const
|
||||
{
|
||||
return myHeight;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : TypeToInteger
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Standard_Integer TypeToInteger(const TopAbs_ShapeEnum aType)
|
||||
{
|
||||
Standard_Integer iN;
|
||||
//
|
||||
iN=(Standard_Integer)aType;
|
||||
return iN;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : Dump
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfo::Dump()const
|
||||
{
|
||||
switch (myType) {
|
||||
//
|
||||
case TopAbs_VERTEX:
|
||||
DumpVertex();
|
||||
break;
|
||||
//
|
||||
case TopAbs_EDGE:
|
||||
DumpEdge();
|
||||
break;
|
||||
//
|
||||
case TopAbs_WIRE:
|
||||
DumpWire();
|
||||
break;
|
||||
//
|
||||
case TopAbs_FACE:
|
||||
DumpFace();
|
||||
break;
|
||||
//
|
||||
case TopAbs_SHELL:
|
||||
DumpShell();
|
||||
break;
|
||||
//
|
||||
case TopAbs_SOLID:
|
||||
DumpSolid();
|
||||
break;
|
||||
//
|
||||
case TopAbs_COMPSOLID:
|
||||
DumpCompSolid();
|
||||
break;
|
||||
//
|
||||
case TopAbs_COMPOUND:
|
||||
DumpCompound();
|
||||
break;
|
||||
//
|
||||
default:
|
||||
printf(" * not implememted yet\n");
|
||||
break;
|
||||
}
|
||||
}
|
||||
//=======================================================================
|
||||
//function : DumpCompound
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfo::DumpCompound()const
|
||||
{
|
||||
Standard_Integer aNbV, aNbE, aNbF, aNbS, aNbC, aNbP;
|
||||
GEOMAlgo_KindOfShape aKS;
|
||||
GEOMAlgo_KindOfName aKN;
|
||||
GEOMAlgo_KindOfBounds aKB;
|
||||
GEOMAlgo_KindOfClosed aKC;
|
||||
//
|
||||
aNbV=NbSubShapes(TopAbs_VERTEX);
|
||||
aNbE=NbSubShapes(TopAbs_EDGE);
|
||||
aNbF=NbSubShapes(TopAbs_FACE);
|
||||
aNbS=NbSubShapes(TopAbs_SOLID);
|
||||
aNbC=NbSubShapes(TopAbs_COMPSOLID);
|
||||
aNbP=NbSubShapes(TopAbs_COMPOUND);
|
||||
aKS=KindOfShape();
|
||||
aKN=KindOfName();
|
||||
aKB=KindOfBounds();
|
||||
aKC=KindOfClosed();
|
||||
//
|
||||
printf(" *COMPOUND\n");
|
||||
printf(" number of vertices : %d\n", aNbV);
|
||||
printf(" number of edges : %d\n", aNbE);
|
||||
printf(" number of faces : %d\n", aNbF);
|
||||
printf(" number of solids : %d\n", aNbS);
|
||||
printf(" number of compsolids : %d\n", aNbC);
|
||||
printf(" number of compounds : %d\n", aNbP);
|
||||
DumpKindOfShape (aKS);
|
||||
DumpKindOfName (aKN);
|
||||
DumpKindOfBounds(aKB);
|
||||
DumpKindOfClosed(aKC);
|
||||
}
|
||||
//=======================================================================
|
||||
//function : DumpCompSolid
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfo::DumpCompSolid()const
|
||||
{
|
||||
Standard_Integer aNbV, aNbE, aNbF, aNbS;
|
||||
GEOMAlgo_KindOfShape aKS;
|
||||
GEOMAlgo_KindOfName aKN;
|
||||
GEOMAlgo_KindOfBounds aKB;
|
||||
GEOMAlgo_KindOfClosed aKC;
|
||||
//
|
||||
aNbV=NbSubShapes(TopAbs_VERTEX);
|
||||
aNbE=NbSubShapes(TopAbs_EDGE);
|
||||
aNbF=NbSubShapes(TopAbs_FACE);
|
||||
aNbS=NbSubShapes(TopAbs_SOLID);
|
||||
aKS=KindOfShape();
|
||||
aKN=KindOfName();
|
||||
aKB=KindOfBounds();
|
||||
aKC=KindOfClosed();
|
||||
//
|
||||
printf(" *COMPSOLID\n");
|
||||
printf(" number of vertices: %d\n", aNbV);
|
||||
printf(" number of edges : %d\n", aNbE);
|
||||
printf(" number of faces : %d\n", aNbF);
|
||||
printf(" number of solids : %d\n", aNbS);
|
||||
DumpKindOfShape (aKS);
|
||||
DumpKindOfName (aKN);
|
||||
DumpKindOfBounds(aKB);
|
||||
DumpKindOfClosed(aKC);
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : DumpSolid
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfo::DumpSolid()const
|
||||
{
|
||||
Standard_Integer aNbV, aNbE, aNbF;
|
||||
GEOMAlgo_KindOfShape aKS;
|
||||
GEOMAlgo_KindOfName aKN;
|
||||
GEOMAlgo_KindOfBounds aKB;
|
||||
GEOMAlgo_KindOfClosed aKC;
|
||||
//
|
||||
aNbV=NbSubShapes(TopAbs_VERTEX);
|
||||
aNbE=NbSubShapes(TopAbs_EDGE);
|
||||
aNbF=NbSubShapes(TopAbs_FACE);
|
||||
aKS=KindOfShape();
|
||||
aKN=KindOfName();
|
||||
aKB=KindOfBounds();
|
||||
aKC=KindOfClosed();
|
||||
//
|
||||
printf(" *SOLID\n");
|
||||
printf(" number of vertices: %d\n", aNbV);
|
||||
printf(" number of edges : %d\n", aNbE);
|
||||
printf(" number of faces : %d\n", aNbF);
|
||||
DumpKindOfShape (aKS);
|
||||
DumpKindOfName (aKN);
|
||||
DumpKindOfBounds(aKB);
|
||||
DumpKindOfClosed(aKC);
|
||||
//
|
||||
if (aKN==GEOMAlgo_KN_SPHERE) {
|
||||
DumpLocation (myLocation);
|
||||
DumpPosition (myPosition);
|
||||
printf(" Radius1 : %.3lf\n", myRadius1);
|
||||
}
|
||||
if (aKN==GEOMAlgo_KN_CYLINDER) {
|
||||
DumpLocation (myLocation);
|
||||
DumpPosition (myPosition);
|
||||
printf(" Radius1 : %.3lf\n", myRadius1);
|
||||
printf(" Height : %.3lf\n", myHeight);
|
||||
}
|
||||
else if (aKN==GEOMAlgo_KN_CONE) {
|
||||
DumpLocation (myLocation);
|
||||
DumpPosition (myPosition);
|
||||
printf(" Radius1 : %.3lf\n", myRadius1);
|
||||
printf(" Radius2 : %.3lf\n", myRadius2);
|
||||
printf(" Height : %.3lf\n", myHeight);
|
||||
}
|
||||
else if (aKN==GEOMAlgo_KN_TORUS) {
|
||||
DumpLocation (myLocation);
|
||||
DumpPosition (myPosition);
|
||||
printf(" Radius1 : %.3lf\n", myRadius1);
|
||||
printf(" Radius2 : %.3lf\n", myRadius2);
|
||||
}
|
||||
else if (aKN==GEOMAlgo_KN_POLYHEDRON) {
|
||||
DumpLocation (myLocation);
|
||||
DumpPosition (myPosition);
|
||||
}
|
||||
else if (aKN==GEOMAlgo_KN_BOX) {
|
||||
DumpLocation (myLocation);
|
||||
DumpPosition (myPosition);
|
||||
printf(" Length : %.3lf\n", myLength);
|
||||
printf(" Width : %.3lf\n", myWidth);
|
||||
printf(" Height : %.3lf\n", myHeight);
|
||||
}
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : DumpFace
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfo::DumpFace()const
|
||||
{
|
||||
Standard_Integer aNbV, aNbE;
|
||||
GEOMAlgo_KindOfShape aKS;
|
||||
GEOMAlgo_KindOfName aKN;
|
||||
GEOMAlgo_KindOfBounds aKB;
|
||||
GEOMAlgo_KindOfClosed aKC;
|
||||
//
|
||||
aNbV=NbSubShapes(TopAbs_VERTEX);
|
||||
aNbE=NbSubShapes(TopAbs_EDGE);
|
||||
aKS=KindOfShape();
|
||||
aKN=KindOfName();
|
||||
aKB=KindOfBounds();
|
||||
aKC=KindOfClosed();
|
||||
//
|
||||
printf(" *FACE\n");
|
||||
printf(" number of vertices: %d\n", aNbV);
|
||||
printf(" number of edges : %d\n", aNbE);
|
||||
DumpKindOfShape (aKS);
|
||||
DumpKindOfName (aKN);
|
||||
DumpKindOfBounds(aKB);
|
||||
DumpKindOfClosed(aKC);
|
||||
//
|
||||
// PLANE
|
||||
if (aKN==GEOMAlgo_KN_PLANE) {
|
||||
DumpLocation (myLocation);
|
||||
DumpPosition (myPosition);
|
||||
}
|
||||
else if (aKN==GEOMAlgo_KN_DISKCIRCLE) {
|
||||
DumpLocation (myLocation);
|
||||
DumpPosition (myPosition);
|
||||
printf(" Radius1 : %.3lf\n", myRadius1);
|
||||
}
|
||||
else if (aKN==GEOMAlgo_KN_DISKELLIPSE) {
|
||||
DumpLocation (myLocation);
|
||||
DumpPosition (myPosition);
|
||||
printf(" Radius1 : %.3lf\n", myRadius1);
|
||||
printf(" Radius2 : %.3lf\n", myRadius2);
|
||||
}
|
||||
else if (aKN==GEOMAlgo_KN_RECTANGLE) {
|
||||
DumpLocation (myLocation);
|
||||
DumpPosition (myPosition);
|
||||
printf(" Length : %.3lf\n", myLength);
|
||||
printf(" Width : %.3lf\n", myWidth);
|
||||
}
|
||||
else if (aKN==GEOMAlgo_KN_TRIANGLE ||
|
||||
aKN==GEOMAlgo_KN_QUADRANGLE||
|
||||
aKN==GEOMAlgo_KN_POLYGON) {
|
||||
DumpLocation (myLocation);
|
||||
DumpPosition (myPosition);
|
||||
}
|
||||
//
|
||||
// SPHERE
|
||||
else if (aKN==GEOMAlgo_KN_SPHERE) {
|
||||
DumpLocation (myLocation);
|
||||
DumpPosition (myPosition);
|
||||
printf(" Radius1 : %.3lf", myRadius1);
|
||||
}
|
||||
//
|
||||
// CYLINDER
|
||||
else if (aKN==GEOMAlgo_KN_CYLINDER) {
|
||||
DumpLocation (myLocation);
|
||||
DumpPosition (myPosition);
|
||||
printf(" Radius1 : %.3lf\n", myRadius1);
|
||||
printf(" Height : %.3lf\n", myHeight);
|
||||
}
|
||||
//
|
||||
// CONE
|
||||
else if (aKN==GEOMAlgo_KN_CONE) {
|
||||
DumpLocation (myLocation);
|
||||
DumpPosition (myPosition);
|
||||
printf(" Radius1 : %.3lf\n", myRadius1);
|
||||
printf(" Radius2 : %.3lf\n", myRadius2);
|
||||
printf(" Height : %.3lf\n", myHeight);
|
||||
}
|
||||
//
|
||||
// TORUS
|
||||
else if (aKN==GEOMAlgo_KN_TORUS) {
|
||||
DumpLocation (myLocation);
|
||||
DumpPosition (myPosition);
|
||||
printf(" Radius1 : %.3lf\n", myRadius1);
|
||||
printf(" Radius2 : %.3lf\n", myRadius2);
|
||||
}
|
||||
|
||||
|
||||
printf("\n");
|
||||
}
|
||||
//=======================================================================
|
||||
//function : DumpShell
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfo::DumpShell()const
|
||||
{
|
||||
Standard_Integer aNbV, aNbE, aNbF;
|
||||
GEOMAlgo_KindOfClosed aKC;
|
||||
//
|
||||
printf(" *SHELL\n");
|
||||
//
|
||||
aNbV=NbSubShapes(TopAbs_VERTEX);
|
||||
aNbE=NbSubShapes(TopAbs_EDGE);
|
||||
aNbF=NbSubShapes(TopAbs_FACE);
|
||||
printf(" number of vertices: %d\n", aNbV);
|
||||
printf(" number of edges : %d\n", aNbE);
|
||||
printf(" number of faces : %d\n", aNbF);
|
||||
aKC=KindOfClosed();
|
||||
DumpKindOfClosed(aKC);
|
||||
printf("\n");
|
||||
}
|
||||
//=======================================================================
|
||||
//function : DumpWire
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfo::DumpWire()const
|
||||
{
|
||||
Standard_Integer aNbV, aNbE;
|
||||
GEOMAlgo_KindOfClosed aKC;
|
||||
//
|
||||
printf(" *WIRE\n");
|
||||
//
|
||||
aNbV=NbSubShapes(TopAbs_VERTEX);
|
||||
aNbE=NbSubShapes(TopAbs_EDGE);
|
||||
printf(" number of vertices: %d\n", aNbV);
|
||||
printf(" number of edges : %d\n", aNbE);
|
||||
|
||||
aKC=KindOfClosed();
|
||||
DumpKindOfClosed(aKC);
|
||||
printf("\n");
|
||||
}
|
||||
//=======================================================================
|
||||
//function : DumpEdge
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfo::DumpEdge()const
|
||||
{
|
||||
Standard_Integer aNbV;
|
||||
Standard_Real aX, aY, aZ;
|
||||
GEOMAlgo_KindOfShape aKS;
|
||||
GEOMAlgo_KindOfName aKN;
|
||||
GEOMAlgo_KindOfBounds aKB;
|
||||
GEOMAlgo_KindOfClosed aKC;
|
||||
//
|
||||
aNbV=NbSubShapes(TopAbs_VERTEX);
|
||||
aKS=KindOfShape();
|
||||
aKN=KindOfName();
|
||||
aKB=KindOfBounds();
|
||||
aKC=KindOfClosed();
|
||||
//
|
||||
printf(" *EDGE\n");
|
||||
printf(" number of vertices: %d\n", aNbV);
|
||||
DumpKindOfShape (aKS);
|
||||
DumpKindOfName (aKN);
|
||||
DumpKindOfBounds(aKB);
|
||||
DumpKindOfClosed(aKC);
|
||||
//
|
||||
// LINE
|
||||
if (aKN==GEOMAlgo_KN_LINE) {
|
||||
DumpLocation (myLocation);
|
||||
DumpDirection(myDirection);
|
||||
}
|
||||
else if (aKN==GEOMAlgo_KN_SEGMENT) {
|
||||
DumpLocation (myLocation);
|
||||
DumpDirection(myDirection);
|
||||
printf(" Length : %.3lf\n", myLength);
|
||||
myPnt1.Coord(aX, aY, aZ);
|
||||
printf(" Pnt1 : %.3lf %.3lf %.3lf\n", aX, aY, aZ);
|
||||
myPnt2.Coord(aX, aY, aZ);
|
||||
printf(" Pnt2 : %.3lf %.3lf %.3lf\n", aX, aY, aZ);
|
||||
|
||||
}
|
||||
else if (aKN==GEOMAlgo_KN_CIRCLE) {
|
||||
DumpLocation (myLocation);
|
||||
DumpPosition (myPosition);
|
||||
printf(" Radius1 : %.3lf\n", myRadius1);
|
||||
}
|
||||
else if (aKN==GEOMAlgo_KN_ARCCIRCLE) {
|
||||
DumpLocation (myLocation);
|
||||
DumpPosition (myPosition);
|
||||
printf(" Radius1 : %.3lf\n", myRadius1);
|
||||
myPnt1.Coord(aX, aY, aZ);
|
||||
printf(" Pnt1 : %.3lf %.3lf %.3lf\n", aX, aY, aZ);
|
||||
myPnt2.Coord(aX, aY, aZ);
|
||||
printf(" Pnt2 : %.3lf %.3lf %.3lf\n", aX, aY, aZ);
|
||||
}
|
||||
else if (aKN==GEOMAlgo_KN_ELLIPSE) {
|
||||
DumpLocation (myLocation);
|
||||
DumpPosition (myPosition);
|
||||
printf(" Radius1 : %.3lf\n", myRadius1);
|
||||
printf(" Radius2 : %.3lf\n", myRadius2);
|
||||
}
|
||||
else if (aKN==GEOMAlgo_KN_ARCELLIPSE) {
|
||||
DumpLocation (myLocation);
|
||||
DumpPosition (myPosition);
|
||||
printf(" Radius1 : %.3lf\n", myRadius1);
|
||||
printf(" Radius2 : %.3lf\n", myRadius2);
|
||||
myPnt1.Coord(aX, aY, aZ);
|
||||
printf(" Pnt1 : %.3lf %.3lf %.3lf\n", aX, aY, aZ);
|
||||
myPnt2.Coord(aX, aY, aZ);
|
||||
printf(" Pnt2 : %.3lf %.3lf %.3lf\n", aX, aY, aZ);
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
//=======================================================================
|
||||
//function : DumpVertex
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfo::DumpVertex()const
|
||||
{
|
||||
printf(" *VERTEX\n");
|
||||
DumpLocation(myLocation);
|
||||
}
|
||||
//=======================================================================
|
||||
//function : DumpLocation
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void DumpLocation(const gp_Pnt& aP)
|
||||
{
|
||||
Standard_Real aX, aY, aZ;
|
||||
//
|
||||
aP.Coord(aX, aY, aZ);
|
||||
printf(" Location : %.3lf %.3lf %.3lf \n", aX, aY, aZ);
|
||||
}
|
||||
//=======================================================================
|
||||
//function : DumpDirection
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void DumpDirection(const gp_Dir& aD)
|
||||
{
|
||||
Standard_Real aX, aY, aZ;
|
||||
//
|
||||
aD.Coord(aX, aY, aZ);
|
||||
printf(" Direction: %.3lf %.3lf %.3lf \n", aX, aY, aZ);
|
||||
}
|
||||
//=======================================================================
|
||||
//function : DumpPosition
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void DumpPosition(const gp_Ax3& aAx3)
|
||||
{
|
||||
const gp_Dir& aDZ=aAx3.Axis().Direction();
|
||||
const gp_Dir& aDX=aAx3.XDirection();
|
||||
const gp_Dir& aDY=aAx3.YDirection();
|
||||
printf(" Position:\n");
|
||||
printf(" Axis: %.3lf %.3lf %.3lf \n", aDZ.X(), aDZ.Y(), aDZ.Z());
|
||||
printf(" X : %.3lf %.3lf %.3lf \n", aDX.X(), aDX.Y(), aDX.Z());
|
||||
printf(" Y : %.3lf %.3lf %.3lf \n", aDY.X(), aDY.Y(), aDY.Z());
|
||||
}
|
||||
//=======================================================================
|
||||
//function : DumpKindOfBounds
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void DumpKindOfBounds(const GEOMAlgo_KindOfBounds aKB)
|
||||
{
|
||||
char *pStr[]={
|
||||
"KB_UNKNOWN",
|
||||
"KB_TRIMMED",
|
||||
"KB_INFINITE"
|
||||
};
|
||||
int i;
|
||||
//
|
||||
i=(Standard_Integer)aKB;
|
||||
printf(" KindOfBounds: %s\n", pStr[i]);
|
||||
|
||||
}
|
||||
//=======================================================================
|
||||
//function : DumpKindOfClosed
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void DumpKindOfClosed(const GEOMAlgo_KindOfClosed aKC)
|
||||
{
|
||||
char *pStr[]={
|
||||
"KC_UNKNOWN",
|
||||
"KC_CLOSED",
|
||||
"KC_NOTCLOSED"
|
||||
};
|
||||
int i;
|
||||
//
|
||||
i=(Standard_Integer)aKC;
|
||||
printf(" KindOfClosed: %s\n", pStr[i]);
|
||||
|
||||
}
|
||||
//=======================================================================
|
||||
//function : DumpKindOfShape
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void DumpKindOfShape(const GEOMAlgo_KindOfShape aKS)
|
||||
{
|
||||
char *pStr[]={
|
||||
"KS_UNKNOWN",
|
||||
"KS_SPHERE",
|
||||
"KS_CYLINDER",
|
||||
"KS_BOX",
|
||||
"KS_TORUS",
|
||||
"KS_CONE",
|
||||
"KS_ELLIPSE",
|
||||
"KS_PLANE",
|
||||
"KS_CIRCLE",
|
||||
"KS_LINE",
|
||||
"KS_DEGENERATED"
|
||||
};
|
||||
int i;
|
||||
//
|
||||
i=(Standard_Integer)aKS;
|
||||
printf(" KindOfShape : %s\n", pStr[i]);
|
||||
}
|
||||
//=======================================================================
|
||||
//function : DumpKindOfName
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void DumpKindOfName(const GEOMAlgo_KindOfName aKS)
|
||||
{
|
||||
char *pStr[]={
|
||||
"KN_UNKNOWN",
|
||||
"KN_SPHERE",
|
||||
"KN_CYLINDER",
|
||||
"KN_TORUS",
|
||||
"KN_CONE",
|
||||
"KN_ELLIPSE",
|
||||
"KN_CIRCLE",
|
||||
"KN_PLANE",
|
||||
"KN_LINE",
|
||||
"KN_BOX",
|
||||
"KN_SEGMENT",
|
||||
"KN_ARCCIRCLE",
|
||||
"KN_POLYGON",
|
||||
"KN_POLYHEDRON",
|
||||
"KN_DISKCIRCLE",
|
||||
"KN_DISKELLIPSE",
|
||||
"KN_RECTANGLE",
|
||||
"KN_TRIANGLE",
|
||||
"KN_QUADRANGLE",
|
||||
"KN_ARCELLIPSE"
|
||||
};
|
||||
int i;
|
||||
//
|
||||
i=(Standard_Integer)aKS;
|
||||
printf(" KindOfName : %s\n", pStr[i]);
|
||||
}
|
272
src/GEOMAlgo/GEOMAlgo_ShapeInfo.hxx
Normal file
@ -0,0 +1,272 @@
|
||||
// File generated by CPPExt (Value)
|
||||
//
|
||||
// Copyright (C) 1991 - 2000 by
|
||||
// Matra Datavision SA. All rights reserved.
|
||||
//
|
||||
// Copyright (C) 2001 - 2004 by
|
||||
// Open CASCADE SA. All rights reserved.
|
||||
//
|
||||
// This file is part of the Open CASCADE Technology software.
|
||||
//
|
||||
// This software may be distributed and/or modified under the terms and
|
||||
// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
|
||||
// and appearing in the file LICENSE included in the packaging of this file.
|
||||
//
|
||||
// This software is distributed on an "AS IS" basis, without warranty of any
|
||||
// kind, and Open CASCADE SA hereby disclaims all such warranties,
|
||||
// including without limitation, any warranties of merchantability, fitness
|
||||
// for a particular purpose or non-infringement. Please see the License for
|
||||
// the specific terms and conditions governing rights and limitations under the
|
||||
// License.
|
||||
|
||||
#ifndef _GEOMAlgo_ShapeInfo_HeaderFile
|
||||
#define _GEOMAlgo_ShapeInfo_HeaderFile
|
||||
|
||||
#ifndef _TopAbs_ShapeEnum_HeaderFile
|
||||
#include <TopAbs_ShapeEnum.hxx>
|
||||
#endif
|
||||
#ifndef _Standard_Integer_HeaderFile
|
||||
#include <Standard_Integer.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_KindOfShape_HeaderFile
|
||||
#include <GEOMAlgo_KindOfShape.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_KindOfName_HeaderFile
|
||||
#include <GEOMAlgo_KindOfName.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_KindOfBounds_HeaderFile
|
||||
#include <GEOMAlgo_KindOfBounds.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_KindOfClosed_HeaderFile
|
||||
#include <GEOMAlgo_KindOfClosed.hxx>
|
||||
#endif
|
||||
#ifndef _gp_Pnt_HeaderFile
|
||||
#include <gp_Pnt.hxx>
|
||||
#endif
|
||||
#ifndef _gp_Dir_HeaderFile
|
||||
#include <gp_Dir.hxx>
|
||||
#endif
|
||||
#ifndef _gp_Ax3_HeaderFile
|
||||
#include <gp_Ax3.hxx>
|
||||
#endif
|
||||
#ifndef _Standard_Real_HeaderFile
|
||||
#include <Standard_Real.hxx>
|
||||
#endif
|
||||
class gp_Pnt;
|
||||
class gp_Dir;
|
||||
class gp_Ax2;
|
||||
class gp_Ax3;
|
||||
|
||||
|
||||
#ifndef _Standard_HeaderFile
|
||||
#include <Standard.hxx>
|
||||
#endif
|
||||
#ifndef _Standard_Macro_HeaderFile
|
||||
#include <Standard_Macro.hxx>
|
||||
#endif
|
||||
|
||||
|
||||
class GEOMAlgo_ShapeInfo {
|
||||
|
||||
public:
|
||||
|
||||
void* operator new(size_t,void* anAddress)
|
||||
{
|
||||
return anAddress;
|
||||
}
|
||||
void* operator new(size_t size)
|
||||
{
|
||||
return Standard::Allocate(size);
|
||||
}
|
||||
void operator delete(void *anAddress)
|
||||
{
|
||||
if (anAddress) Standard::Free((Standard_Address&)anAddress);
|
||||
}
|
||||
// Methods PUBLIC
|
||||
//
|
||||
|
||||
|
||||
Standard_EXPORT GEOMAlgo_ShapeInfo();
|
||||
Standard_EXPORT virtual ~GEOMAlgo_ShapeInfo();
|
||||
|
||||
|
||||
Standard_EXPORT void Reset() ;
|
||||
|
||||
|
||||
Standard_EXPORT void SetType(const TopAbs_ShapeEnum aType) ;
|
||||
|
||||
|
||||
Standard_EXPORT TopAbs_ShapeEnum Type() const;
|
||||
|
||||
|
||||
Standard_EXPORT void SetNbSubShapes(const TopAbs_ShapeEnum aType,const Standard_Integer aNb) ;
|
||||
|
||||
|
||||
Standard_EXPORT Standard_Integer NbSubShapes(const TopAbs_ShapeEnum aType) const;
|
||||
|
||||
|
||||
Standard_EXPORT void SetKindOfShape(const GEOMAlgo_KindOfShape aT) ;
|
||||
|
||||
|
||||
Standard_EXPORT GEOMAlgo_KindOfShape KindOfShape() const;
|
||||
|
||||
|
||||
Standard_EXPORT void SetKindOfName(const GEOMAlgo_KindOfName aT) ;
|
||||
|
||||
|
||||
Standard_EXPORT GEOMAlgo_KindOfName KindOfName() const;
|
||||
|
||||
|
||||
Standard_EXPORT void SetKindOfBounds(const GEOMAlgo_KindOfBounds aT) ;
|
||||
|
||||
|
||||
Standard_EXPORT GEOMAlgo_KindOfBounds KindOfBounds() const;
|
||||
|
||||
|
||||
Standard_EXPORT void SetKindOfClosed(const GEOMAlgo_KindOfClosed aT) ;
|
||||
|
||||
|
||||
Standard_EXPORT GEOMAlgo_KindOfClosed KindOfClosed() const;
|
||||
|
||||
|
||||
Standard_EXPORT void SetLocation(const gp_Pnt& aP) ;
|
||||
|
||||
|
||||
Standard_EXPORT const gp_Pnt& Location() const;
|
||||
|
||||
|
||||
Standard_EXPORT void SetDirection(const gp_Dir& aD) ;
|
||||
|
||||
|
||||
Standard_EXPORT const gp_Dir& Direction() const;
|
||||
|
||||
|
||||
Standard_EXPORT void SetPosition(const gp_Ax2& aAx2) ;
|
||||
|
||||
|
||||
Standard_EXPORT void SetPosition(const gp_Ax3& aAx3) ;
|
||||
|
||||
|
||||
Standard_EXPORT const gp_Ax3& Position() const;
|
||||
|
||||
|
||||
Standard_EXPORT void SetPnt1(const gp_Pnt& aP) ;
|
||||
|
||||
|
||||
Standard_EXPORT const gp_Pnt& Pnt1() const;
|
||||
|
||||
|
||||
Standard_EXPORT void SetPnt2(const gp_Pnt& aP) ;
|
||||
|
||||
|
||||
Standard_EXPORT const gp_Pnt& Pnt2() const;
|
||||
|
||||
|
||||
Standard_EXPORT void SetRadius1(const Standard_Real aR) ;
|
||||
|
||||
|
||||
Standard_EXPORT Standard_Real Radius1() const;
|
||||
|
||||
|
||||
Standard_EXPORT void SetRadius2(const Standard_Real aR) ;
|
||||
|
||||
|
||||
Standard_EXPORT Standard_Real Radius2() const;
|
||||
|
||||
|
||||
Standard_EXPORT void SetLength(const Standard_Real aL) ;
|
||||
|
||||
|
||||
Standard_EXPORT Standard_Real Length() const;
|
||||
|
||||
|
||||
Standard_EXPORT void SetWidth(const Standard_Real aW) ;
|
||||
|
||||
|
||||
Standard_EXPORT Standard_Real Width() const;
|
||||
|
||||
|
||||
Standard_EXPORT void SetHeight(const Standard_Real aH) ;
|
||||
|
||||
|
||||
Standard_EXPORT Standard_Real Height() const;
|
||||
|
||||
|
||||
Standard_EXPORT void Dump() const;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
// Methods PROTECTED
|
||||
//
|
||||
|
||||
|
||||
Standard_EXPORT void DumpVertex() const;
|
||||
|
||||
|
||||
Standard_EXPORT void DumpEdge() const;
|
||||
|
||||
|
||||
Standard_EXPORT void DumpWire() const;
|
||||
|
||||
|
||||
Standard_EXPORT void DumpFace() const;
|
||||
|
||||
|
||||
Standard_EXPORT void DumpShell() const;
|
||||
|
||||
|
||||
Standard_EXPORT void DumpSolid() const;
|
||||
|
||||
|
||||
Standard_EXPORT void DumpCompSolid() const;
|
||||
|
||||
|
||||
Standard_EXPORT void DumpCompound() const;
|
||||
|
||||
|
||||
// Fields PROTECTED
|
||||
//
|
||||
TopAbs_ShapeEnum myType;
|
||||
Standard_Integer myNbSubShapes[9];
|
||||
GEOMAlgo_KindOfShape myKindOfShape;
|
||||
GEOMAlgo_KindOfName myKindOfName;
|
||||
GEOMAlgo_KindOfBounds myKindOfBounds;
|
||||
GEOMAlgo_KindOfClosed myKindOfClosed;
|
||||
gp_Pnt myLocation;
|
||||
gp_Dir myDirection;
|
||||
gp_Ax3 myPosition;
|
||||
Standard_Real myRadius1;
|
||||
Standard_Real myRadius2;
|
||||
Standard_Real myLength;
|
||||
Standard_Real myWidth;
|
||||
Standard_Real myHeight;
|
||||
gp_Pnt myPnt1;
|
||||
gp_Pnt myPnt2;
|
||||
Standard_Integer myNbTypes;
|
||||
|
||||
|
||||
private:
|
||||
|
||||
// Methods PRIVATE
|
||||
//
|
||||
|
||||
|
||||
// Fields PRIVATE
|
||||
//
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// other Inline functions and methods (like "C++: function call" methods)
|
||||
//
|
||||
|
||||
|
||||
#endif
|
26
src/GEOMAlgo/GEOMAlgo_ShapeInfo.ixx
Normal file
@ -0,0 +1,26 @@
|
||||
// File generated by CPPExt (Value)
|
||||
//
|
||||
// Copyright (C) 1991 - 2000 by
|
||||
// Matra Datavision SA. All rights reserved.
|
||||
//
|
||||
// Copyright (C) 2001 - 2004 by
|
||||
// Open CASCADE SA. All rights reserved.
|
||||
//
|
||||
// This file is part of the Open CASCADE Technology software.
|
||||
//
|
||||
// This software may be distributed and/or modified under the terms and
|
||||
// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
|
||||
// and appearing in the file LICENSE included in the packaging of this file.
|
||||
//
|
||||
// This software is distributed on an "AS IS" basis, without warranty of any
|
||||
// kind, and Open CASCADE SA hereby disclaims all such warranties,
|
||||
// including without limitation, any warranties of merchantability, fitness
|
||||
// for a particular purpose or non-infringement. Please see the License for
|
||||
// the specific terms and conditions governing rights and limitations under the
|
||||
// License.
|
||||
|
||||
#include <GEOMAlgo_ShapeInfo.jxx>
|
||||
|
||||
|
||||
|
||||
|
15
src/GEOMAlgo/GEOMAlgo_ShapeInfo.jxx
Normal file
@ -0,0 +1,15 @@
|
||||
#ifndef _gp_Pnt_HeaderFile
|
||||
#include <gp_Pnt.hxx>
|
||||
#endif
|
||||
#ifndef _gp_Dir_HeaderFile
|
||||
#include <gp_Dir.hxx>
|
||||
#endif
|
||||
#ifndef _gp_Ax2_HeaderFile
|
||||
#include <gp_Ax2.hxx>
|
||||
#endif
|
||||
#ifndef _gp_Ax3_HeaderFile
|
||||
#include <gp_Ax3.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_ShapeInfo_HeaderFile
|
||||
#include <GEOMAlgo_ShapeInfo.hxx>
|
||||
#endif
|
132
src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.cdl
Normal file
@ -0,0 +1,132 @@
|
||||
-- File: GEOMAlgo_ShapeInfoFiller.cdl
|
||||
-- Created: Mon Apr 2 15:05:34 2007
|
||||
-- Author: Peter KURNEV
|
||||
-- <pkv@irinox>
|
||||
---Copyright: Matra Datavision 2007
|
||||
|
||||
|
||||
class ShapeInfoFiller from GEOMAlgo
|
||||
inherits Algo from GEOMAlgo
|
||||
|
||||
---Purpose:
|
||||
|
||||
uses
|
||||
Pln from gp,
|
||||
Sphere from gp,
|
||||
Cylinder from gp,
|
||||
Cone from gp,
|
||||
Torus from gp,
|
||||
|
||||
Shape from TopoDS,
|
||||
Face from TopoDS,
|
||||
Solid from TopoDS,
|
||||
|
||||
ShapeInfo from GEOMAlgo,
|
||||
KindOfName from GEOMAlgo,
|
||||
IndexedDataMapOfShapeShapeInfo from GEOMAlgo
|
||||
|
||||
--raises
|
||||
|
||||
is
|
||||
|
||||
Create
|
||||
returns ShapeInfoFiller from GEOMAlgo;
|
||||
---C++: alias "Standard_EXPORT virtual ~GEOMAlgo_ShapeInfoFiller();"
|
||||
|
||||
SetShape(me:out;
|
||||
aS:Shape from TopoDS);
|
||||
|
||||
Shape(me)
|
||||
returns Shape from TopoDS;
|
||||
---C++:return const &
|
||||
|
||||
SetTolerance(me:out;
|
||||
aT:Real from Standard);
|
||||
|
||||
Tolerance(me)
|
||||
returns Real from Standard;
|
||||
|
||||
Info(me)
|
||||
returns ShapeInfo from GEOMAlgo;
|
||||
---C++:return const &
|
||||
|
||||
Info(me;
|
||||
aS:Shape from TopoDS)
|
||||
returns ShapeInfo from GEOMAlgo;
|
||||
---C++:return const &
|
||||
|
||||
Perform(me:out)
|
||||
is redefined;
|
||||
|
||||
CheckData(me:out)
|
||||
is redefined protected;
|
||||
|
||||
FillNbSubShapes(me:out;
|
||||
aS:Shape from TopoDS;
|
||||
aInfo: out ShapeInfo from GEOMAlgo)
|
||||
is protected;
|
||||
|
||||
FillSubShapes(me:out;
|
||||
aS:Shape from TopoDS)
|
||||
is protected;
|
||||
|
||||
FillShape(me:out;
|
||||
aS:Shape from TopoDS)
|
||||
is protected;
|
||||
|
||||
FillVertex(me:out;
|
||||
aS:Shape from TopoDS)
|
||||
is protected;
|
||||
|
||||
FillEdge(me:out;
|
||||
aS:Shape from TopoDS)
|
||||
is protected;
|
||||
|
||||
FillFace(me:out;
|
||||
aS:Shape from TopoDS)
|
||||
is protected;
|
||||
|
||||
FillSolid(me:out;
|
||||
aS:Shape from TopoDS)
|
||||
is protected;
|
||||
|
||||
FillContainer(me:out;
|
||||
aS:Shape from TopoDS)
|
||||
is protected;
|
||||
|
||||
|
||||
FillDetails(me:out;
|
||||
aF:Face from TopoDS;
|
||||
aPln:Pln from gp)
|
||||
is protected;
|
||||
|
||||
FillDetails(me:out;
|
||||
aF:Face from TopoDS;
|
||||
aSph:Sphere from gp)
|
||||
is protected;
|
||||
|
||||
FillDetails(me:out;
|
||||
aF:Face from TopoDS;
|
||||
aCyl:Cylinder from gp)
|
||||
is protected;
|
||||
|
||||
FillDetails(me:out;
|
||||
aF:Face from TopoDS;
|
||||
aCone:Cone from gp)
|
||||
is protected;
|
||||
|
||||
FillDetails(me:out;
|
||||
aF:Face from TopoDS;
|
||||
aTorus:Torus from gp)
|
||||
is protected;
|
||||
|
||||
FillDetails(me:out;
|
||||
aS:Solid from TopoDS)
|
||||
is protected;
|
||||
|
||||
fields
|
||||
myShape : Shape from TopoDS is protected;
|
||||
myEmptyInfo : ShapeInfo from GEOMAlgo is protected;
|
||||
myMapInfo : IndexedDataMapOfShapeShapeInfo from GEOMAlgo is protected;
|
||||
myTolerance : Real from Standard is protected;
|
||||
end ShapeInfoFiller;
|
792
src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.cxx
Normal file
@ -0,0 +1,792 @@
|
||||
#include <GEOMAlgo_ShapeInfoFiller.ixx>
|
||||
|
||||
#include <Precision.hxx>
|
||||
|
||||
#include <gp_Lin.hxx>
|
||||
#include <gp_Pnt.hxx>
|
||||
#include <gp_Dir.hxx>
|
||||
|
||||
#include <Geom_Curve.hxx>
|
||||
#include <GeomAdaptor_Curve.hxx>
|
||||
|
||||
#include <TopoDS_Vertex.hxx>
|
||||
#include <TopoDS.hxx>
|
||||
#include <TopoDS_Edge.hxx>
|
||||
|
||||
#include <BRep_Tool.hxx>
|
||||
#include <TopExp.hxx>
|
||||
|
||||
#include <TopTools_IndexedMapOfShape.hxx>
|
||||
#include <gp_Circ.hxx>
|
||||
#include <gp_Ax2.hxx>
|
||||
#include <gp_Elips.hxx>
|
||||
#include <TopoDS_Iterator.hxx>
|
||||
#include <TopoDS_Wire.hxx>
|
||||
#include <TopExp.hxx>
|
||||
#include <Geom_Surface.hxx>
|
||||
#include <TopoDS_Face.hxx>
|
||||
#include <GeomAdaptor_Surface.hxx>
|
||||
#include <gp_Pln.hxx>
|
||||
#include <gp_Sphere.hxx>
|
||||
#include <gp_Ax3.hxx>
|
||||
#include <BRepTools.hxx>
|
||||
#include <gp_Cylinder.hxx>
|
||||
#include <gp_Cone.hxx>
|
||||
#include <gp_Torus.hxx>
|
||||
#include <TopoDS_Solid.hxx>
|
||||
|
||||
|
||||
|
||||
|
||||
static
|
||||
Standard_Boolean IsAllowedType(const GeomAbs_CurveType aCT);
|
||||
static
|
||||
Standard_Boolean IsAllowedType(const GeomAbs_SurfaceType aST);
|
||||
static
|
||||
Standard_Integer NbWires(const TopoDS_Face& aF);
|
||||
static
|
||||
Standard_Integer NbShells(const TopoDS_Solid& aS);
|
||||
|
||||
//=======================================================================
|
||||
//function :
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
GEOMAlgo_ShapeInfoFiller::GEOMAlgo_ShapeInfoFiller()
|
||||
:
|
||||
GEOMAlgo_Algo()
|
||||
{
|
||||
myTolerance=0.0001;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : ~
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
GEOMAlgo_ShapeInfoFiller::~GEOMAlgo_ShapeInfoFiller()
|
||||
{
|
||||
}
|
||||
//=======================================================================
|
||||
//function : SetTolerance
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfoFiller::SetTolerance(const Standard_Real aT)
|
||||
{
|
||||
myTolerance=aT;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : Tolerance
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Standard_Real GEOMAlgo_ShapeInfoFiller::Tolerance()const
|
||||
{
|
||||
return myTolerance;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : SetShape
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfoFiller::SetShape(const TopoDS_Shape& aS)
|
||||
{
|
||||
myShape=aS;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : Shape
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
const TopoDS_Shape& GEOMAlgo_ShapeInfoFiller::Shape() const
|
||||
{
|
||||
return myShape;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : Info
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
const GEOMAlgo_ShapeInfo& GEOMAlgo_ShapeInfoFiller::Info() const
|
||||
{
|
||||
return Info(myShape);
|
||||
}
|
||||
//=======================================================================
|
||||
//function : Info
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
const GEOMAlgo_ShapeInfo& GEOMAlgo_ShapeInfoFiller::Info(const TopoDS_Shape& aS) const
|
||||
{
|
||||
if (!aS.IsNull()) {
|
||||
if (myMapInfo.Contains(aS)) {
|
||||
const GEOMAlgo_ShapeInfo& aInfo=myMapInfo.FindFromKey(aS);
|
||||
return aInfo;
|
||||
}
|
||||
}
|
||||
return myEmptyInfo;
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : CheckData
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfoFiller::CheckData()
|
||||
{
|
||||
myErrorStatus=0;
|
||||
//
|
||||
if (myShape.IsNull()) {
|
||||
myErrorStatus=10;
|
||||
return;
|
||||
}
|
||||
}
|
||||
//=======================================================================
|
||||
//function : Perform
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfoFiller::Perform()
|
||||
{
|
||||
myErrorStatus=0;
|
||||
//
|
||||
myMapInfo.Clear();
|
||||
//
|
||||
CheckData();
|
||||
if (myErrorStatus) {
|
||||
return;
|
||||
}
|
||||
//
|
||||
FillShape(myShape);
|
||||
}
|
||||
//=======================================================================
|
||||
//function :FillShape
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfoFiller::FillShape(const TopoDS_Shape& aS)
|
||||
{
|
||||
TopAbs_ShapeEnum aType;
|
||||
//
|
||||
aType=aS.ShapeType();
|
||||
switch(aType) {
|
||||
//
|
||||
case TopAbs_VERTEX:
|
||||
FillVertex(aS);
|
||||
break;
|
||||
//
|
||||
case TopAbs_EDGE:
|
||||
FillEdge(aS);
|
||||
break;
|
||||
//
|
||||
case TopAbs_FACE:
|
||||
FillFace(aS);
|
||||
break;
|
||||
//
|
||||
case TopAbs_SOLID:
|
||||
FillSolid(aS);
|
||||
break;
|
||||
//
|
||||
case TopAbs_WIRE:
|
||||
case TopAbs_SHELL:
|
||||
case TopAbs_COMPSOLID:
|
||||
case TopAbs_COMPOUND:
|
||||
FillContainer(aS);
|
||||
break;
|
||||
//
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
//=======================================================================
|
||||
//function :FillSubShapes
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfoFiller::FillSubShapes(const TopoDS_Shape& aS)
|
||||
{
|
||||
TopoDS_Iterator aIt;
|
||||
//
|
||||
aIt.Initialize(aS);
|
||||
for (; aIt.More(); aIt.Next()){
|
||||
const TopoDS_Shape& aSx=aIt.Value();
|
||||
FillShape(aSx);
|
||||
}
|
||||
}
|
||||
//=======================================================================
|
||||
//function : FillContainer
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfoFiller::FillContainer(const TopoDS_Shape& aS)
|
||||
{
|
||||
myErrorStatus=0;
|
||||
//
|
||||
Standard_Boolean bIsClosed;
|
||||
TopAbs_ShapeEnum aType;
|
||||
GEOMAlgo_KindOfClosed aKC;
|
||||
//
|
||||
aType=aS.ShapeType();
|
||||
//----------------------------------------------------
|
||||
if (myMapInfo.Contains(aS)) {
|
||||
return;
|
||||
}
|
||||
else {
|
||||
GEOMAlgo_ShapeInfo aInfoX;
|
||||
myMapInfo.Add(aS, aInfoX);
|
||||
}
|
||||
GEOMAlgo_ShapeInfo& aInfo=myMapInfo.ChangeFromKey(aS);
|
||||
//----------------------------------------------------
|
||||
aInfo.SetType(aType);
|
||||
FillNbSubShapes(aS, aInfo);
|
||||
//
|
||||
if (aType==TopAbs_SHELL) {
|
||||
bIsClosed=BRep_Tool::IsClosed(aS);
|
||||
aKC=(bIsClosed) ? GEOMAlgo_KC_CLOSED :GEOMAlgo_KC_NOTCLOSED;
|
||||
aInfo.SetKindOfClosed(aKC);
|
||||
}
|
||||
else if (aType==TopAbs_WIRE) {
|
||||
TopoDS_Wire aW;
|
||||
TopoDS_Vertex aV1, aV2;
|
||||
//
|
||||
aW=TopoDS::Wire(aS);
|
||||
TopExp::Vertices(aW, aV1, aV2);
|
||||
//
|
||||
bIsClosed=aV1.IsSame(aV2);
|
||||
aKC=(bIsClosed) ? GEOMAlgo_KC_CLOSED :GEOMAlgo_KC_NOTCLOSED;
|
||||
aInfo.SetKindOfClosed(aKC);
|
||||
}
|
||||
//
|
||||
FillSubShapes(aS);
|
||||
}
|
||||
//=======================================================================
|
||||
//function : FillSolid
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfoFiller::FillSolid(const TopoDS_Shape& aS)
|
||||
{
|
||||
Standard_Integer aNbShells;
|
||||
TopoDS_Solid aSd;
|
||||
//
|
||||
myErrorStatus=0;
|
||||
//----------------------------------------------------
|
||||
if (myMapInfo.Contains(aS)) {
|
||||
return;
|
||||
}
|
||||
else {
|
||||
GEOMAlgo_ShapeInfo aInfoX;
|
||||
myMapInfo.Add(aS, aInfoX);
|
||||
}
|
||||
GEOMAlgo_ShapeInfo& aInfo=myMapInfo.ChangeFromKey(aS);
|
||||
//----------------------------------------------------
|
||||
aInfo.SetType(TopAbs_SOLID);
|
||||
FillNbSubShapes(aS, aInfo);
|
||||
FillSubShapes(aS);
|
||||
//
|
||||
aSd=TopoDS::Solid(aS);
|
||||
//
|
||||
aNbShells=NbShells(aSd);
|
||||
if (aNbShells>1) {
|
||||
return;
|
||||
}
|
||||
//
|
||||
FillDetails(aSd);
|
||||
}
|
||||
//=======================================================================
|
||||
//function :FillFace
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfoFiller::FillFace(const TopoDS_Shape& aS)
|
||||
{
|
||||
myErrorStatus=0;
|
||||
//
|
||||
Standard_Boolean bIsAllowedType;
|
||||
Standard_Integer aNbWires;//, iRet
|
||||
Standard_Boolean bInf, bInfU1, bInfU2, bInfV1, bInfV2;
|
||||
Standard_Real aUMin, aUMax, aVMin, aVMax, aR1, aR2;
|
||||
gp_Pnt aP0;
|
||||
gp_Dir aDN;
|
||||
gp_Ax3 aAx3;
|
||||
GeomAbs_SurfaceType aST;
|
||||
Handle(Geom_Surface) aSurf;
|
||||
TopoDS_Face aF;
|
||||
//GEOMAlgo_KindOfName aKindOfName;
|
||||
//----------------------------------------------------
|
||||
if (myMapInfo.Contains(aS)) {
|
||||
return;
|
||||
}
|
||||
else {
|
||||
GEOMAlgo_ShapeInfo aInfoX;
|
||||
myMapInfo.Add(aS, aInfoX);
|
||||
}
|
||||
GEOMAlgo_ShapeInfo& aInfo=myMapInfo.ChangeFromKey(aS);
|
||||
//----------------------------------------------------
|
||||
aInfo.SetType(TopAbs_FACE);
|
||||
//
|
||||
FillNbSubShapes(aS, aInfo);
|
||||
//
|
||||
FillSubShapes(aS);
|
||||
//
|
||||
aF=TopoDS::Face(aS);
|
||||
//
|
||||
aNbWires=NbWires(aF);
|
||||
if (aNbWires>1) {
|
||||
return;
|
||||
}
|
||||
//
|
||||
aSurf=BRep_Tool::Surface(aF);
|
||||
GeomAdaptor_Surface aGAS(aSurf);
|
||||
aST=aGAS.GetType();
|
||||
bIsAllowedType=IsAllowedType(aST);
|
||||
if (!bIsAllowedType) {
|
||||
return;
|
||||
}
|
||||
//
|
||||
// 1. Plane
|
||||
if (aST==GeomAbs_Plane) {
|
||||
gp_Pln aPln;
|
||||
//
|
||||
aPln=aGAS.Plane();
|
||||
aP0=aPln.Location();
|
||||
aAx3=aPln.Position();
|
||||
//
|
||||
aInfo.SetKindOfShape(GEOMAlgo_KS_PLANE);
|
||||
aInfo.SetKindOfClosed(GEOMAlgo_KC_NOTCLOSED);
|
||||
aInfo.SetLocation(aP0);
|
||||
aInfo.SetPosition(aAx3);
|
||||
//
|
||||
//aSurf->Bounds(aUMin, aUMax, aVMin, aVMax);
|
||||
BRepTools::UVBounds(aF, aUMin, aUMax, aVMin, aVMax);
|
||||
bInfU1=Precision::IsNegativeInfinite(aUMin);
|
||||
bInfU2=Precision::IsPositiveInfinite(aUMax);
|
||||
bInfV1=Precision::IsNegativeInfinite(aVMin);
|
||||
bInfV2=Precision::IsPositiveInfinite(aVMax);
|
||||
//
|
||||
bInf=(bInfU1 || bInfU2 || bInfV1 || bInfV2);
|
||||
if (bInf) {
|
||||
aInfo.SetKindOfBounds(GEOMAlgo_KB_INFINITE);
|
||||
}
|
||||
else {
|
||||
aInfo.SetKindOfBounds(GEOMAlgo_KB_TRIMMED);
|
||||
}
|
||||
//
|
||||
FillDetails(aF, aPln);
|
||||
}// if (aCT==GeomAbs_Line) {
|
||||
//
|
||||
// 2. Sphere
|
||||
else if (aST==GeomAbs_Sphere) {
|
||||
gp_Sphere aSphere;
|
||||
//
|
||||
aSphere=aGAS.Sphere();
|
||||
aP0=aSphere.Location();
|
||||
aAx3=aSphere.Position();
|
||||
aR1=aSphere.Radius();
|
||||
//
|
||||
aInfo.SetKindOfShape(GEOMAlgo_KS_SPHERE);
|
||||
aInfo.SetLocation(aP0);
|
||||
aInfo.SetPosition(aAx3);
|
||||
aInfo.SetRadius1(aR1);
|
||||
//
|
||||
aInfo.SetKindOfBounds(GEOMAlgo_KB_TRIMMED);
|
||||
aInfo.SetKindOfClosed(GEOMAlgo_KC_CLOSED);
|
||||
//
|
||||
FillDetails(aF, aSphere);
|
||||
}// else if (aST==GeomAbs_Sphere) {
|
||||
//
|
||||
// 3. Cylinder
|
||||
else if (aST==GeomAbs_Cylinder) {
|
||||
gp_Cylinder aCyl;
|
||||
//
|
||||
aCyl=aGAS.Cylinder();
|
||||
aP0=aCyl.Location();
|
||||
aAx3=aCyl.Position();
|
||||
aR1=aCyl.Radius();
|
||||
//
|
||||
aInfo.SetKindOfShape(GEOMAlgo_KS_CYLINDER);
|
||||
aInfo.SetLocation(aP0);
|
||||
aInfo.SetPosition(aAx3);
|
||||
aInfo.SetRadius1(aR1);
|
||||
//
|
||||
BRepTools::UVBounds(aF, aUMin, aUMax, aVMin, aVMax);
|
||||
bInfU1=Precision::IsNegativeInfinite(aUMin);
|
||||
bInfU2=Precision::IsPositiveInfinite(aUMax);
|
||||
bInfV1=Precision::IsNegativeInfinite(aVMin);
|
||||
bInfV2=Precision::IsPositiveInfinite(aVMax);
|
||||
//
|
||||
bInf=(bInfU1 || bInfU2 || bInfV1 || bInfV2);
|
||||
if (bInf) {
|
||||
aInfo.SetKindOfBounds(GEOMAlgo_KB_INFINITE);
|
||||
}
|
||||
else {
|
||||
aInfo.SetKindOfBounds(GEOMAlgo_KB_TRIMMED);
|
||||
}
|
||||
FillDetails(aF, aCyl);
|
||||
}
|
||||
//
|
||||
// 4. Cone
|
||||
else if (aST==GeomAbs_Cone) {
|
||||
gp_Cone aCone;
|
||||
//
|
||||
aCone=aGAS.Cone();
|
||||
aP0=aCone.Location();
|
||||
aAx3=aCone.Position();
|
||||
//aR1=aCyl.Radius();
|
||||
//
|
||||
aInfo.SetKindOfShape(GEOMAlgo_KS_CONE);
|
||||
aInfo.SetLocation(aP0);
|
||||
aInfo.SetPosition(aAx3);
|
||||
//aInfo.SetRadius1(aR1);
|
||||
//
|
||||
BRepTools::UVBounds(aF, aUMin, aUMax, aVMin, aVMax);
|
||||
bInfU1=Precision::IsNegativeInfinite(aUMin);
|
||||
bInfU2=Precision::IsPositiveInfinite(aUMax);
|
||||
bInfV1=Precision::IsNegativeInfinite(aVMin);
|
||||
bInfV2=Precision::IsPositiveInfinite(aVMax);
|
||||
//
|
||||
bInf=(bInfU1 || bInfU2 || bInfV1 || bInfV2);
|
||||
if (bInf) {
|
||||
aInfo.SetKindOfBounds(GEOMAlgo_KB_INFINITE);
|
||||
}
|
||||
else {
|
||||
aInfo.SetKindOfBounds(GEOMAlgo_KB_TRIMMED);
|
||||
}
|
||||
FillDetails(aF, aCone);
|
||||
}
|
||||
//
|
||||
// 5. Torus
|
||||
else if (aST==GeomAbs_Torus) {
|
||||
gp_Torus aTorus;
|
||||
//
|
||||
aTorus=aGAS.Torus();
|
||||
aP0=aTorus.Location();
|
||||
aAx3=aTorus.Position();
|
||||
aR1=aTorus.MajorRadius();
|
||||
aR2=aTorus.MinorRadius();
|
||||
//
|
||||
aInfo.SetKindOfShape(GEOMAlgo_KS_TORUS);
|
||||
aInfo.SetLocation(aP0);
|
||||
aInfo.SetPosition(aAx3);
|
||||
aInfo.SetRadius1(aR1);
|
||||
aInfo.SetRadius2(aR2);
|
||||
//
|
||||
aInfo.SetKindOfBounds(GEOMAlgo_KB_TRIMMED);
|
||||
|
||||
FillDetails(aF, aTorus);
|
||||
}
|
||||
}
|
||||
//=======================================================================
|
||||
//function :FillEdge
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfoFiller::FillEdge(const TopoDS_Shape& aS)
|
||||
{
|
||||
myErrorStatus=0;
|
||||
//
|
||||
Standard_Boolean bDegenerated, bIsAllowedType;
|
||||
Standard_Integer aNbV;
|
||||
Standard_Real aR1, aR2;
|
||||
gp_Pnt aP, aP1, aP2, aPc;
|
||||
gp_Dir aD;
|
||||
gp_Ax2 aAx2;
|
||||
Standard_Real aT1, aT2;
|
||||
GeomAbs_CurveType aCT;
|
||||
Handle(Geom_Curve) aC3D;
|
||||
TopoDS_Edge aE;
|
||||
//----------------------------------------------------
|
||||
if (myMapInfo.Contains(aS)) {
|
||||
return;
|
||||
}
|
||||
else {
|
||||
GEOMAlgo_ShapeInfo aInfoX;
|
||||
myMapInfo.Add(aS, aInfoX);
|
||||
}
|
||||
GEOMAlgo_ShapeInfo& aInfo=myMapInfo.ChangeFromKey(aS);
|
||||
//----------------------------------------------------
|
||||
aInfo.SetType(TopAbs_EDGE);
|
||||
//
|
||||
FillNbSubShapes(aS, aInfo);
|
||||
//
|
||||
aE=TopoDS::Edge(aS);
|
||||
//
|
||||
bDegenerated=BRep_Tool::Degenerated(aE);
|
||||
if (bDegenerated) {
|
||||
aInfo.SetKindOfShape(GEOMAlgo_KS_DEGENERATED);
|
||||
FillSubShapes(aS);
|
||||
return;
|
||||
}
|
||||
//
|
||||
aC3D=BRep_Tool::Curve(aE, aT1, aT2);
|
||||
GeomAdaptor_Curve aGAC(aC3D);
|
||||
aCT=aGAC.GetType();
|
||||
bIsAllowedType=IsAllowedType(aCT);
|
||||
if (!bIsAllowedType) {
|
||||
FillSubShapes(aS);
|
||||
return;
|
||||
}
|
||||
// Line
|
||||
if (aCT==GeomAbs_Line) {
|
||||
Standard_Boolean bInf1, bInf2;
|
||||
Standard_Real aLength;
|
||||
gp_Lin aLin;
|
||||
gp_XYZ aXYZ1, aXYZ2, aXYZc;
|
||||
//
|
||||
aLin=aGAC.Line();
|
||||
aP=aLin.Location();
|
||||
aD=aLin.Direction();
|
||||
//
|
||||
aInfo.SetKindOfShape(GEOMAlgo_KS_LINE);
|
||||
aInfo.SetKindOfClosed(GEOMAlgo_KC_NOTCLOSED);
|
||||
aInfo.SetLocation(aP);
|
||||
aInfo.SetDirection(aD);
|
||||
//
|
||||
bInf1=Precision::IsNegativeInfinite(aT1);
|
||||
bInf2=Precision::IsPositiveInfinite(aT2);
|
||||
if (bInf1||bInf2) {
|
||||
aInfo.SetKindOfBounds(GEOMAlgo_KB_INFINITE);
|
||||
aInfo.SetKindOfName(GEOMAlgo_KN_LINE);
|
||||
}
|
||||
else {
|
||||
aInfo.SetKindOfBounds(GEOMAlgo_KB_TRIMMED);
|
||||
aInfo.SetKindOfName(GEOMAlgo_KN_SEGMENT);
|
||||
aGAC.D0(aT1, aP1);
|
||||
aGAC.D0(aT2, aP2);
|
||||
aInfo.SetPnt1(aP1);
|
||||
aInfo.SetPnt2(aP2);
|
||||
//
|
||||
aLength=aP1.Distance(aP2);
|
||||
aXYZ1=aP1.XYZ();
|
||||
aXYZ2=aP2.XYZ();
|
||||
aXYZc=aXYZ1+aXYZ2;
|
||||
aXYZc.Multiply(0.5);
|
||||
//
|
||||
aPc.SetXYZ(aXYZc);
|
||||
gp_Vec aVec(aPc, aP2);
|
||||
gp_Dir aDir(aVec);
|
||||
//
|
||||
aInfo.SetLocation(aPc);
|
||||
aInfo.SetDirection(aDir);
|
||||
aInfo.SetLength(aLength);
|
||||
}
|
||||
}// if (aCT==GeomAbs_Line) {
|
||||
//
|
||||
// Circle
|
||||
else if (aCT==GeomAbs_Circle) {
|
||||
gp_Circ aCirc;
|
||||
//
|
||||
aCirc=aGAC.Circle();
|
||||
aP=aCirc.Location();
|
||||
aAx2=aCirc.Position();
|
||||
aR1=aCirc.Radius();
|
||||
//
|
||||
aInfo.SetKindOfShape(GEOMAlgo_KS_CIRCLE);
|
||||
aInfo.SetLocation(aP);
|
||||
aInfo.SetPosition(aAx2);
|
||||
aInfo.SetRadius1(aR1);
|
||||
//
|
||||
aNbV=aInfo.NbSubShapes(TopAbs_VERTEX);
|
||||
if (!aNbV) {
|
||||
myErrorStatus=11; // circle edge without vertices
|
||||
return;
|
||||
}
|
||||
aInfo.SetKindOfBounds(GEOMAlgo_KB_TRIMMED);
|
||||
aGAC.D0(aT1, aP1);
|
||||
aGAC.D0(aT2, aP2);
|
||||
aInfo.SetPnt1(aP1);
|
||||
aInfo.SetPnt2(aP2);
|
||||
//
|
||||
if (aNbV==1) {
|
||||
aInfo.SetKindOfClosed(GEOMAlgo_KC_CLOSED);
|
||||
aInfo.SetKindOfName(GEOMAlgo_KN_CIRCLE);
|
||||
}
|
||||
else {
|
||||
aInfo.SetKindOfClosed(GEOMAlgo_KC_NOTCLOSED);
|
||||
aInfo.SetKindOfName(GEOMAlgo_KN_ARCCIRCLE);
|
||||
//
|
||||
gp_Vec aVecX(aP, aP1);
|
||||
gp_Dir aDirX(aVecX);
|
||||
gp_Ax2 aAx2new(aP, aAx2.Direction(), aDirX);
|
||||
aInfo.SetPosition(aAx2new);
|
||||
}
|
||||
}// else if (aCT==GeomAbs_Circle) {
|
||||
//
|
||||
// Ellipse
|
||||
else if (aCT==GeomAbs_Ellipse) {
|
||||
gp_Elips aElips;
|
||||
//
|
||||
aElips=aGAC.Ellipse();
|
||||
aP=aElips.Location();
|
||||
aAx2=aElips.Position();
|
||||
aR1=aElips.MajorRadius();
|
||||
aR2=aElips.MinorRadius();
|
||||
//
|
||||
aInfo.SetKindOfShape(GEOMAlgo_KS_ELLIPSE);
|
||||
aInfo.SetLocation(aP);
|
||||
aInfo.SetPosition(aAx2);
|
||||
aInfo.SetRadius1(aR1);
|
||||
aInfo.SetRadius2(aR2);
|
||||
//
|
||||
aNbV=aInfo.NbSubShapes(TopAbs_VERTEX);
|
||||
if (!aNbV) {
|
||||
myErrorStatus=11; // ellipse edge without vertices
|
||||
return;
|
||||
}
|
||||
aInfo.SetKindOfBounds(GEOMAlgo_KB_TRIMMED);
|
||||
aGAC.D0(aT1, aP1);
|
||||
aGAC.D0(aT2, aP2);
|
||||
aInfo.SetPnt1(aP1);
|
||||
aInfo.SetPnt2(aP2);
|
||||
//
|
||||
if (aNbV==1) {
|
||||
aInfo.SetKindOfClosed(GEOMAlgo_KC_CLOSED);
|
||||
aInfo.SetKindOfName(GEOMAlgo_KN_ELLIPSE);
|
||||
}
|
||||
else {
|
||||
aInfo.SetKindOfClosed(GEOMAlgo_KC_NOTCLOSED);
|
||||
aInfo.SetKindOfName(GEOMAlgo_KN_ARCELLIPSE);
|
||||
//
|
||||
gp_Vec aVecX(aP, aP1);
|
||||
gp_Dir aDirX(aVecX);
|
||||
gp_Ax2 aAx2new(aP, aAx2.Direction(), aDirX);
|
||||
aInfo.SetPosition(aAx2new);
|
||||
}
|
||||
}// else if (aCT==GeomAbs_Ellipse) {
|
||||
//
|
||||
FillSubShapes(aS);
|
||||
}
|
||||
//=======================================================================
|
||||
//function :FillVertex
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfoFiller::FillVertex(const TopoDS_Shape& aS)
|
||||
{
|
||||
myErrorStatus=0;
|
||||
//
|
||||
gp_Pnt aP;
|
||||
TopoDS_Vertex aV;
|
||||
//
|
||||
if (myMapInfo.Contains(aS)) {
|
||||
return;
|
||||
}
|
||||
else {
|
||||
GEOMAlgo_ShapeInfo aInfoX;
|
||||
myMapInfo.Add(aS, aInfoX);
|
||||
}
|
||||
GEOMAlgo_ShapeInfo& aInfo=myMapInfo.ChangeFromKey(aS);
|
||||
//
|
||||
aV=TopoDS::Vertex(aS);
|
||||
aP=BRep_Tool::Pnt(aV);
|
||||
//
|
||||
aInfo.SetType(TopAbs_VERTEX);
|
||||
aInfo.SetLocation(aP);
|
||||
myMapInfo.Add(aS, aInfo);
|
||||
}
|
||||
//=======================================================================
|
||||
//function : FillNbSubshapes
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfoFiller::FillNbSubShapes(const TopoDS_Shape& aS,
|
||||
GEOMAlgo_ShapeInfo& aInfo)
|
||||
{
|
||||
myErrorStatus=0;
|
||||
//
|
||||
Standard_Integer i, aNb, aNbS;
|
||||
TopTools_IndexedMapOfShape aM;
|
||||
TopAbs_ShapeEnum aST;
|
||||
TopAbs_ShapeEnum aTypes[]= {
|
||||
//TopAbs_FACE, TopAbs_EDGE, TopAbs_VERTEX
|
||||
TopAbs_COMPOUND,
|
||||
TopAbs_COMPSOLID,
|
||||
TopAbs_SOLID,
|
||||
TopAbs_SHELL,
|
||||
TopAbs_FACE,
|
||||
TopAbs_WIRE,
|
||||
TopAbs_EDGE,
|
||||
TopAbs_VERTEX
|
||||
};
|
||||
|
||||
//
|
||||
aST=aS.ShapeType();
|
||||
aNb=sizeof(aTypes)/sizeof(aTypes[0]);
|
||||
for (i=0; i<aNb; ++i) {
|
||||
if (aTypes[i]==aST) {
|
||||
continue;
|
||||
}
|
||||
aM.Clear();
|
||||
TopExp::MapShapes(aS, aTypes[i], aM);
|
||||
aNbS=aM.Extent();
|
||||
aInfo.SetNbSubShapes(aTypes[i], aNbS);
|
||||
}
|
||||
}
|
||||
//=======================================================================
|
||||
//function :NbShells
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Standard_Integer NbShells(const TopoDS_Solid& aSd)
|
||||
{
|
||||
Standard_Integer iCnt;
|
||||
TopoDS_Iterator aIt;
|
||||
//
|
||||
iCnt=0;
|
||||
//
|
||||
aIt.Initialize(aSd);
|
||||
for (; aIt.More(); aIt.Next()){
|
||||
//const TopoDS_Shape& aSh=aIt.Value();
|
||||
++iCnt;
|
||||
}
|
||||
return iCnt;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : NbWires
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Standard_Integer NbWires(const TopoDS_Face& aF)
|
||||
{
|
||||
Standard_Integer iCnt;
|
||||
TopoDS_Iterator aIt;
|
||||
//
|
||||
iCnt=0;
|
||||
//
|
||||
aIt.Initialize(aF);
|
||||
for (; aIt.More(); aIt.Next()){
|
||||
//const TopoDS_Shape& aW=aIt.Value();
|
||||
++iCnt;
|
||||
}
|
||||
return iCnt;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : IsAllowedType
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Standard_Boolean IsAllowedType(const GeomAbs_CurveType aCT)
|
||||
{
|
||||
Standard_Boolean bRet;
|
||||
Standard_Integer i, aNb;
|
||||
GeomAbs_CurveType aTypes[]={
|
||||
GeomAbs_Line, GeomAbs_Circle, GeomAbs_Ellipse
|
||||
};
|
||||
//
|
||||
bRet=Standard_False;
|
||||
aNb=sizeof(aTypes)/sizeof(aTypes[0]);
|
||||
for (i=0; i<aNb && !bRet; ++i) {
|
||||
bRet=(aCT==aTypes[i]);
|
||||
}
|
||||
//
|
||||
return bRet;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : IsAllowedType
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
Standard_Boolean IsAllowedType(const GeomAbs_SurfaceType aST)
|
||||
{
|
||||
Standard_Boolean bRet;
|
||||
Standard_Integer i, aNb;
|
||||
GeomAbs_SurfaceType aTypes[]={
|
||||
GeomAbs_Plane, GeomAbs_Cylinder,
|
||||
GeomAbs_Cone, GeomAbs_Sphere,
|
||||
GeomAbs_Torus
|
||||
};
|
||||
//
|
||||
bRet=Standard_False;
|
||||
aNb=sizeof(aTypes)/sizeof(aTypes[0]);
|
||||
for (i=0; i<aNb && !bRet; ++i) {
|
||||
bRet=(aST==aTypes[i]);
|
||||
}
|
||||
//
|
||||
return bRet;
|
||||
}
|
||||
//
|
||||
// myErrorStatus
|
||||
//
|
||||
// 0 - Ok
|
||||
// 1 - The object is just initialized
|
||||
//
|
||||
// 10 - Null shape
|
||||
// 11 - circle/ellipse edge without vertices
|
186
src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.hxx
Normal file
@ -0,0 +1,186 @@
|
||||
// File generated by CPPExt (Value)
|
||||
//
|
||||
// Copyright (C) 1991 - 2000 by
|
||||
// Matra Datavision SA. All rights reserved.
|
||||
//
|
||||
// Copyright (C) 2001 - 2004 by
|
||||
// Open CASCADE SA. All rights reserved.
|
||||
//
|
||||
// This file is part of the Open CASCADE Technology software.
|
||||
//
|
||||
// This software may be distributed and/or modified under the terms and
|
||||
// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
|
||||
// and appearing in the file LICENSE included in the packaging of this file.
|
||||
//
|
||||
// This software is distributed on an "AS IS" basis, without warranty of any
|
||||
// kind, and Open CASCADE SA hereby disclaims all such warranties,
|
||||
// including without limitation, any warranties of merchantability, fitness
|
||||
// for a particular purpose or non-infringement. Please see the License for
|
||||
// the specific terms and conditions governing rights and limitations under the
|
||||
// License.
|
||||
|
||||
#ifndef _GEOMAlgo_ShapeInfoFiller_HeaderFile
|
||||
#define _GEOMAlgo_ShapeInfoFiller_HeaderFile
|
||||
|
||||
#ifndef _TopoDS_Shape_HeaderFile
|
||||
#include <TopoDS_Shape.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_ShapeInfo_HeaderFile
|
||||
#include <GEOMAlgo_ShapeInfo.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_IndexedDataMapOfShapeShapeInfo_HeaderFile
|
||||
#include <GEOMAlgo_IndexedDataMapOfShapeShapeInfo.hxx>
|
||||
#endif
|
||||
#ifndef _Standard_Real_HeaderFile
|
||||
#include <Standard_Real.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_Algo_HeaderFile
|
||||
#include <GEOMAlgo_Algo.hxx>
|
||||
#endif
|
||||
class TopoDS_Shape;
|
||||
class GEOMAlgo_ShapeInfo;
|
||||
class TopoDS_Face;
|
||||
class gp_Pln;
|
||||
class gp_Sphere;
|
||||
class gp_Cylinder;
|
||||
class gp_Cone;
|
||||
class gp_Torus;
|
||||
class TopoDS_Solid;
|
||||
|
||||
|
||||
#ifndef _Standard_HeaderFile
|
||||
#include <Standard.hxx>
|
||||
#endif
|
||||
#ifndef _Standard_Macro_HeaderFile
|
||||
#include <Standard_Macro.hxx>
|
||||
#endif
|
||||
|
||||
|
||||
class GEOMAlgo_ShapeInfoFiller : public GEOMAlgo_Algo {
|
||||
|
||||
public:
|
||||
|
||||
void* operator new(size_t,void* anAddress)
|
||||
{
|
||||
return anAddress;
|
||||
}
|
||||
void* operator new(size_t size)
|
||||
{
|
||||
return Standard::Allocate(size);
|
||||
}
|
||||
void operator delete(void *anAddress)
|
||||
{
|
||||
if (anAddress) Standard::Free((Standard_Address&)anAddress);
|
||||
}
|
||||
// Methods PUBLIC
|
||||
//
|
||||
|
||||
|
||||
Standard_EXPORT GEOMAlgo_ShapeInfoFiller();
|
||||
Standard_EXPORT virtual ~GEOMAlgo_ShapeInfoFiller();
|
||||
|
||||
|
||||
Standard_EXPORT void SetShape(const TopoDS_Shape& aS) ;
|
||||
|
||||
|
||||
Standard_EXPORT const TopoDS_Shape& Shape() const;
|
||||
|
||||
|
||||
Standard_EXPORT void SetTolerance(const Standard_Real aT) ;
|
||||
|
||||
|
||||
Standard_EXPORT Standard_Real Tolerance() const;
|
||||
|
||||
|
||||
Standard_EXPORT const GEOMAlgo_ShapeInfo& Info() const;
|
||||
|
||||
|
||||
Standard_EXPORT const GEOMAlgo_ShapeInfo& Info(const TopoDS_Shape& aS) const;
|
||||
|
||||
|
||||
Standard_EXPORT virtual void Perform() ;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
protected:
|
||||
|
||||
// Methods PROTECTED
|
||||
//
|
||||
|
||||
|
||||
Standard_EXPORT virtual void CheckData() ;
|
||||
|
||||
|
||||
Standard_EXPORT void FillNbSubShapes(const TopoDS_Shape& aS,GEOMAlgo_ShapeInfo& aInfo) ;
|
||||
|
||||
|
||||
Standard_EXPORT void FillSubShapes(const TopoDS_Shape& aS) ;
|
||||
|
||||
|
||||
Standard_EXPORT void FillShape(const TopoDS_Shape& aS) ;
|
||||
|
||||
|
||||
Standard_EXPORT void FillVertex(const TopoDS_Shape& aS) ;
|
||||
|
||||
|
||||
Standard_EXPORT void FillEdge(const TopoDS_Shape& aS) ;
|
||||
|
||||
|
||||
Standard_EXPORT void FillFace(const TopoDS_Shape& aS) ;
|
||||
|
||||
|
||||
Standard_EXPORT void FillSolid(const TopoDS_Shape& aS) ;
|
||||
|
||||
|
||||
Standard_EXPORT void FillContainer(const TopoDS_Shape& aS) ;
|
||||
|
||||
|
||||
Standard_EXPORT void FillDetails(const TopoDS_Face& aF,const gp_Pln& aPln) ;
|
||||
|
||||
|
||||
Standard_EXPORT void FillDetails(const TopoDS_Face& aF,const gp_Sphere& aSph) ;
|
||||
|
||||
|
||||
Standard_EXPORT void FillDetails(const TopoDS_Face& aF,const gp_Cylinder& aCyl) ;
|
||||
|
||||
|
||||
Standard_EXPORT void FillDetails(const TopoDS_Face& aF,const gp_Cone& aCone) ;
|
||||
|
||||
|
||||
Standard_EXPORT void FillDetails(const TopoDS_Face& aF,const gp_Torus& aTorus) ;
|
||||
|
||||
|
||||
Standard_EXPORT void FillDetails(const TopoDS_Solid& aS) ;
|
||||
|
||||
|
||||
// Fields PROTECTED
|
||||
//
|
||||
TopoDS_Shape myShape;
|
||||
GEOMAlgo_ShapeInfo myEmptyInfo;
|
||||
GEOMAlgo_IndexedDataMapOfShapeShapeInfo myMapInfo;
|
||||
Standard_Real myTolerance;
|
||||
|
||||
|
||||
private:
|
||||
|
||||
// Methods PRIVATE
|
||||
//
|
||||
|
||||
|
||||
// Fields PRIVATE
|
||||
//
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// other Inline functions and methods (like "C++: function call" methods)
|
||||
//
|
||||
|
||||
|
||||
#endif
|
26
src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.ixx
Normal file
@ -0,0 +1,26 @@
|
||||
// File generated by CPPExt (Value)
|
||||
//
|
||||
// Copyright (C) 1991 - 2000 by
|
||||
// Matra Datavision SA. All rights reserved.
|
||||
//
|
||||
// Copyright (C) 2001 - 2004 by
|
||||
// Open CASCADE SA. All rights reserved.
|
||||
//
|
||||
// This file is part of the Open CASCADE Technology software.
|
||||
//
|
||||
// This software may be distributed and/or modified under the terms and
|
||||
// conditions of the Open CASCADE Public License as defined by Open CASCADE SA
|
||||
// and appearing in the file LICENSE included in the packaging of this file.
|
||||
//
|
||||
// This software is distributed on an "AS IS" basis, without warranty of any
|
||||
// kind, and Open CASCADE SA hereby disclaims all such warranties,
|
||||
// including without limitation, any warranties of merchantability, fitness
|
||||
// for a particular purpose or non-infringement. Please see the License for
|
||||
// the specific terms and conditions governing rights and limitations under the
|
||||
// License.
|
||||
|
||||
#include <GEOMAlgo_ShapeInfoFiller.jxx>
|
||||
|
||||
|
||||
|
||||
|
30
src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller.jxx
Normal file
@ -0,0 +1,30 @@
|
||||
#ifndef _TopoDS_Shape_HeaderFile
|
||||
#include <TopoDS_Shape.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_ShapeInfo_HeaderFile
|
||||
#include <GEOMAlgo_ShapeInfo.hxx>
|
||||
#endif
|
||||
#ifndef _TopoDS_Face_HeaderFile
|
||||
#include <TopoDS_Face.hxx>
|
||||
#endif
|
||||
#ifndef _gp_Pln_HeaderFile
|
||||
#include <gp_Pln.hxx>
|
||||
#endif
|
||||
#ifndef _gp_Sphere_HeaderFile
|
||||
#include <gp_Sphere.hxx>
|
||||
#endif
|
||||
#ifndef _gp_Cylinder_HeaderFile
|
||||
#include <gp_Cylinder.hxx>
|
||||
#endif
|
||||
#ifndef _gp_Cone_HeaderFile
|
||||
#include <gp_Cone.hxx>
|
||||
#endif
|
||||
#ifndef _gp_Torus_HeaderFile
|
||||
#include <gp_Torus.hxx>
|
||||
#endif
|
||||
#ifndef _TopoDS_Solid_HeaderFile
|
||||
#include <TopoDS_Solid.hxx>
|
||||
#endif
|
||||
#ifndef _GEOMAlgo_ShapeInfoFiller_HeaderFile
|
||||
#include <GEOMAlgo_ShapeInfoFiller.hxx>
|
||||
#endif
|
738
src/GEOMAlgo/GEOMAlgo_ShapeInfoFiller_1.cxx
Normal file
@ -0,0 +1,738 @@
|
||||
#include <GEOMAlgo_ShapeInfoFiller.ixx>
|
||||
|
||||
#include <Precision.hxx>
|
||||
|
||||
#include <gp_Lin.hxx>
|
||||
#include <gp_XYZ.hxx>
|
||||
#include <gp_Ax1.hxx>
|
||||
#include <gp_Dir.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
#include <gp_Ax2.hxx>
|
||||
#include <gp_Ax3.hxx>
|
||||
|
||||
#include <ElCLib.hxx>
|
||||
|
||||
#include <TopoDS.hxx>
|
||||
#include <TopoDS_Vertex.hxx>
|
||||
#include <TopoDS_Edge.hxx>
|
||||
#include <TopoDS_Wire.hxx>
|
||||
#include <TopoDS_Face.hxx>
|
||||
#include <TopoDS_Iterator.hxx>
|
||||
|
||||
#include <BRep_Tool.hxx>
|
||||
|
||||
#include <TopExp.hxx>
|
||||
#include <TopExp_Explorer.hxx>
|
||||
|
||||
#include <TopTools_MapOfShape.hxx>
|
||||
#include <TopTools_IndexedMapOfShape.hxx>
|
||||
#include <BRepTools_WireExplorer.hxx>
|
||||
|
||||
#include <GEOMAlgo_ShapeInfo.hxx>
|
||||
#include <TColStd_MapOfInteger.hxx>
|
||||
#include <TColStd_IndexedMapOfInteger.hxx>
|
||||
|
||||
//=======================================================================
|
||||
//function : FillDetails
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfoFiller::FillDetails(const TopoDS_Solid& aSd)
|
||||
{
|
||||
Standard_Integer i, aNbF, aNbCyl, aNbCon, aNbPgn, aNbRct, aNbCrc, aNbX;
|
||||
TopoDS_Shape aFCyl, aFCon;
|
||||
TopTools_IndexedMapOfShape aMF;
|
||||
GEOMAlgo_KindOfName aKNF;
|
||||
//
|
||||
GEOMAlgo_ShapeInfo& aInfo=myMapInfo.ChangeFromKey(aSd);
|
||||
aInfo.SetKindOfName(GEOMAlgo_KN_UNKNOWN);
|
||||
//
|
||||
TopExp::MapShapes(aSd, TopAbs_FACE, aMF);
|
||||
//
|
||||
aNbF=aMF.Extent();
|
||||
if (!aNbF) {
|
||||
return;
|
||||
}
|
||||
//
|
||||
if (aNbF==1) {
|
||||
const TopoDS_Shape& aF=aMF(1);
|
||||
GEOMAlgo_ShapeInfo& aInfoF=myMapInfo.ChangeFromKey(aF);
|
||||
aKNF=aInfoF.KindOfName(); // mb: sphere, torus
|
||||
if (aKNF==GEOMAlgo_KN_SPHERE ||
|
||||
aKNF==GEOMAlgo_KN_TORUS) {
|
||||
aInfo.SetKindOfName(aKNF);
|
||||
aInfo.SetLocation(aInfoF.Location());
|
||||
aInfo.SetPosition(aInfoF.Position());
|
||||
aInfo.SetRadius1(aInfoF.Radius1());
|
||||
if(aKNF==GEOMAlgo_KN_TORUS) {
|
||||
aInfo.SetRadius2(aInfoF.Radius2());
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
//
|
||||
aNbCyl=0;
|
||||
aNbCon=0;
|
||||
aNbPgn=0;
|
||||
aNbRct=0;
|
||||
aNbCrc=0;
|
||||
for (i=1; i<=aNbF; ++i) {
|
||||
const TopoDS_Shape& aF=aMF(i);
|
||||
GEOMAlgo_ShapeInfo& aInfoF=myMapInfo.ChangeFromKey(aF);
|
||||
aKNF=aInfoF.KindOfName();
|
||||
if (aKNF==GEOMAlgo_KN_CYLINDER) {
|
||||
aFCyl=aF;
|
||||
++aNbCyl;
|
||||
}
|
||||
else if (aKNF==GEOMAlgo_KN_CONE) {
|
||||
aFCon=aF;
|
||||
++aNbCon;
|
||||
}
|
||||
else if (aKNF==GEOMAlgo_KN_DISKCIRCLE) {
|
||||
++aNbCrc;
|
||||
}
|
||||
else if (aKNF==GEOMAlgo_KN_POLYGON ||
|
||||
aKNF==GEOMAlgo_KN_TRIANGLE ||
|
||||
aKNF==GEOMAlgo_KN_QUADRANGLE) {
|
||||
++aNbPgn;
|
||||
|
||||
}
|
||||
else if (aKNF==GEOMAlgo_KN_RECTANGLE) {
|
||||
++aNbPgn;
|
||||
++aNbRct;
|
||||
}
|
||||
}
|
||||
//
|
||||
aNbX=aNbCyl+aNbCrc;
|
||||
if (aNbCyl==1 && aNbCrc==2 && aNbX==aNbF) {
|
||||
// cylinder (as they understand it)
|
||||
GEOMAlgo_ShapeInfo& aInfoF=myMapInfo.ChangeFromKey(aFCyl);
|
||||
aKNF=aInfoF.KindOfName();
|
||||
aInfo.SetKindOfName(aKNF);
|
||||
aInfo.SetLocation(aInfoF.Location());
|
||||
aInfo.SetPosition(aInfoF.Position());
|
||||
aInfo.SetRadius1(aInfoF.Radius1());
|
||||
aInfo.SetHeight(aInfoF.Height());
|
||||
return;
|
||||
}
|
||||
//
|
||||
aNbX=aNbCon+aNbCrc;
|
||||
if (aNbCon==1 && (aNbCrc==1 || aNbCrc==2) && aNbX==aNbF) {
|
||||
// cone
|
||||
GEOMAlgo_ShapeInfo& aInfoF=myMapInfo.ChangeFromKey(aFCon);
|
||||
aKNF=aInfoF.KindOfName();
|
||||
aInfo.SetKindOfName(aKNF);
|
||||
aInfo.SetLocation(aInfoF.Location());
|
||||
aInfo.SetPosition(aInfoF.Position());
|
||||
aInfo.SetRadius1(aInfoF.Radius1());
|
||||
aInfo.SetRadius2(aInfoF.Radius2());
|
||||
aInfo.SetHeight(aInfoF.Height());
|
||||
return;
|
||||
}
|
||||
//
|
||||
if (aNbPgn!=6) {
|
||||
aInfo.SetKindOfName(GEOMAlgo_KN_POLYHEDRON);
|
||||
return;
|
||||
}
|
||||
if (aNbPgn!=aNbRct) {
|
||||
aInfo.SetKindOfName(GEOMAlgo_KN_POLYHEDRON);
|
||||
return;
|
||||
}
|
||||
//===================================================
|
||||
// aNbRct=6;
|
||||
// box
|
||||
Standard_Integer j, aNbFi, aNbV, iMax, iMin, iMid;
|
||||
Standard_Real aDot, aLength, aWidth, aHeight, aDist[3];
|
||||
Standard_Real aDistMin, aDistMax;
|
||||
gp_Pnt aPi, aPc;
|
||||
gp_Dir aDir[3];
|
||||
gp_XYZ aXYZc;
|
||||
TColStd_IndexedMapOfInteger aMp;
|
||||
TopTools_IndexedMapOfShape aMV, aMFi;
|
||||
//
|
||||
// barycenter aPc
|
||||
TopExp::MapShapes(aSd, TopAbs_VERTEX, aMV);
|
||||
aNbV=aMV.Extent();
|
||||
if (aNbV!=8) {
|
||||
return;
|
||||
}
|
||||
//
|
||||
aXYZc.SetCoord(0.,0.,0.);
|
||||
for (i=1; i<=aNbV; ++i) {
|
||||
const TopoDS_Vertex& aVi=TopoDS::Vertex(aMV(i));
|
||||
aPi=BRep_Tool::Pnt(aVi);
|
||||
const gp_XYZ& aXYZ=aPi.XYZ();
|
||||
aXYZc=aXYZc+aXYZ;
|
||||
}
|
||||
//
|
||||
aXYZc.Divide(aNbV);
|
||||
aPc.SetXYZ(aXYZc);
|
||||
//
|
||||
// 3 faces
|
||||
for (i=1; i<=aNbF; ++i) {
|
||||
if (aMp.Contains(i)) {
|
||||
continue;
|
||||
}
|
||||
//
|
||||
const TopoDS_Shape& aFi=aMF(i);
|
||||
const GEOMAlgo_ShapeInfo& aIFi=myMapInfo.FindFromKey(aFi);
|
||||
const gp_Dir& aDNi=aIFi.Position().Direction();
|
||||
//
|
||||
for (j=i+1; j<=aNbF; ++j) {
|
||||
if (aMp.Contains(j)) {
|
||||
continue;
|
||||
}
|
||||
//
|
||||
const TopoDS_Shape& aFj=aMF(j);
|
||||
const GEOMAlgo_ShapeInfo& aIFj=myMapInfo.FindFromKey(aFj);
|
||||
const gp_Dir& aDNj=aIFj.Position().Direction();
|
||||
//
|
||||
aDot=aDNi*aDNj;
|
||||
if (fabs(1.-aDot)<0.0001) {
|
||||
aMp.Add(i);
|
||||
aMp.Add(j);
|
||||
aMFi.Add(aFi);
|
||||
break;
|
||||
}
|
||||
//
|
||||
}
|
||||
}
|
||||
aNbFi=aMFi.Extent();
|
||||
if (aNbFi!=3) {
|
||||
return;
|
||||
}
|
||||
//
|
||||
aDistMin=1.e15;
|
||||
aDistMax=-aDistMin;
|
||||
for (i=0; i<aNbFi; ++i) {
|
||||
const TopoDS_Shape& aFi=aMFi(i+1);
|
||||
const GEOMAlgo_ShapeInfo& aIFi=myMapInfo.FindFromKey(aFi);
|
||||
aPi=aIFi.Location();
|
||||
aDist[i]=aPc.Distance(aPi);
|
||||
if (aDist[i]>aDistMax) {
|
||||
aDistMax=aDist[i];
|
||||
iMax=i;
|
||||
}
|
||||
if (aDist[i]<aDistMin) {
|
||||
aDistMin=aDist[i];
|
||||
iMin=i;
|
||||
}
|
||||
gp_Vec aVi(aPc, aPi);
|
||||
gp_Dir aDi(aVi);
|
||||
aDir[i]=aDi;
|
||||
}
|
||||
//
|
||||
if (iMax==iMin) {
|
||||
iMax=0;
|
||||
iMin=1;
|
||||
}
|
||||
iMid=3-iMax-iMin;
|
||||
//
|
||||
aLength=2.*aDist[iMax];
|
||||
aWidth=2.*aDist[iMid];
|
||||
aHeight=2.*aDist[iMin];
|
||||
//
|
||||
gp_Ax2 aAx2(aPc, aDir[iMin], aDir[iMax]);
|
||||
gp_Ax3 aAx3(aAx2);
|
||||
//
|
||||
aInfo.SetKindOfName(GEOMAlgo_KN_BOX);
|
||||
aInfo.SetLocation(aPc);
|
||||
aInfo.SetLength(aLength);
|
||||
aInfo.SetWidth(aWidth);
|
||||
aInfo.SetHeight(aHeight);
|
||||
aInfo.SetPosition(aAx3);
|
||||
}
|
||||
//=======================================================================
|
||||
//function : FillDetails
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfoFiller::FillDetails(const TopoDS_Face& aF,
|
||||
const gp_Pln& aPln)
|
||||
{
|
||||
Standard_Integer aNbV, aNbE, i, j;
|
||||
Standard_Real aDot, aD0, aD1, aLength, aWidth;
|
||||
gp_Dir aDx[4], aDX;
|
||||
gp_Pnt aPx[4], aP, aPc;
|
||||
gp_XYZ aXYZc;
|
||||
TopExp_Explorer aExp;
|
||||
TopoDS_Shape aE;
|
||||
TopoDS_Wire aW;
|
||||
TopoDS_Edge aEx;
|
||||
TopoDS_Iterator aIt;
|
||||
TopTools_IndexedMapOfShape aMV;
|
||||
BRepTools_WireExplorer aWExp;
|
||||
GEOMAlgo_KindOfName aKN, aKNE;
|
||||
GEOMAlgo_KindOfShape aKS;
|
||||
//
|
||||
GEOMAlgo_ShapeInfo& aInfo=myMapInfo.ChangeFromKey(aF);
|
||||
aKN=GEOMAlgo_KN_UNKNOWN;
|
||||
aInfo.SetKindOfName(GEOMAlgo_KN_UNKNOWN);
|
||||
//
|
||||
aKS=aInfo.KindOfShape();
|
||||
if (aKS!=GEOMAlgo_KS_PLANE) {
|
||||
return;
|
||||
}
|
||||
//
|
||||
if (aInfo.KindOfBounds()==GEOMAlgo_KB_INFINITE) {
|
||||
aInfo.SetKindOfName(GEOMAlgo_KN_PLANE);
|
||||
return;
|
||||
}
|
||||
//
|
||||
aNbV=aInfo.NbSubShapes(TopAbs_VERTEX);
|
||||
aNbE=aInfo.NbSubShapes(TopAbs_EDGE);
|
||||
//
|
||||
// 1. may be it is circle/ellipse
|
||||
if (aNbV==1 && aNbE==1) {
|
||||
aExp.Init(aF, TopAbs_EDGE);
|
||||
for (; aExp.More(); aExp.Next()) {
|
||||
aE=aExp.Current();
|
||||
break;
|
||||
}
|
||||
//
|
||||
const GEOMAlgo_ShapeInfo& aInfoE=myMapInfo.FindFromKey(aE);
|
||||
aKNE=aInfoE.KindOfName();
|
||||
if (aKNE==GEOMAlgo_KN_CIRCLE) {
|
||||
aKN=GEOMAlgo_KN_DISKCIRCLE;
|
||||
aInfo.SetKindOfName(aKN);
|
||||
aInfo.SetRadius1(aInfoE.Radius1());
|
||||
aInfo.SetLocation(aInfoE.Location());
|
||||
aInfo.SetPosition(aInfoE.Position());
|
||||
}
|
||||
if (aKNE==GEOMAlgo_KN_ELLIPSE) {
|
||||
aKN=GEOMAlgo_KN_DISKELLIPSE;
|
||||
aInfo.SetKindOfName(aKN);
|
||||
aInfo.SetRadius1(aInfoE.Radius1());
|
||||
aInfo.SetRadius2(aInfoE.Radius2());
|
||||
aInfo.SetLocation(aInfoE.Location());
|
||||
aInfo.SetPosition(aInfoE.Position());
|
||||
}
|
||||
}
|
||||
//
|
||||
// 2. may be it is rectangle
|
||||
else {
|
||||
aExp.Init(aF, TopAbs_EDGE);
|
||||
for (; aExp.More(); aExp.Next()) {
|
||||
aE=aExp.Current();
|
||||
const GEOMAlgo_ShapeInfo& aInfoE=myMapInfo.FindFromKey(aE);
|
||||
aKNE=aInfoE.KindOfName();
|
||||
if (aKNE!=GEOMAlgo_KN_SEGMENT) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
//
|
||||
aInfo.SetKindOfName(GEOMAlgo_KN_POLYGON);
|
||||
//
|
||||
if (aNbV==3 && aNbE==3) {
|
||||
aInfo.SetKindOfName(GEOMAlgo_KN_TRIANGLE);
|
||||
//
|
||||
aXYZc.SetCoord(0.,0.,0.);
|
||||
TopExp::MapShapes(aF, TopAbs_VERTEX, aMV);
|
||||
for (i=1; i<=aNbV; ++i) {
|
||||
const TopoDS_Vertex& aV=TopoDS::Vertex(aMV(i));
|
||||
aP=BRep_Tool::Pnt(aV);
|
||||
const gp_XYZ& aXYZ=aP.XYZ();
|
||||
aXYZc=aXYZc+aXYZ;
|
||||
aPx[i-1]=aP;
|
||||
}
|
||||
aXYZc.Divide(3.);
|
||||
//
|
||||
aPc.SetXYZ(aXYZc);
|
||||
gp_Vec aVX(aPc, aPx[0]);
|
||||
aVX.Normalize();
|
||||
aDX.SetXYZ(aVX.XYZ());
|
||||
const gp_Dir& aDZ=aPln.Axis().Direction();
|
||||
//
|
||||
gp_Ax2 aAx2(aPc, aDZ, aDX);
|
||||
gp_Ax3 aAx3(aAx2);
|
||||
//
|
||||
aInfo.SetLocation(aPc);
|
||||
aInfo.SetPosition(aAx3);
|
||||
//
|
||||
return;
|
||||
}
|
||||
//
|
||||
if (!(aNbV==4 && aNbE==4)) {
|
||||
return;
|
||||
}
|
||||
//
|
||||
// aNbV==4 && aNbE==4 and all edges are segments
|
||||
aIt.Initialize(aF);
|
||||
for (; aIt.More(); aIt.Next()){
|
||||
aW=TopoDS::Wire(aIt.Value());
|
||||
break;
|
||||
}
|
||||
//
|
||||
aWExp.Init(aW, aF);
|
||||
for (i=0; aWExp.More(); aWExp.Next(), ++i) {
|
||||
aEx=aWExp.Current();
|
||||
const GEOMAlgo_ShapeInfo& aInfoEx=myMapInfo.FindFromKey(aEx);
|
||||
aDx[i]=aInfoEx.Direction();
|
||||
aPx[i]=aInfoEx.Location();
|
||||
}
|
||||
//
|
||||
for (i=0; i<4; ++i) {
|
||||
j=(i==3) ? 0 : i+1;
|
||||
aDot=aDx[i]*aDx[j];
|
||||
if (fabs (aDot) > myTolerance) {
|
||||
aInfo.SetKindOfName(GEOMAlgo_KN_QUADRANGLE);
|
||||
return;
|
||||
}
|
||||
}
|
||||
//
|
||||
// rectangle
|
||||
aInfo.SetKindOfName(GEOMAlgo_KN_RECTANGLE);
|
||||
//
|
||||
// shift location to the center and calc. sizes
|
||||
aXYZc.SetCoord(0.,0.,0.);
|
||||
TopExp::MapShapes(aF, TopAbs_VERTEX, aMV);
|
||||
for (i=1; i<=aNbV; ++i) {
|
||||
const TopoDS_Vertex& aV=TopoDS::Vertex(aMV(i));
|
||||
aP=BRep_Tool::Pnt(aV);
|
||||
const gp_XYZ& aXYZ=aP.XYZ();
|
||||
aXYZc=aXYZc+aXYZ;
|
||||
}
|
||||
//
|
||||
// Location : aPc in center of rectangle
|
||||
// Position : 0z is plane normal
|
||||
// 0x is along length
|
||||
//
|
||||
aXYZc.Divide(4.);
|
||||
aPc.SetXYZ(aXYZc);
|
||||
//
|
||||
gp_Lin aL0(aPx[0], aDx[0]);
|
||||
gp_Lin aL1(aPx[1], aDx[1]);
|
||||
//
|
||||
aD0=aL0.Distance(aPc);
|
||||
aD1=aL1.Distance(aPc);
|
||||
//
|
||||
aLength=aD0;
|
||||
aWidth =aD1;
|
||||
aDX=aL1.Direction();
|
||||
if (aD0<aD1) {
|
||||
aLength=aD1;
|
||||
aWidth =aD0;
|
||||
aDX=aL0.Direction();
|
||||
}
|
||||
//
|
||||
aLength=2.*aLength;
|
||||
aWidth =2.*aWidth;
|
||||
//
|
||||
aInfo.SetLocation(aPc);
|
||||
aInfo.SetLength(aLength);
|
||||
aInfo.SetWidth(aWidth);
|
||||
//
|
||||
const gp_Dir& aDZ=aPln.Axis().Direction();
|
||||
gp_Ax2 aAx2(aPc, aDZ, aDX);
|
||||
gp_Ax3 aAx3(aAx2);
|
||||
aInfo.SetPosition(aAx3);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
//=======================================================================
|
||||
//function : FillDetails
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfoFiller::FillDetails(const TopoDS_Face& aF,
|
||||
const gp_Sphere& )
|
||||
{
|
||||
Standard_Integer aNbV, aNbE, aNbSE, aNbDE;
|
||||
TopoDS_Edge aE;
|
||||
TopExp_Explorer aExp;
|
||||
TopTools_MapOfShape aM;
|
||||
GEOMAlgo_KindOfShape aKS, aKSE;
|
||||
//
|
||||
GEOMAlgo_ShapeInfo& aInfo=myMapInfo.ChangeFromKey(aF);
|
||||
aInfo.SetKindOfName(GEOMAlgo_KN_UNKNOWN);
|
||||
//
|
||||
aKS=aInfo.KindOfShape();
|
||||
if (aKS!=GEOMAlgo_KS_SPHERE) {
|
||||
return;
|
||||
}
|
||||
//
|
||||
aNbV=aInfo.NbSubShapes(TopAbs_VERTEX);
|
||||
aNbE=aInfo.NbSubShapes(TopAbs_EDGE);
|
||||
if (!(aNbV==2 && aNbE==3)) {
|
||||
return;
|
||||
}
|
||||
//
|
||||
aNbSE=0;
|
||||
aNbDE=0;
|
||||
aExp.Init(aF, TopAbs_EDGE);
|
||||
for (; aExp.More(); aExp.Next()) {
|
||||
aE=TopoDS::Edge(aExp.Current());
|
||||
if(aM.Add(aE)) {
|
||||
const GEOMAlgo_ShapeInfo& aInfoE=myMapInfo.FindFromKey(aE);
|
||||
aKSE=aInfoE.KindOfShape();
|
||||
//
|
||||
if (BRep_Tool::IsClosed(aE, aF)) {
|
||||
++aNbSE;
|
||||
}
|
||||
else if (aKSE==GEOMAlgo_KS_DEGENERATED) {
|
||||
++aNbDE;
|
||||
}
|
||||
}
|
||||
}
|
||||
//
|
||||
if (!(aNbSE==1 && aNbDE==2)) {
|
||||
return;
|
||||
}
|
||||
aInfo.SetKindOfName(GEOMAlgo_KN_SPHERE);
|
||||
}
|
||||
//=======================================================================
|
||||
//function : FillDetails
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfoFiller::FillDetails(const TopoDS_Face& aF,
|
||||
const gp_Cone& )//aCone)
|
||||
{
|
||||
Standard_Integer aNbV, aNbE, aNbCE, aNbSE, aNbDE, i;
|
||||
Standard_Real aR[3], aHeight;
|
||||
gp_Pnt aPC[3], aPD, aPc, aPX[3];
|
||||
TopoDS_Vertex aVD;
|
||||
TopoDS_Edge aE;
|
||||
TopoDS_Iterator aIt;
|
||||
TopExp_Explorer aExp;
|
||||
TopTools_MapOfShape aM;
|
||||
GEOMAlgo_KindOfShape aKS, aKSE;
|
||||
GEOMAlgo_KindOfName aKN, aKNE;
|
||||
GEOMAlgo_KindOfClosed aKCE;
|
||||
//
|
||||
GEOMAlgo_ShapeInfo& aInfo=myMapInfo.ChangeFromKey(aF);
|
||||
aKN=GEOMAlgo_KN_UNKNOWN;
|
||||
aInfo.SetKindOfName(aKN);
|
||||
//
|
||||
aKS=aInfo.KindOfShape();
|
||||
if (aKS!=GEOMAlgo_KS_CONE) {
|
||||
return;
|
||||
}
|
||||
//
|
||||
if (aInfo.KindOfBounds()==GEOMAlgo_KB_INFINITE) {
|
||||
return;
|
||||
}
|
||||
//
|
||||
aNbV=aInfo.NbSubShapes(TopAbs_VERTEX);
|
||||
aNbE=aInfo.NbSubShapes(TopAbs_EDGE);
|
||||
if (!(aNbV==2 && aNbE==3)) {
|
||||
return;
|
||||
}
|
||||
//
|
||||
i=0;
|
||||
aNbCE=0;
|
||||
aNbSE=0;
|
||||
aNbDE=0;
|
||||
aExp.Init(aF, TopAbs_EDGE);
|
||||
for (; aExp.More(); aExp.Next()) {
|
||||
aE=TopoDS::Edge(aExp.Current());
|
||||
if(aM.Add(aE)) {
|
||||
const GEOMAlgo_ShapeInfo& aInfoE=myMapInfo.FindFromKey(aE);
|
||||
aKNE=aInfoE.KindOfName();
|
||||
aKCE=aInfoE.KindOfClosed();
|
||||
aKSE=aInfoE.KindOfShape();
|
||||
if (aKNE==GEOMAlgo_KN_CIRCLE && aKCE==GEOMAlgo_KC_CLOSED) {
|
||||
aPC[i]=aInfoE.Location();
|
||||
aR[i]=aInfoE.Radius1();
|
||||
//
|
||||
aIt.Initialize(aE);
|
||||
for (; aIt.More(); aIt.Next()) {
|
||||
aVD=TopoDS::Vertex(aIt.Value());
|
||||
break;
|
||||
}
|
||||
aPX[i]=BRep_Tool::Pnt(aVD);
|
||||
//
|
||||
++i;
|
||||
++aNbCE;
|
||||
}
|
||||
else if (aKNE==GEOMAlgo_KN_SEGMENT) {
|
||||
if (BRep_Tool::IsClosed(aE, aF)) {
|
||||
++aNbSE;
|
||||
}
|
||||
}
|
||||
else if (aKSE==GEOMAlgo_KS_DEGENERATED) {
|
||||
aIt.Initialize(aE);
|
||||
for (; aIt.More(); aIt.Next()) {
|
||||
aVD=TopoDS::Vertex(aIt.Value());
|
||||
break;
|
||||
}
|
||||
//
|
||||
aPD=BRep_Tool::Pnt(aVD);
|
||||
//
|
||||
++aNbDE;
|
||||
}
|
||||
}
|
||||
}
|
||||
//
|
||||
if (!((aNbCE==2 || (aNbCE==1 && aNbDE==1)) && aNbSE==1)) {
|
||||
return;
|
||||
}
|
||||
//
|
||||
if (aNbDE==1) {
|
||||
aPC[1]=aPD;
|
||||
aR[1]=0.;
|
||||
}
|
||||
//
|
||||
aHeight=aPC[0].Distance(aPC[1]);
|
||||
//
|
||||
Standard_Real aRmin, aRmax;
|
||||
gp_Ax2 aAx2new;
|
||||
//
|
||||
if (aR[0]>aR[1]) {
|
||||
aRmin=aR[1];
|
||||
aRmax=aR[0];
|
||||
aPc=aPC[0];
|
||||
gp_Vec aVz(aPC[0], aPC[1]);
|
||||
gp_Vec aVx(aPC[0], aPX[0]);
|
||||
gp_Dir aDz(aVz);
|
||||
gp_Dir aDx(aVx);
|
||||
gp_Ax2 aAx2(aPc, aDz, aDx);
|
||||
aAx2new=aAx2;
|
||||
}
|
||||
else {
|
||||
aRmin=aR[0];
|
||||
aRmax=aR[1];
|
||||
aPc=aPC[1];
|
||||
gp_Vec aVz(aPC[1], aPC[0]);
|
||||
gp_Vec aVx(aPC[1], aPX[1]);
|
||||
gp_Dir aDz(aVz);
|
||||
gp_Dir aDx(aVx);
|
||||
gp_Ax2 aAx2(aPc, aDz, aDx);
|
||||
aAx2new=aAx2;
|
||||
}
|
||||
//
|
||||
gp_Ax3 aAx3(aAx2new);
|
||||
aInfo.SetLocation(aPc);
|
||||
aInfo.SetPosition(aAx3);
|
||||
aInfo.SetRadius1(aRmax);
|
||||
aInfo.SetRadius2(aRmin);
|
||||
aInfo.SetHeight(aHeight);
|
||||
//
|
||||
aInfo.SetKindOfName(GEOMAlgo_KN_CONE);
|
||||
}
|
||||
//=======================================================================
|
||||
//function : FillDetails
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfoFiller::FillDetails(const TopoDS_Face& aF,
|
||||
const gp_Cylinder& aCyl)
|
||||
{
|
||||
Standard_Integer i, aNbV, aNbE, aNbCE, aNbSE;
|
||||
Standard_Real aT0, aT1, aHeight;
|
||||
gp_Pnt aPC[3], aPc;
|
||||
TopoDS_Edge aE;
|
||||
TopExp_Explorer aExp;
|
||||
TopTools_MapOfShape aM;
|
||||
GEOMAlgo_KindOfShape aKS;
|
||||
GEOMAlgo_KindOfName aKN, aKNE;
|
||||
GEOMAlgo_KindOfClosed aKCE;
|
||||
//
|
||||
GEOMAlgo_ShapeInfo& aInfo=myMapInfo.ChangeFromKey(aF);
|
||||
aKN=GEOMAlgo_KN_UNKNOWN;
|
||||
aInfo.SetKindOfName(aKN);
|
||||
//
|
||||
aKS=aInfo.KindOfShape();
|
||||
if (aKS!=GEOMAlgo_KS_CYLINDER) {
|
||||
return;
|
||||
}
|
||||
//
|
||||
if (aInfo.KindOfBounds()==GEOMAlgo_KB_INFINITE) {
|
||||
return;
|
||||
}
|
||||
//
|
||||
aNbV=aInfo.NbSubShapes(TopAbs_VERTEX);
|
||||
aNbE=aInfo.NbSubShapes(TopAbs_EDGE);
|
||||
if (!(aNbV==2 && aNbE==3)) {
|
||||
return;
|
||||
}
|
||||
//
|
||||
i=0;
|
||||
aNbCE=0;
|
||||
aNbSE=0;
|
||||
aExp.Init(aF, TopAbs_EDGE);
|
||||
for (; aExp.More(); aExp.Next()) {
|
||||
aE=TopoDS::Edge(aExp.Current());
|
||||
if(aM.Add(aE)) {
|
||||
const GEOMAlgo_ShapeInfo& aInfoE=myMapInfo.FindFromKey(aE);
|
||||
aKNE=aInfoE.KindOfName();
|
||||
aKCE=aInfoE.KindOfClosed();
|
||||
if (aKNE==GEOMAlgo_KN_CIRCLE && aKCE==GEOMAlgo_KC_CLOSED) {
|
||||
aPC[aNbCE]=aInfoE.Location();
|
||||
++aNbCE;
|
||||
}
|
||||
else if (aKNE==GEOMAlgo_KN_SEGMENT) {
|
||||
if (BRep_Tool::IsClosed(aE, aF)) {
|
||||
++aNbSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
//
|
||||
if (!(aNbCE==2 && aNbSE==1)) {
|
||||
return;
|
||||
}
|
||||
//
|
||||
const gp_Ax1& aAx1=aCyl.Axis();
|
||||
const gp_Dir& aDir=aAx1.Direction();
|
||||
const gp_Pnt& aPLoc=aAx1.Location();
|
||||
gp_Lin aLin(aPLoc, aDir);
|
||||
//
|
||||
aT0=ElCLib::Parameter(aLin, aPC[0]);
|
||||
aT1=ElCLib::Parameter(aLin, aPC[1]);
|
||||
//
|
||||
aPc=aPC[0];;
|
||||
if (aT0>aT1) {
|
||||
aPc=aPC[1];
|
||||
}
|
||||
aHeight=aPC[0].Distance(aPC[1]);
|
||||
//
|
||||
gp_Ax3 aAx3=aCyl.Position();
|
||||
aAx3.SetLocation(aPc);
|
||||
//
|
||||
aInfo.SetKindOfName(GEOMAlgo_KN_CYLINDER);
|
||||
aInfo.SetPosition(aAx3);
|
||||
aInfo.SetLocation(aPc);
|
||||
aInfo.SetHeight(aHeight);
|
||||
}
|
||||
|
||||
//=======================================================================
|
||||
//function : FillDetails
|
||||
//purpose :
|
||||
//=======================================================================
|
||||
void GEOMAlgo_ShapeInfoFiller::FillDetails(const TopoDS_Face& aF,
|
||||
const gp_Torus& )
|
||||
{
|
||||
Standard_Integer aNbV, aNbE, aNbSE;
|
||||
TopoDS_Edge aE;
|
||||
TopExp_Explorer aExp;
|
||||
TopTools_MapOfShape aM;
|
||||
GEOMAlgo_KindOfShape aKS;
|
||||
//
|
||||
GEOMAlgo_ShapeInfo& aInfo=myMapInfo.ChangeFromKey(aF);
|
||||
aInfo.SetKindOfName(GEOMAlgo_KN_UNKNOWN);
|
||||
//
|
||||
aKS=aInfo.KindOfShape();
|
||||
if (aKS!=GEOMAlgo_KS_TORUS) {
|
||||
return;
|
||||
}
|
||||
//
|
||||
aNbV=aInfo.NbSubShapes(TopAbs_VERTEX);
|
||||
aNbE=aInfo.NbSubShapes(TopAbs_EDGE);
|
||||
if (!(aNbV==1 && aNbE==2)) {
|
||||
return;
|
||||
}
|
||||
//
|
||||
aNbSE=0;
|
||||
aExp.Init(aF, TopAbs_EDGE);
|
||||
for (; aExp.More(); aExp.Next()) {
|
||||
aE=TopoDS::Edge(aExp.Current());
|
||||
if (aM.Add(aE)) {
|
||||
//const GEOMAlgo_ShapeInfo& aInfoE=myMapInfo.FindFromKey(aE);
|
||||
if (BRep_Tool::IsClosed(aE, aF)) {
|
||||
++aNbSE;
|
||||
}
|
||||
}
|
||||
}
|
||||
//
|
||||
if (aNbSE!=2) {
|
||||
return;
|
||||
}
|
||||
aInfo.SetKindOfName(GEOMAlgo_KN_TORUS);
|
||||
}
|
@ -115,7 +115,7 @@ static
|
||||
//=======================================================================
|
||||
void GEOMAlgo_WESCorrector::DoConnexityBlocks()
|
||||
{
|
||||
Standard_Boolean bRegular;
|
||||
Standard_Boolean bRegular, bClosed;
|
||||
Standard_Integer i, aNbV, j, aNbC, aNbVP, aNbVS;
|
||||
TopTools_ListIteratorOfListOfShape aIt;
|
||||
TopoDS_Iterator aItE;
|
||||
@ -208,17 +208,17 @@ static
|
||||
aER=aMEC(j);
|
||||
//
|
||||
if (aMER.Contains(aER)) {
|
||||
Standard_Boolean bClosed;
|
||||
//
|
||||
aER.Orientation(TopAbs_FORWARD);
|
||||
aLEC.Append(aER);
|
||||
aER.Orientation(TopAbs_REVERSED);
|
||||
aLEC.Append(aER);
|
||||
//
|
||||
bClosed=BRep_Tool::IsClosed(TopoDS::Edge(aER), myWES->Face());
|
||||
if (!bClosed) {
|
||||
//modified by NIZNHY-PKV Tue Nov 28 12:02:29 2006f
|
||||
//bClosed=BRep_Tool::IsClosed(TopoDS::Edge(aER), myWES->Face());
|
||||
//if (!bClosed) {
|
||||
bRegular=Standard_False;
|
||||
}
|
||||
//}
|
||||
//modified by NIZNHY-PKV Tue Nov 28 12:02:33 2006t
|
||||
}
|
||||
else {
|
||||
aLEC.Append(aER);
|
||||
@ -234,11 +234,12 @@ static
|
||||
//
|
||||
aNbVR=aMVER.Extent();
|
||||
for (k=1; k<=aNbVR; ++k) {
|
||||
const TopTools_ListOfShape& aLER=aMVER(k);//?? it was aMVE(k)
|
||||
const TopTools_ListOfShape& aLER=aMVER(k);
|
||||
aNbER=aLER.Extent();
|
||||
if (aNbER==1) {
|
||||
const TopoDS_Edge& aEx=TopoDS::Edge(aER);
|
||||
if (!BRep_Tool::IsClosed(aEx, myWES->Face())) {
|
||||
bClosed=BRep_Tool::IsClosed(aEx, myWES->Face());
|
||||
if (!bClosed) {
|
||||
bRegular=!bRegular;
|
||||
break;
|
||||
}
|
||||
|