- 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}, {2}); ", theValue.
X(), theValue.
Y(), theValue.
Z());
}
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.hxx:33
Defines a right-handed or left-handed axis in 3D.
Definition Axis3d.hxx:32
const Direction & XDirection() const
Returns a X-direction of the axis.
Definition Axis3d.cxx:112
const Point & Location() const
Returns an origin point.
Definition Axis3d.cxx:97
const Direction & YDirection() const
Returns a Y-direction of the axis placement.
Definition Axis3d.cxx:120
const Direction & Axis() const
Returns a Z-direction of the axis.
Definition Axis3d.cxx:105
Base class for 2D conic curves.
Definition Conic2d.hxx:29
Axis2d Position() const
Returns an axis.
Definition Conic2d.cxx:57
Base class for 3D conic curves.
Definition Conic.hxx:29
Axis3d Position() const
Returns an axis.
Definition Conic.cxx:57
Base class for 2D curves.
Definition Curve2d.hxx:38
double UMin() const
Returns a minimum parameter of a definition domain.
Definition Curve2d.cxx:261
double UMax() const
Returns a maximum parameter of a definition domain.
Definition Curve2d.cxx:269
Base class for 3D curves.
Definition Curve.hxx:37
double UMax() const
Returns a maximum parameter of a definition domain.
Definition Curve.cxx:446
double UMin() const
Returns a minimum parameter of a definition domain.
Definition Curve.cxx:438
Defines a 2D Direction.
Definition Direction2d.hxx:30
Defines a 3D Direction.
Definition Direction.hxx:32
Base class for elementary surfaces.
Definition ElementarySurface.hxx:32
Geom::Axis3d Position() const
Returns a surface axis.
Definition ElementarySurface.cxx:54
Defines a 3D point.
Definition Point2d.hxx:32
Defines a 3D point.
Definition Point.hxx:34
Base class for geometrical surfaces.
Definition Surface.hxx:38
double VMax() const
Returns a maximum parameter of a definition domain in V direction.
Definition Surface.cxx:534
double UMax() const
Returns a maximum parameter of a definition domain in U direction.
Definition Surface.cxx:520
double UMin() const
Returns a minimum parameter of a definition domain in U direction.
Definition Surface.cxx:513
double VMin() const
Returns a minimum parameter of a definition domain in V direction.
Definition Surface.cxx:527
Contains classes, types, enums, and functions related to geometric entities.
Defines classes, types, enums, and functions related to topological entities and scene graph elements...
ShapeOrientation
Defines shape orientation.
Definition ShapeOrientation.hxx:25
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.hxx:29
int NumberOfKnots() const
Returns number of unique knots.
Definition BSplineCurve.cxx:232
double Knot(int theIndex) const
Returns a knot value.
Definition BSplineCurve.cxx:250
Point Pole(int theIndex) const
Returns a pole value.
Definition BSplineCurve.cxx:294
int NumberOfPoles() const
Returns number of poles.
Definition BSplineCurve.cxx:240
int Multiplicity(int theIndex) const
Returns a knot multiplicity.
Definition BSplineCurve.cxx:272
int Degree() const
Returns degree.
Definition BSplineCurve.cxx:224
double Weight(int theIndex) const
Returns a weight value.
Definition BSplineCurve.cxx:318
Defines 3D Bezier curve.
Definition BezierCurve.hxx:29
Point Pole(int theIndex) const
Returns a pole value.
Definition BezierCurve.cxx:149
int NumberOfPoles() const
Returns number of poles.
Definition BezierCurve.cxx:139
int Degree() const
Returns degree.
Definition BezierCurve.cxx:131
double Weight(int theIndex) const
Returns a weight value.
Definition BezierCurve.cxx:175
Defines 3D circle.
Definition Circle.hxx:27
double Radius() const
Returns radius.
Definition Circle.cxx:84
CurveType Type() const
Returns a curve type.
Definition Curve.cxx:424
Defines 3D ellipse.
Definition Ellipse.hxx:27
double MinorRadius() const
Returns a minor radius.
Definition Ellipse.cxx:105
double MajorRadius() const
Returns a major radius.
Definition Ellipse.cxx:97
Defines 3D hyperbola.
Definition Hyperbola.hxx:29
double MinorRadius() const
Returns a minor radius.
Definition Hyperbola.cxx:102
double MajorRadius() const
Returns a major radius.
Definition Hyperbola.cxx:94
Defines 3D line.
Definition Line.hxx:29
Geom::Point Location() const
Returns an origin point.
Definition Line.cxx:106
Geom::Direction Direction() const
Returns a direction.
Definition Line.cxx:114
Defines 3D offset curve.
Definition OffsetCurve.hxx:27
double Offset() const
Returns offset value.
Definition OffsetCurve.cxx:112
Curve BasisCurve() const
Returns basis curve.
Definition OffsetCurve.cxx:104
Geom::Direction Direction() const
Returns reference direction.
Definition OffsetCurve.cxx:120
Defines 3D parabola.
Definition Parabola.hxx:27
double Focal() const
Returns a focal.
Definition Parabola.cxx:87
CurveType
Defines curve type.
Definition CurveType.hxx:25
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.hxx:29
double Weight(int theIndex) const
Returns a weight value.
Definition BSplineCurve2d.cxx:302
int NumberOfKnots() const
Returns number of unique knots.
Definition BSplineCurve2d.cxx:216
int Multiplicity(int theIndex) const
Returns a knot multiplicity.
Definition BSplineCurve2d.cxx:256
int NumberOfPoles() const
Returns number of poles.
Definition BSplineCurve2d.cxx:224
double Knot(int theIndex) const
Returns a knot value.
Definition BSplineCurve2d.cxx:234
int Degree() const
Returns degree.
Definition BSplineCurve2d.cxx:208
Point2d Pole(int theIndex) const
Returns a pole value.
Definition BSplineCurve2d.cxx:278
Defines 2D Bezier curve.
Definition BezierCurve2d.hxx:29
int NumberOfPoles() const
Returns number of poles.
Definition BezierCurve2d.cxx:126
double Weight(int theIndex) const
Returns a weight value.
Definition BezierCurve2d.cxx:160
Point2d Pole(int theIndex) const
Returns a pole value.
Definition BezierCurve2d.cxx:136
int Degree() const
Returns degree.
Definition BezierCurve2d.cxx:119
Defines 2D circle.
Definition Circle2d.hxx:29
double Radius() const
Returns radius.
Definition Circle2d.cxx:77
CurveType Type() const
Returns a curve type.
Definition Curve2d.cxx:253
Defines 2D ellipse.
Definition Ellipse2d.hxx:29
double MinorRadius() const
Returns a minor radius.
Definition Ellipse2d.cxx:92
double MajorRadius() const
Returns a major radius.
Definition Ellipse2d.cxx:84
Defines 2D hyperbola.
Definition Hyperbola2d.hxx:29
double MinorRadius() const
Returns a minor radius.
Definition Hyperbola2d.cxx:92
double MajorRadius() const
Returns a major radius.
Definition Hyperbola2d.cxx:84
Defines 2D line.
Definition Line2d.hxx:30
Point2d Location() const
Returns an origin point.
Definition Line2d.cxx:88
Direction2d Direction() const
Returns a direction.
Definition Line2d.cxx:96
Defines 2D offset curve.
Definition OffsetCurve2d.hxx:29
double Offset() const
Returns offset value.
Definition OffsetCurve2d.cxx:78
Curve2d BasisCurve() const
Returns basis curve.
Definition OffsetCurve2d.cxx:70
Defines 2D parabola.
Definition Parabola2d.hxx:29
double Focal() const
Returns a focal.
Definition Parabola2d.cxx:79
shape_explorer.cs
using cadex.Collections;
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.hxx:28
Defines an edge.
Definition Edge.hxx:31
Geom::Curve Curve(double &theFirstParameter, double &theLastParameter) const
Returns edge 3D curve and its limits.
Definition Edge.cxx:404
double Tolerance() const
Returns edge tolerance.
Definition Edge.cxx:683
Geom::Curve2d PCurve(const Face &theFace, double &theFirstParameter, double &theLastParameter) const
Returns edge p-curve on a face and its limits.
Definition Edge.cxx:644
bool IsDegenerated() const
Returns true if the edge is degenerated.
Definition Edge.cxx:690
static const Edge & Cast(const Shape &theShape)
Casts a base class object to Edge.
Definition Edge.cxx:715
Defines a topological face.
Definition Face.hxx:31
Geom::Surface Surface() const
Returns underlying surface.
Definition Face.cxx:322
static const Face & Cast(const Shape &theShape)
Cast operator.
Definition Face.cxx:353
UTF16String Name() const
Returns a name.
Definition ModelElement.cxx:54
Element visitor with empty implementation.
Definition ModelElementVisitor.hxx:63
Defines a leaf node in the scene graph hierarchy.
Definition Part.hxx:32
Base class of topological shapes.
Definition Shape.hxx:37
ShapeOrientation Orientation() const
Returns orientation flag.
Definition Shape.cxx:272
ShapeType Type() const
Returns a shape type. For a null object returns Undefined.
Definition Shape.cxx:260
Iterates over subshapes in a shape.
Definition ShapeIterator.hxx:30
Provides a sheet body composed of faces and shells.
Definition SheetBody.hxx:32
Defines a connected set of faces.
Definition Shell.hxx:30
Provides a solid body composed of solids.
Definition SolidBody.hxx:28
Defines topological vertex.
Definition Vertex.hxx:28
Geom::Point Point() const
Returns a 3D point this vertex resides at.
Definition Vertex.cxx:98
double Tolerance() const
Returns vertex tolerance.
Definition Vertex.cxx:118
Defines a connected set of edges.
Definition Wire.hxx:30
Provides a wireframe body composed of edges and wires.
Definition WireframeBody.hxx:32
ShapeType
Defines shape type.
Definition ShapeType.hxx:25
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.hxx:31
int NumberOfUKnots() const
Returns number of unique U-knots.
Definition BSplineSurface.cxx:442
int UMultiplicity(int theUIndex) const
Returns a U knot multiplicity.
Definition BSplineSurface.cxx:554
int UDegree() const
Returns U-degree.
Definition BSplineSurface.cxx:410
int VDegree() const
Returns V-degree.
Definition BSplineSurface.cxx:418
int NumberOfVPoles() const
Returns number of V-poles.
Definition BSplineSurface.cxx:434
double VKnot(int theVIndex) const
Returns a V-knot value.
Definition BSplineSurface.cxx:520
int VMultiplicity(int theVIndex) const
Returns a V knot multiplicity.
Definition BSplineSurface.cxx:564
double UKnot(int theUIndex) const
Returns a U-knot value.
Definition BSplineSurface.cxx:510
double Weight(int theUIndex, int theVIndex) const
Returns a weight value.
Definition BSplineSurface.cxx:485
int NumberOfUPoles() const
Returns number of U-poles.
Definition BSplineSurface.cxx:426
Point Pole(int theUIndex, int theVIndex) const
Returns a pole value.
Definition BSplineSurface.cxx:460
int NumberOfVKnots() const
Returns number of unique V-knots.
Definition BSplineSurface.cxx:450
Defines a Bezier surface.
Definition BezierSurface.hxx:30
int NumberOfUPoles() const
Returns number of U-poles.
Definition BezierSurface.cxx:211
double Weight(int theUIndex, int theVIndex) const
Returns a weight value.
Definition BezierSurface.cxx:253
Point Pole(int theUIndex, int theVIndex) const
Returns a pole value.
Definition BezierSurface.cxx:228
int UDegree() const
Returns degree.
Definition BezierSurface.cxx:197
int VDegree() const
Returns degree.
Definition BezierSurface.cxx:204
int NumberOfVPoles() const
Returns number of V-poles.
Definition BezierSurface.cxx:218
Defines a conical surface.
Definition ConicalSurface.hxx:27
double Radius() const
Returns reference radius.
Definition ConicalSurface.cxx:140
double SemiAngle() const
Returns semi-angle.
Definition ConicalSurface.cxx:132
Defines a cylindrical surface.
Definition CylindricalSurface.hxx:29
double Radius() const
Returns radius.
Definition CylindricalSurface.cxx:110
Defines an offset surface.
Definition OffsetSurface.hxx:27
Surface BasisSurface() const
Returns basis surface.
Definition OffsetSurface.cxx:85
double Offset() const
Returns offset value.
Definition OffsetSurface.cxx:93
Defines a plane.
Definition Plane.hxx:31
Defines a spherical surface.
Definition SphericalSurface.hxx:29
double Radius() const
Returns radius.
Definition SphericalSurface.cxx:116
SurfaceType Type() const
Returns a surface type.
Definition Surface.cxx:492
Defines a surface of linear extrusion.
Definition SurfaceOfLinearExtrusion.hxx:27
Defines a surface of revolution.
Definition SurfaceOfRevolution.hxx:29
Geom::Point Location() const
Returns an origin point of a rotation axis.
Definition SurfaceOfRevolution.cxx:121
Defines a toroidal surface.
Definition ToroidalSurface.hxx:29
double MajorRadius() const
Returns major radius.
Definition ToroidalSurface.cxx:127
double MinorRadius() const
Returns minor radius.
Definition ToroidalSurface.cxx:134
SurfaceType
Defines surface type.
Definition SurfaceType.hxx:25
Program.cs
using System;
namespace brep_geometry
{
class Program
{
static int Main(string[] args)
{
string aKey = MTKLicenseKey.Value();
if (!LicenseManager.Activate(aKey))
{
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;
}
}
}
Provides MTK data model.
Definition Model.hxx:39
void Accept(ModelElementVisitor &theVisitor) const
Accepts a visitor.
Definition Model.cxx:276
Reads supported formats, see Import section.
Definition ModelReader.hxx:32
Defines a Unicode (UTF-16) string wrapping a standard string.
Definition UTF16String.hxx:29
Contains classes, namespaces, enums, types, and global functions related to Manufacturing Toolkit.
Definition LicenseManager_LicenseError.hxx:29