Skip to content

Commit

Permalink
Add some comments to clarify
Browse files Browse the repository at this point in the history
  • Loading branch information
gonuke authored Jun 8, 2024
1 parent 426f125 commit 6f32424
Showing 1 changed file with 9 additions and 1 deletion.
10 changes: 9 additions & 1 deletion iGeom/iGeom.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,7 @@ void iGeom_createTorus(iGeom_Instance instance,
/*out*/ iBase_EntityHandle *geom_entity,
int* err)
{
if (minor_rad >= major_rad) {
if (minor_rad >= fabs(major_rad)) {
// first calculate the 3 control vertices and 2 control points
double height = sqrt((minor_rad*minor_rad) - (major_rad*major_rad));
double maxima = major_rad+minor_rad;
Expand Down Expand Up @@ -274,6 +274,10 @@ void iGeom_createTorus(iGeom_Instance instance,
profile_edges.insert(curve);

if (major_radius > 0) {
// this type of degenerate torus is defined by a cross-section that
// consists of more than 1/2 of a circle, requiring one arc for the
// half and one arc for the bottom half

//the first arc
curve = GeometryModifyTool::instance()->make_RefEdge(ARC_CURVE_TYPE, v1,
v3, &v2_pos);
Expand All @@ -284,6 +288,10 @@ void iGeom_createTorus(iGeom_Instance instance,
v5, &v4_pos);
profile_edges.insert(curve);
} else {
// this type of degenerate torus is defined by a cross-section that
// consists of less than 1/2 of a circle, requiring only a single
// arc that passes through the end points and the maxima

//only one arc
curve = GeometryModifyTool::instance()->make_RefEdge(ARC_CURVE_TYPE, v1,
v5, &v3_pos);
Expand Down

0 comments on commit 6f32424

Please sign in to comment.