[cgma-dev] r5357 - cgm/trunk/geom/OCC
jiangtao_ma at yahoo.com
jiangtao_ma at yahoo.com
Tue Jan 31 12:28:16 CST 2012
Author: janehu
Date: 2012-01-31 12:28:16 -0600 (Tue, 31 Jan 2012)
New Revision: 5357
Removed:
cgm/trunk/geom/OCC/OCCModifyEngine.cpp_5317
cgm/trunk/geom/OCC/OCCModifyEngine.cpp_5345
Modified:
cgm/trunk/geom/OCC/OCCModifyEngine.cpp
Log:
A little change according to tests results.
Modified: cgm/trunk/geom/OCC/OCCModifyEngine.cpp
===================================================================
--- cgm/trunk/geom/OCC/OCCModifyEngine.cpp 2012-01-31 15:48:01 UTC (rev 5356)
+++ cgm/trunk/geom/OCC/OCCModifyEngine.cpp 2012-01-31 18:28:16 UTC (rev 5357)
@@ -6507,10 +6507,10 @@
int gap_type )
{
//gap_type has no effect here.
- gp_Dir offset(offset_direction.x(), offset_direction.y(), offset_direction.z());
if( curves.size() == 1 && (offset_direction.x() ||
offset_direction.y() || offset_direction.z()) )
{
+ gp_Dir offset(offset_direction.x(), offset_direction.y(), offset_direction.z());
//check if the curve is straight, error out for non-straight curve.
Curve* curve = curves.get();
OCCCurve* occ_curve = CAST_TO(curve, OCCCurve);
@@ -6551,6 +6551,20 @@
else if( offset_direction.x() || offset_direction.y() || offset_direction.z() )
PRINT_WARNING( "Direction qualifier ignored - only valid for one straight curve\n" );
+ else if (offset_direction.x() == 0.0 && offset_direction.y() == 0.0 &&
+ offset_direction.z() == 0.0)
+ {
+ for(int i = 0 ; i < curves.size(); i++)
+ {
+ Curve* curve = curves.get_and_step();
+ OCCCurve* occ_curve = CAST_TO(curve, OCCCurve);
+ if(occ_curve->geometry_type() == STRAIGHT_CURVE_TYPE)
+ {
+ PRINT_ERROR("Must have an offset direction for any straight curve.\n");
+ return CUBIT_FAILURE;
+ }
+ }
+ }
//make wire out of ref_edge_list
BRepBuilderAPI_MakeWire awire;
TopTools_ListOfShape L;
@@ -6609,12 +6623,7 @@
Ex.Init(wire);
Ex.Next(); //omit the connecting curve
- if(offset_distance < 0)
- {
- for(int i = 0 ; i < curves.size(); i++)
- Ex.Next();//omit all positive offset curves.
- Ex.Next(); //omit conection curve
- }
+
for(int i = 0 ; i < curves.size(); i++)
{
TopoDS_Edge new_edge = Ex.Current();
More information about the cgma-dev
mailing list