Refer to the B-Rep Geometry Exploration Example.
base_explorer.cs
using System;
namespace brep_geometry
{
class BaseExplorer
{
public static void PrintElementary(
Conic theGeometry)
{
PrintDomain(theGeometry);
PrintParameter("Location", aLoc);
PrintParameter("Axis", anAxis);
PrintParameter("X Direction", aXDir);
PrintParameter("Y Direction", aYDir);
}
{
PrintDomain(theGeometry);
PrintParameter("Location", aLoc);
PrintParameter("Axis", anAxis);
PrintParameter("X Direction", aXDir);
PrintParameter("Y Direction", aYDir);
}
public static void PrintElementary2d(
Conic2d theGeometry)
{
PrintDomain(theGeometry);
Point2d aLoc = aPosition.
Location();
PrintParameter("Location", aLoc);
PrintParameter("X Direction", aXDir);
PrintParameter("Y Direction", aYDir);
}
public static void PrintRange(string aName, double aFirstParameter, double aLastParameter)
{
Console.Write("{0} = [{1}, {2}]; ", aName, aFirstParameter, aLastParameter);
}
public static void PrintDomain(
Curve theCurve)
{
PrintRange(
"Domain", theCurve.
UMin(), theCurve.
UMax());
}
public static void PrintDomain(
Curve2d theCurve)
{
PrintRange(
"Domain", theCurve.
UMin(), theCurve.
UMax());
}
public static void PrintDomain(
Surface theSurface)
{
PrintRange(
"Domain U", theSurface.
UMin(), theSurface.
UMax());
PrintRange(
"V", theSurface.
VMin(), theSurface.
VMax());
}
public static void PrintParameter(
Point theValue)
{
Console.Write(
"({0}, {1}); ", theValue.
X(), theValue.
Y());
}
public static void PrintParameter(
Direction theValue)
{
Console.Write(
"({0}, {1}, {2}); ", theValue.
X(), theValue.
Y(), theValue.
Z());
}
public static void PrintParameter(
Point2d theValue)
{
Console.Write(
"({0}, {1}); ", theValue.
X(), theValue.
Y());
}
public static void PrintParameter(
Direction2d theValue)
{
Console.Write(
"({0}, {1}); ", theValue.
X(), theValue.
Y());
}
public static void PrintParameter(double theValue)
{
Console.Write("{0}; ", theValue);
}
public static void PrintParameter(
string theName,
Point theValue)
{
Console.Write("{0} = ", theName);
PrintParameter(theValue);
}
public static void PrintParameter(
string theName,
Direction theValue)
{
Console.Write("{0} = ", theName);
PrintParameter(theValue);
}
public static void PrintParameter(string theName, double theValue)
{
Console.Write("{0} = ", theName);
PrintParameter(theValue);
}
public static void PrintParameter(
string theName,
Point2d theValue)
{
Console.Write("{0} = ", theName);
PrintParameter(theValue);
}
public static void PrintParameter(
string theName,
Direction2d theValue)
{
Console.Write("{0} = ", theName);
PrintParameter(theValue);
}
public static void PrintName(string theName)
{
Console.Write("{0}: ", theName);
}
public delegate void myPrint1dElement(int i);
public static void PrintCollection(string theName,
int theFinalIndex,
myPrint1dElement thePrintElement)
{
if (theName != null)
{
Console.Write("{0} = ", theName);
}
Console.Write("[");
for (int i = 1; i <= theFinalIndex; ++i)
{
if (i > 3)
{
Console.Write("...");
break;
}
thePrintElement(i);
}
Console.Write("]; ");
}
public delegate void myPrint2dElement(int i, int j);
public static void PrintCollection(string theName,
int theFinalIndex1,
int theFinalIndex2,
myPrint2dElement thePrintElement)
{
PrintCollection(theName, theFinalIndex1, (int i) =>
{
PrintCollection(null, theFinalIndex2, (int j) => { thePrintElement(i, j); });
});
}
{
Console.Write("Orientation = ");
switch (theOrientation)
{
default: Console.Write("Undefined"); break;
}
Console.Write("; ");
}
public void PrintTabulation()
{
for (uint i = 0; i < myNestingLevel; ++i)
{
Console.Write("--- ");
}
}
public uint myNestingLevel = 0;
}
}
Defines a right-hand or left-hand axis in 2D.
Definition Axis2d.cs:20
Defines a right-handed or left-handed axis in 3D.
Definition Axis3d.cs:24
cadex.Geom.Direction YDirection()
Returns a Y-direction of the axis placement.
Definition Axis3d.cs:116
cadex.Geom.Direction Axis()
Returns a Z-direction of the axis.
Definition Axis3d.cs:99
cadex.Geom.Direction XDirection()
Returns a X-direction of the axis.
Definition Axis3d.cs:107
cadex.Geom.Point Location()
Returns an origin point.
Definition Axis3d.cs:90
Base class for 2D conic curves.
Definition Conic2d.cs:22
cadex.Geom.Axis2d Position()
Returns an axis.
Definition Conic2d.cs:61
Base class for 3D conic curves.
Definition Conic.cs:22
cadex.Geom.Axis3d Position()
Returns an axis.
Definition Conic.cs:61
Base class for 2D curves.
Definition Curve2d.cs:25
double UMin()
Returns a minimum parameter of a definition domain.
Definition Curve2d.cs:97
double UMax()
Returns a maximum parameter of a definition domain.
Definition Curve2d.cs:105
Base class for 3D curves.
Definition Curve.cs:84
double UMax()
Returns a maximum parameter of a definition domain.
Definition Curve.cs:171
double UMin()
Returns a minimum parameter of a definition domain.
Definition Curve.cs:163
Defines a 2D Direction.
Definition Direction2d.cs:17
Defines a 3D Direction.
Definition Direction.cs:17
Base class for elementary surfaces.
Definition ElementarySurface.cs:21
cadex.Geom.Axis3d Position()
Returns a surface axis.
Definition ElementarySurface.cs:61
Defines a 3D point.
Definition Point2d.cs:17
Defines a 3D point.
Definition Point.cs:17
Base class for geometrical surfaces.
Definition Surface.cs:96
double UMax()
Returns a maximum parameter of a definition domain in U direction.
Definition Surface.cs:182
double VMin()
Returns a minimum parameter of a definition domain in V direction.
Definition Surface.cs:189
double VMax()
Returns a maximum parameter of a definition domain in V direction.
Definition Surface.cs:196
double UMin()
Returns a minimum parameter of a definition domain in U direction.
Definition Surface.cs:175
Contains classes, types, enums, and functions related to geometric entities.
Definition Axis1d.cs:12
Defines classes, types, enums, and functions related to topological entities and scene graph elements...
Definition AngleUnit.cs:12
ShapeOrientation
Defines shape orientation.
Definition ShapeOrientation.cs:17
curve_explorer.cs
using System;
namespace brep_geometry
{
class CurveExplorer : BaseExplorer
{
public static void PrintCurveInfo(
Curve theCurve)
{
{
PrintLine(
Line.
Cast(theCurve));
break;
PrintCircle(
Circle.
Cast(theCurve));
break;
PrintEllipse(
Ellipse.
Cast(theCurve));
break;
break;
break;
break;
break;
break;
default:
break;
}
}
public static void PrintLine(
Line theLine)
{
PrintName("Line");
PrintDomain(theLine);
PrintParameter("Location", aLoc);
PrintParameter("Direction", aDir);
}
public static void PrintCircle(
Circle theCircle)
{
PrintName("Circle");
double aRadius = theCircle.
Radius();
PrintElementary(theCircle);
PrintParameter("Radius", aRadius);
}
public static void PrintEllipse(
Ellipse theEllipse)
{
PrintName("Ellipse");
PrintElementary(theEllipse);
PrintParameter("Major Radius", aMajorRadius);
PrintParameter("Minor Radius", aMinorRadius);
}
public static void PrintHyperbola(
Hyperbola theHyperbola)
{
PrintName("Hyperbola");
PrintElementary(theHyperbola);
PrintParameter("Major Radius", aMajorRadius);
PrintParameter("Minor Radius", aMinorRadius);
}
public static void PrintParabola(
Parabola theParabola)
{
PrintName("Parabola");
double aFocal = theParabola.
Focal();
PrintElementary(theParabola);
PrintParameter("Focal", aFocal);
}
public static void PrintBezierCurve(
BezierCurve theBezier)
{
PrintName("Bezier Curve");
int aDegree = theBezier.
Degree();
PrintDomain(theBezier);
PrintParameter("Degree", aDegree);
PrintParameter("Number Of Poles", aNumberOfPoles);
PrintCollection("Poles", aNumberOfPoles, (int i) =>
{
PrintParameter(aPole);
});
PrintCollection("Weights", aNumberOfPoles, (int i) =>
{
double aWeight = theBezier.
Weight(i);
PrintParameter(aWeight);
});
}
public static void PrintBSplineCurve(
BSplineCurve theBSpline)
{
PrintName("BSpline Curve");
int aDegree = theBSpline.
Degree();
PrintDomain(theBSpline);
PrintParameter("Degree", aDegree);
PrintParameter("Number Of Knots", aNumberOfKnots);
PrintParameter("Number Of Poles", aNumberOfPoles);
PrintCollection("Knots", aNumberOfKnots, (int i) =>
{
double aKnot = theBSpline.
Knot(i);
PrintParameter(aKnot);
});
PrintCollection("Multiplicities", aNumberOfKnots, (int i) =>
{
PrintParameter(aMultiplicity);
});
PrintCollection("Poles", aNumberOfPoles, (int i) =>
{
PrintParameter(aPole);
});
PrintCollection("Weights", aNumberOfPoles, (int i) =>
{
double aWeight = theBSpline.
Weight(i);
PrintParameter(aWeight);
});
}
public static void PrintOffsetCurve(
OffsetCurve theOffset)
{
PrintName("Offset Curve");
double anOffset = theOffset.
Offset();
PrintDomain(theOffset);
PrintParameter("Direction", aDir);
PrintParameter("Offset", anOffset);
Console.Write("Basis Curve = ");
}
}
}
Defines 3D B-Spline curve.
Definition BSplineCurve.cs:38
int Degree()
Returns degree.
Definition BSplineCurve.cs:118
int Multiplicity(int theIndex)
Returns a knot multiplicity.
Definition BSplineCurve.cs:166
double Knot(int theIndex)
Returns a knot value.
Definition BSplineCurve.cs:144
double Weight(int theIndex)
Returns a weight value.
Definition BSplineCurve.cs:212
int NumberOfKnots()
Returns number of unique knots.
Definition BSplineCurve.cs:126
int NumberOfPoles()
Returns number of poles.
Definition BSplineCurve.cs:134
cadex.Geom.Point Pole(int theIndex)
Returns a pole value.
Definition BSplineCurve.cs:188
Defines 3D Bezier curve.
Definition BezierCurve.cs:32
int NumberOfPoles()
Returns number of poles.
Definition BezierCurve.cs:102
int Degree()
Returns degree.
Definition BezierCurve.cs:94
double Weight(int theIndex)
Returns a weight value.
Definition BezierCurve.cs:138
cadex.Geom.Point Pole(int theIndex)
Returns a pole value.
Definition BezierCurve.cs:112
Defines 3D circle.
Definition Circle.cs:29
double Radius()
Returns radius.
Definition Circle.cs:74
cadex.Geom.CurveType Type()
Definition Curve.cs:123
Defines 3D ellipse.
Definition Ellipse.cs:33
double MajorRadius()
Returns a major radius.
Definition Ellipse.cs:80
double MinorRadius()
Returns a minor radius.
Definition Ellipse.cs:88
Defines 3D hyperbola.
Definition Hyperbola.cs:32
double MinorRadius()
Returns a minor radius.
Definition Hyperbola.cs:85
double MajorRadius()
Returns a major radius.
Definition Hyperbola.cs:77
Defines 3D line.
Definition Line.cs:28
cadex.Geom.Point Location()
Returns an origin point.
Definition Line.cs:75
cadex.Geom.Direction Direction()
Returns a direction.
Definition Line.cs:83
Defines 3D offset curve.
Definition OffsetCurve.cs:41
cadex.Geom.Direction Direction()
Returns reference direction.
Definition OffsetCurve.cs:109
double Offset()
Returns offset value.
Definition OffsetCurve.cs:101
cadex.Geom.Curve BasisCurve()
Returns basis curve.
Definition OffsetCurve.cs:89
Defines 3D parabola.
Definition Parabola.cs:30
double Focal()
Returns a focal.
Definition Parabola.cs:77
CurveType
Defines curve type.
Definition CurveType.cs:17
pcurve_explorer.cs
using System;
namespace brep_geometry
{
class PCurveExplorer : BaseExplorer
{
public static void PrintPCurveInfo(
Curve2d theCurve)
{
{
PrintLine(
Line2d.
Cast(theCurve));
break;
break;
break;
break;
break;
break;
break;
break;
default:
break;
}
}
public static void PrintLine(
Line2d theLine)
{
PrintName("Line 2d");
PrintDomain(theLine);
PrintParameter("Location", aLoc);
PrintParameter("Direction", aDir);
}
public static void PrintCircle(
Circle2d theCircle)
{
PrintName("Circle 2d");
double aRadius = theCircle.
Radius();
PrintElementary2d(theCircle);
PrintParameter("Radius", aRadius);
}
public static void PrintEllipse(
Ellipse2d theEllipse)
{
PrintName("Ellipse 2d");
PrintElementary2d(theEllipse);
PrintParameter("Major Radius", aMajorRadius);
PrintParameter("Minor Radius", aMinorRadius);
}
public static void PrintHyperbola(
Hyperbola2d theHyperbola)
{
PrintName("Hyperbola 2d");
PrintElementary2d(theHyperbola);
PrintParameter("Major Radius", aMajorRadius);
PrintParameter("Minor Radius", aMinorRadius);
}
public static void PrintParabola(
Parabola2d theParabola)
{
PrintName("Parabola 2d");
double aFocal = theParabola.
Focal();
PrintElementary2d(theParabola);
PrintParameter("Focal", aFocal);
}
{
PrintName("Bezier Curve 2d");
int aDegree = theBezier.
Degree();
PrintDomain(theBezier);
PrintParameter("Degree", aDegree);
PrintParameter("Number Of Poles", aNumberOfPoles);
PrintCollection("Poles", aNumberOfPoles, (int i) =>
{
PrintParameter(aPole);
});
PrintCollection("Weights", aNumberOfPoles, (int i) =>
{
double aWeight = theBezier.
Weight(i);
PrintParameter(aWeight);
});
}
{
PrintName("BSpline Curve 2d");
int aDegree = theBSpline.
Degree();
PrintDomain(theBSpline);
PrintParameter("Degree", aDegree);
PrintParameter("Number Of Knots", aNumberOfKnots);
PrintParameter("Number Of Poles", aNumberOfPoles);
PrintCollection("Knots", aNumberOfKnots, (int i) =>
{
double aKnot = theBSpline.
Knot(i);
PrintParameter(aKnot);
});
PrintCollection("Multiplicities", aNumberOfKnots, (int i) =>
{
PrintParameter(aMultiplicity);
});
PrintCollection("Poles", aNumberOfPoles, (int i) =>
{
PrintParameter(aPole);
});
PrintCollection("Weights", aNumberOfPoles, (int i) =>
{
double aWeight = theBSpline.
Weight(i);
PrintParameter(aWeight);
});
}
{
PrintName("Offset Curve 2d");
double anOffset = theOffset.
Offset();
PrintDomain(theOffset);
PrintParameter("Offset", anOffset);
Console.Write("Basis Curve = ");
}
}
}
Defines 2D B-Spline curve.
Definition BSplineCurve2d.cs:19
int NumberOfKnots()
Returns number of unique knots.
Definition BSplineCurve2d.cs:107
double Weight(int theIndex)
Returns a weight value.
Definition BSplineCurve2d.cs:193
int Multiplicity(int theIndex)
Returns a knot multiplicity.
Definition BSplineCurve2d.cs:147
int Degree()
Returns degree.
Definition BSplineCurve2d.cs:99
cadex.Geom.Point2d Pole(int theIndex)
Returns a pole value.
Definition BSplineCurve2d.cs:169
int NumberOfPoles()
Returns number of poles.
Definition BSplineCurve2d.cs:115
double Knot(int theIndex)
Returns a knot value.
Definition BSplineCurve2d.cs:125
Defines 2D Bezier curve.
Definition BezierCurve2d.cs:19
int Degree()
Returns degree.
Definition BezierCurve2d.cs:80
double Weight(int theIndex)
Returns a weight value.
Definition BezierCurve2d.cs:121
cadex.Geom.Point2d Pole(int theIndex)
Returns a pole value.
Definition BezierCurve2d.cs:97
int NumberOfPoles()
Returns number of poles.
Definition BezierCurve2d.cs:87
Defines 2D circle.
Definition Circle2d.cs:22
double Radius()
Returns radius.
Definition Circle2d.cs:67
cadex.Geom.CurveType Type()
Returns a curve type.
Definition Curve2d.cs:63
Defines 2D ellipse.
Definition Ellipse2d.cs:22
double MinorRadius()
Returns a minor radius.
Definition Ellipse2d.cs:77
double MajorRadius()
Returns a major radius.
Definition Ellipse2d.cs:69
Defines 2D hyperbola.
Definition Hyperbola2d.cs:22
double MajorRadius()
Returns a major radius.
Definition Hyperbola2d.cs:67
double MinorRadius()
Returns a minor radius.
Definition Hyperbola2d.cs:75
Defines 2D line.
Definition Line2d.cs:19
cadex.Geom.Point2d Location()
Returns an origin point.
Definition Line2d.cs:66
cadex.Geom.Direction2d Direction()
Returns a direction.
Definition Line2d.cs:74
Defines 2D offset curve.
Definition OffsetCurve2d.cs:19
double Offset()
Returns offset value.
Definition OffsetCurve2d.cs:73
cadex.Geom.Curve2d BasisCurve()
Returns basis curve.
Definition OffsetCurve2d.cs:61
Defines 2D parabola.
Definition Parabola2d.cs:22
double Focal()
Returns a focal.
Definition Parabola2d.cs:69
shape_explorer.cs
using System;
namespace brep_geometry
{
{
public override void Apply(
Part thePart)
{
Console.WriteLine(
"Part = \"{0}\"", thePart.
Name());
var aBodies = thePart.
Bodies();
if (!aBodies.IsEmpty)
{
ExploreBRep(aBodies);
}
}
private void ExploreBRep(BodyList theBodies)
{
for (
int i = 0; i < theBodies.
Count; ++i)
{
var aBody = theBodies[i];
Console.WriteLine("Body {0}: type {1}", i, BodyType(aBody));
{
var aShape = j.Next();
ExploreShape(aShape);
}
}
}
private void ExploreShape(
Shape theShape)
{
{
}
++myBase.myNestingLevel;
while (aShapeIt.HasNext())
{
Shape aShape = aShapeIt.
Next();
PrintShape(aShape);
ExploreShape(aShape);
}
{
myCurrentFace = null;
}
--myBase.myNestingLevel;
}
private string BodyType(
Body theBody)
{
{
return "Sheet";
}
{
return "Solid";
}
{
return "Wireframe";
}
return "Undefined";
}
private void PrintShape(
Shape theShape)
{
myBase.PrintTabulation();
{
Console.Write("Solid");
break;
PrintShell(
Shell.
Cast(theShape));
break;
PrintWire(
Wire.
Cast(theShape));
break;
break;
break;
PrintVertex(
Vertex.
Cast(theShape));
break;
default: Console.Write("Undefined"); break;
}
Console.WriteLine();
}
private void PrintShell(
Shell theWire)
{
BaseExplorer.PrintName("Shell");
++myBase.myNestingLevel;
--myBase.myNestingLevel;
}
private void PrintWire(
Wire theWire)
{
BaseExplorer.PrintName("Wire");
++myBase.myNestingLevel;
--myBase.myNestingLevel;
}
private void PrintFace(
Face theFace)
{
BaseExplorer.PrintName("Face");
++myBase.myNestingLevel;
Console.WriteLine();
myBase.PrintTabulation();
BaseExplorer.PrintName("Surface");
SurfaceExplorer.PrintSurface(aSurface);
--myBase.myNestingLevel;
}
private void PrintEdge(
Edge theEdge)
{
BaseExplorer.PrintName("Edge");
++myBase.myNestingLevel;
{
Console.Write("Degenerated: ");
}
BaseExplorer.PrintParameter(
"Tolerance", theEdge.
Tolerance());
{
double aFirstParameter = 0, aLastParameter = 0;
Curve aCurve = theEdge.
Curve(out aFirstParameter, out aLastParameter);
Console.WriteLine();
myBase.PrintTabulation();
BaseExplorer.PrintName("Curve");
BaseExplorer.PrintRange("Edge Range", aFirstParameter, aLastParameter);
CurveExplorer.PrintCurveInfo(aCurve);
}
if (myCurrentFace != null)
{
double aFirstParameter2d = 0, aLastParameter2d = 0;
Curve2d aPCurve = theEdge.
PCurve(myCurrentFace, out aFirstParameter2d, out aLastParameter2d);
Console.WriteLine();
myBase.PrintTabulation();
BaseExplorer.PrintName("PCurve");
BaseExplorer.PrintRange("Edge Range", aFirstParameter2d, aLastParameter2d);
PCurveExplorer.PrintPCurveInfo(aPCurve);
}
--myBase.myNestingLevel;
}
private void PrintVertex(
Vertex theVertex)
{
BaseExplorer.PrintName("Vertex");
BaseExplorer.PrintOrientation(theVertex.
Orientation());
BaseExplorer.PrintParameter("Tolerance", aTolerance);
BaseExplorer.PrintParameter("Location", aLoc);
}
private BaseExplorer myBase = new BaseExplorer();
private Face myCurrentFace =
null;
}
}
Provides a base body class.
Definition Body.cs:19
Defines an edge.
Definition Edge.cs:146
bool IsDegenerated()
Returns true if the edge is degenerated.
Definition Edge.cs:422
cadex.Geom.Curve Curve(out double theFirstParameter, out double theLastParameter)
Returns edge 3D curve and its limits.
Definition Edge.cs:261
static cadex.ModelData.Edge Cast(cadex.ModelData.Shape theShape)
Casts a base class object to Edge.
Definition Edge.cs:448
double Tolerance()
Returns edge tolerance.
Definition Edge.cs:415
cadex.Geom.Curve2d PCurve(cadex.ModelData.Face theFace, out double theFirstParameter, out double theLastParameter)
Returns edge p-curve on a face and its limits.
Definition Edge.cs:370
Defines a topological face.
Definition Face.cs:120
static cadex.ModelData.Face Cast(cadex.ModelData.Shape theShape)
Cast operator.
Definition Face.cs:250
cadex.Geom.Surface Surface()
Returns underlying surface.
Definition Face.cs:216
cadex.UTF16String Name()
Returns a name.
Definition ModelElement.cs:67
Element visitor with empty implementation.
Definition ModelElementVoidVisitor.cs:20
Defines a leaf node in the scene graph hierarchy.
Definition Part.cs:23
Base class of topological shapes.
Definition Shape.cs:178
cadex.ModelData.ShapeOrientation Orientation()
Returns orientation flag.
Definition Shape.cs:230
cadex.ModelData.ShapeType Type()
Returns a shape type. For a null object returns Undefined.
Definition Shape.cs:222
Iterates over subshapes in a shape.
Definition ShapeIterator.cs:58
Provides a sheet body composed of faces and shells.
Definition SheetBody.cs:19
Defines a connected set of faces.
Definition Shell.cs:29
Provides a solid body composed of solids.
Definition SolidBody.cs:19
Defines topological vertex.
Definition Vertex.cs:32
double Tolerance()
Returns vertex tolerance.
Definition Vertex.cs:89
cadex.Geom.Point Point()
Returns a 3D point this vertex resides at.
Definition Vertex.cs:74
Defines a connected set of edges.
Definition Wire.cs:30
Provides a wireframe body composed of edges and wires.
Definition WireframeBody.cs:19
Definition ArrayDouble2.cs:12
ShapeType
Defines shape type.
Definition ShapeType.cs:17
surface_explorer.cs
using System;
namespace brep_geometry
{
class SurfaceExplorer : BaseExplorer
{
public static void PrintSurface(
Surface theSurface)
{
switch (theSurface.
Type())
{
PrintPlane(
Plane.
Cast(theSurface));
break;
break;
break;
break;
break;
break;
break;
break;
break;
break;
default:
break;
}
}
public static void PrintPlane(
Plane thePlane)
{
PrintName("Plane");
PrintElementary(thePlane);
}
{
PrintName("Cylinder");
double aRadius = theCylinder.
Radius();
PrintElementary(theCylinder);
PrintParameter("Radius", aRadius);
}
{
PrintName("Cone");
double aRadius = theCone.
Radius();
PrintElementary(theCone);
PrintParameter("Radius", aRadius);
PrintParameter("Semi-Angle", aSemiAngle);
}
{
PrintName("Sphere");
double aRadius = theSphere.
Radius();
PrintElementary(theSphere);
PrintParameter("Radius", aRadius);
}
{
PrintName("Torus");
PrintElementary(theTorus);
PrintParameter("Major Radius", aMajorRadius);
PrintParameter("Minor Radius", aMinorRadius);
}
{
PrintName("Linear Extrusion Surface");
Direction aDir = theLinearExtrusion.
Direction();
PrintDomain(theLinearExtrusion);
PrintParameter("Direction", aDir);
Console.Write("Basis Curve = ");
CurveExplorer.PrintCurveInfo(theLinearExtrusion.
BasisCurve());
}
{
PrintName("Revolution Surface");
PrintDomain(theRevolution);
PrintParameter("Location", aLoc);
PrintParameter("Direction", aDir);
Console.Write("Basis Curve = ");
CurveExplorer.PrintCurveInfo(theRevolution.BasisCurve());
}
{
PrintName("Bezier Surface");
int aUDegree = theBezier.
UDegree();
int aVDegree = theBezier.
VDegree();
PrintDomain(theBezier);
PrintParameter("U Degree", aUDegree);
PrintParameter("V Degree", aVDegree);
PrintParameter("Number Of U Poles", aNumberOfUPoles);
PrintParameter("Number Of V Poles", aNumberOfVPoles);
PrintCollection("Poles", aNumberOfUPoles, aNumberOfVPoles, (int i, int j) =>
{
PrintParameter(aPole);
});
PrintCollection("Weights", aNumberOfUPoles, aNumberOfVPoles, (int i, int j) =>
{
double aWeight = theBezier.
Weight(i, j);
PrintParameter(aWeight);
});
}
{
PrintName("BSpline Surface");
int aUDegree = theBSpline.
UDegree();
int aVDegree = theBSpline.
VDegree();
PrintDomain(theBSpline);
PrintParameter("U Degree", aUDegree);
PrintParameter("V Degree", aVDegree);
PrintParameter("Number Of U Knots", aNumberOfUKnots);
PrintParameter("Number Of V Knots", aNumberOfVKnots);
PrintParameter("Number Of U Poles", aNumberOfUPoles);
PrintParameter("Number Of V Poles", aNumberOfVPoles);
PrintCollection("U Knots", aNumberOfUKnots, (int i) =>
{
double aKnot = theBSpline.
UKnot(i);
PrintParameter(aKnot);
});
PrintCollection("V Knots", aNumberOfVKnots, (int i) =>
{
double aKnot = theBSpline.
VKnot(i);
PrintParameter(aKnot);
});
PrintCollection("U Multiplicities", aNumberOfUKnots, (int i) =>
{
PrintParameter(aUMultiplicity);
});
PrintCollection("V Multiplicities", aNumberOfVKnots, (int i) =>
{
PrintParameter(aVMultiplicity);
});
PrintCollection("Poles", aNumberOfUPoles, aNumberOfVPoles, (int i, int j) =>
{
PrintParameter(aPole);
});
PrintCollection("Weights", aNumberOfUPoles, aNumberOfVPoles, (int i, int j) =>
{
double aWeight = theBSpline.
Weight(i, j);
PrintParameter(aWeight);
});
}
{
PrintName("Offset Surface");
double anOffset = theOffset.
Offset();
PrintDomain(theOffset);
PrintParameter("Offset", anOffset);
Console.Write("Basis Surface = ");
}
}
}
Defines a B-Spline surface.
Definition BSplineSurface.cs:38
int VMultiplicity(int theVIndex)
Returns a V knot multiplicity.
Definition BSplineSurface.cs:289
int NumberOfUPoles()
Returns number of U-poles.
Definition BSplineSurface.cs:151
cadex.Geom.Point Pole(int theUIndex, int theVIndex)
Returns a pole value.
Definition BSplineSurface.cs:185
int VDegree()
Returns V-degree.
Definition BSplineSurface.cs:143
double Weight(int theUIndex, int theVIndex)
Returns a weight value.
Definition BSplineSurface.cs:210
int UDegree()
Returns U-degree.
Definition BSplineSurface.cs:135
double VKnot(int theVIndex)
Returns a V-knot value.
Definition BSplineSurface.cs:245
double UKnot(int theUIndex)
Returns a U-knot value.
Definition BSplineSurface.cs:235
int NumberOfVKnots()
Returns number of unique V-knots.
Definition BSplineSurface.cs:175
int NumberOfVPoles()
Returns number of V-poles.
Definition BSplineSurface.cs:159
int UMultiplicity(int theUIndex)
Returns a U knot multiplicity.
Definition BSplineSurface.cs:279
int NumberOfUKnots()
Returns number of unique U-knots.
Definition BSplineSurface.cs:167
Defines a Bezier surface.
Definition BezierSurface.cs:32
double Weight(int theUIndex, int theVIndex)
Returns a weight value.
Definition BezierSurface.cs:142
int NumberOfUPoles()
Returns number of U-poles.
Definition BezierSurface.cs:100
int NumberOfVPoles()
Returns number of V-poles.
Definition BezierSurface.cs:107
cadex.Geom.Point Pole(int theUIndex, int theVIndex)
Returns a pole value.
Definition BezierSurface.cs:117
int UDegree()
Returns degree.
Definition BezierSurface.cs:86
int VDegree()
Returns degree.
Definition BezierSurface.cs:93
Defines a conical surface.
Definition ConicalSurface.cs:45
double SemiAngle()
Returns semi-angle.
Definition ConicalSurface.cs:104
double Radius()
Returns reference radius.
Definition ConicalSurface.cs:112
Defines a cylindrical surface.
Definition CylindricalSurface.cs:40
double Radius()
Returns radius.
Definition CylindricalSurface.cs:89
Defines an offset surface.
Definition OffsetSurface.cs:32
double Offset()
Returns offset value.
Definition OffsetSurface.cs:91
cadex.Geom.Surface BasisSurface()
Returns basis surface.
Definition OffsetSurface.cs:79
Defines a plane.
Definition Plane.cs:29
Defines a spherical surface.
Definition SphericalSurface.cs:44
double Radius()
Returns radius.
Definition SphericalSurface.cs:93
cadex.Geom.SurfaceType Type()
Returns a surface type.
Definition Surface.cs:134
Defines a surface of linear extrusion.
Definition SurfaceOfLinearExtrusion.cs:40
Defines a surface of revolution.
Definition SurfaceOfRevolution.cs:50
cadex.Geom.Point Location()
Returns an origin point of a rotation axis.
Definition SurfaceOfRevolution.cs:96
Defines a toroidal surface.
Definition ToroidalSurface.cs:46
double MajorRadius()
Returns major radius.
Definition ToroidalSurface.cs:94
double MinorRadius()
Returns minor radius.
Definition ToroidalSurface.cs:101
SurfaceType
Defines surface type.
Definition SurfaceType.cs:17
Program.cs
using System;
namespace brep_geometry
{
class Program
{
static int Main(string[] args)
{
string aKey = MTKLicenseKey.Value();
{
Console.WriteLine("Failed to activate Manufacturing Toolkit license.");
return 1;
}
if (args.Length != 1)
{
Console.WriteLine("Usage: " + System.Reflection.Assembly.GetExecutingAssembly().Location
+ " <input_file>, where:");
Console.WriteLine(" <input_file> is a name of the file to be read");
return 1;
}
string aSource = args[0];
{
Console.WriteLine("Failed to read the file " + aSource);
return 1;
}
ShapeExplorer aVisitor = new ShapeExplorer();
return 0;
}
}
}
Activates the license key.
Definition LicenseManager.cs:48
Provides MTK data model.
Definition Model.cs:30
void Accept(cadex.ModelData.ModelElementVisitor theVisitor)
Accepts a visitor.
Definition Model.cs:179
Reads supported formats, see Import section.
Definition ModelReader.cs:17
Defines a Unicode (UTF-16) string wrapping a standard string.
Definition UTF16String.cs:17
Contains classes, namespaces, enums, types, and global functions related to Manufacturing Toolkit.
Definition BaseObject.cs:12