IGeometryFactory
using Autodesk.DesignScript.Runtime;
namespace Autodesk.DesignScript.Interfaces
{
[SupressImportIntoVM]
public interface IGeometryFactory
{
IArcEntity ArcByThreePoints(IPointEntity firstPoint, IPointEntity secondPoint, IPointEntity thirdPoint);
IArcEntity ArcByCenterPointRadiusAngle(IPointEntity center, double radius, double startAngle, double endAngle, IVectorEntity normal);
IArcEntity ArcByCenterPointStartPointSweepAngle(IPointEntity centerPoint, IPointEntity startPoint, double sweepAngle, IVectorEntity normal);
IArcEntity ArcByCenterPointStartPointEndPoint(IPointEntity centerPoint, IPointEntity startPoint, IPointEntity endPoint);
IArcEntity ArcByFillet(ICurveEntity curve1, ICurveEntity curve2, double radius);
IArcEntity ArcByFilletTangentToCurve(ICurveEntity curve1, ICurveEntity curveTangentTo, ICurveEntity curve2);
IArcEntity ArcByBestFitThroughPoints(IPointEntity[] points);
IArcEntity[] ArcByStartEndAndTangencies(IPointEntity point1, IVectorEntity vector1, IPointEntity point2, IVectorEntity vector2);
IArcEntity ArcByStartPointEndPointStartTangent(IPointEntity startPoint, IPointEntity endPoint, IVectorEntity startTangent);
IBoundingBoxEntity BoundingBoxByGeometry(IGeometryEntity geom);
IBoundingBoxEntity BoundingBoxByGeometry(IGeometryEntity[] geom);
IBoundingBoxEntity BoundingBoxByGeometryCoordinateSystem(IGeometryEntity geom, [DefaultArgument("CoordinateSystem.ByOrigin(0, 0, 0)")] ICoordinateSystemEntity cs);
IBoundingBoxEntity BoundingBoxByGeometryCoordinateSystem(IGeometryEntity[] geom, [DefaultArgument("CoordinateSystem.ByOrigin(0, 0, 0)")] ICoordinateSystemEntity cs);
IBoundingBoxEntity BoundingBoxByCorners([DefaultArgument("Point.ByCoordinates(0, 0, 0)")] IPointEntity min, [DefaultArgument("Point.ByCoordinates(1, 1, 1)")] IPointEntity max);
IBoundingBoxEntity BoundingBoxByCornersCoordinateSystem([DefaultArgument("Point.ByCoordinates(0, 0, 0)")] IPointEntity min, [DefaultArgument("Point.ByCoordinates(1, 1, 1)")] IPointEntity max, [DefaultArgument("CoordinateSystem.ByOrigin(0, 0, 0)")] ICoordinateSystemEntity cs);
ICircleEntity CircleByCenterPointRadius([DefaultArgument("Point.ByCoordinates(0, 0, 0)")] IPointEntity centerPoint, double radius = 1);
ICircleEntity CircleByCenterPointRadiusNormal([DefaultArgument("Point.ByCoordinates(0, 0, 0)")] IPointEntity centerPoint, [DefaultArgument("1")] double radius, [DefaultArgument("Vector.ByCoordinates(1, 0, 0)")] IVectorEntity normal);
ICircleEntity CircleByPlaneRadius(IPlaneEntity plane, double radius = 1);
ICircleEntity CircleByThreePoints(IPointEntity p1, IPointEntity p2, IPointEntity p3);
ICircleEntity CircleByBestFitThroughPoints(IPointEntity[] points);
IConeEntity ConeByPointsRadius([DefaultArgument("Point.ByCoordinates(0, 0, 0)")] IPointEntity startPoint, [DefaultArgument("Point.ByCoordinates(0, 0, 1)")] IPointEntity endPoint, double startRadius = 1);
IConeEntity ConeByPointsRadii([DefaultArgument("Point.ByCoordinates(0, 0, 0)")] IPointEntity startPoint, [DefaultArgument("Point.ByCoordinates(0, 0, 1)")] IPointEntity endPoint, double startRadius = 1, double endRadius = 1);
IConeEntity ConeByCoordinateSystemHeightRadius([DefaultArgument("CoordinateSystem.ByOrigin(0, 0, 0)")] ICoordinateSystemEntity cs, double height = 1, double startRadius = 1);
IConeEntity ConeByCoordinateSystemHeightRadii([DefaultArgument("CoordinateSystem.ByOrigin(0, 0, 0)")] ICoordinateSystemEntity cs, double height = 1, double startRadius = 1, double endRadius = 1);
ICylinderEntity CylinderByRadiusHeight([DefaultArgument("CoordinateSystem.ByOrigin(0, 0, 0)")] ICoordinateSystemEntity cs, double radius = 1, double height = 1);
ICylinderEntity CylinderByPointsRadius([DefaultArgument("Point.ByCoordinates(0, 0, 0)")] IPointEntity startPoint, [DefaultArgument("Point.ByCoordinates(0, 0, 1)")] IPointEntity endPoint, double radius = 1);
ICoordinateSystemEntity CoordinateSystemIdentity();
ICoordinateSystemEntity CoordinateSystemByMatrix(double[] matrix);
ICoordinateSystemEntity CoordinateSystemByOrigin(double x = 0, double y = 0);
ICoordinateSystemEntity CoordinateSystemByOrigin(double x = 0, double y = 0, double z = 0);
ICoordinateSystemEntity CoordinateSystemByOrigin([DefaultArgument("Point.ByCoordinates(0, 0, 0)")] IPointEntity origin);
ICoordinateSystemEntity CoordinateSystemByPlane(IPlaneEntity plane);
ICoordinateSystemEntity CoordinateSystemByOriginVectors([DefaultArgument("Point.ByCoordinates(0, 0, 0)")] IPointEntity origin, [DefaultArgument("Vector.ByCoordinates(1, 0, 0)")] IVectorEntity xAxis, [DefaultArgument("Vector.ByCoordinates(0, 1, 0)")] IVectorEntity yAxis);
ICoordinateSystemEntity CoordinateSystemByOriginVectors([DefaultArgument("Point.ByCoordinates(0, 0, 0)")] IPointEntity origin, [DefaultArgument("Vector.ByCoordinates(1, 0, 0)")] IVectorEntity xAxis, [DefaultArgument("Vector.ByCoordinates(0, 1, 0)")] IVectorEntity yAxis, [DefaultArgument("Vector.ByCoordinates(0, 0, 1)")] IVectorEntity zAxis);
ICoordinateSystemEntity CoordinateSystemByCylindricalCoordinates([DefaultArgument("CoordinateSystem.ByOrigin(0, 0, 0)")] ICoordinateSystemEntity cs, double radius = 0, double theta = 0, double height = 0);
ICoordinateSystemEntity CoordinateSystemBySphericalCoordinates([DefaultArgument("CoordinateSystem.ByOrigin(0, 0, 0)")] ICoordinateSystemEntity cs, double radius = 0, double theta = 0, double phi = 0);
ICuboidEntity CuboidByLengths(double width = 1, double length = 1, double height = 1);
ICuboidEntity CuboidByLengths([DefaultArgument("Point.ByCoordinates(0, 0, 0)")] IPointEntity origin, double width = 1, double length = 1, double height = 1);
ICuboidEntity CuboidByLengths([DefaultArgument("CoordinateSystem.ByOrigin(0, 0, 0)")] ICoordinateSystemEntity cs, double width = 1, double length = 1, double height = 1);
ICuboidEntity CuboidByCorners([DefaultArgument("Point.ByCoordinates(0, 0, 0)")] IPointEntity lowPoint, [DefaultArgument("Point.ByCoordinates(1, 1, 1)")] IPointEntity highPoint);
ICurveEntity CurveByParameterLineOnSurface(ISurfaceEntity baseSurface, IUVEntity startParams, IUVEntity endParams);
ICurveEntity CurveByBlendBetweenCurves(ICurveEntity curve1, ICurveEntity curve2, bool endOrStart1 = true, bool endOrStart2 = false);
ICurveEntity CurveByIsoCurveOnSurface(ISurfaceEntity baseSurface, int direction = 0, double parameter = 0);
IEllipseArcEntity EllipseArcByPlaneRadiiStartAngleSweepAngle(IPlaneEntity plane, double xRadius = 1, double yRadius = 1, double startAngle = 0, double sweepAngle = 180);
IEllipseEntity EllipseByOriginRadii([DefaultArgument("Point.ByCoordinates(0, 0, 0)")] IPointEntity origin, double xAxisRadius = 1, double yAxisRadius = 1);
IEllipseEntity EllipseByOriginVectors([DefaultArgument("Point.ByCoordinates(0, 0, 0)")] IPointEntity origin, [DefaultArgument("Vector.ByCoordinates(1, 0, 0)")] IVectorEntity xAxisRadius, [DefaultArgument("Vector.ByCoordinates(0, 2, 0)")] IVectorEntity yAxisRadius);
IEllipseEntity EllipseByCoordinateSystemRadii([DefaultArgument("CoordinateSystem.ByOrigin(0, 0, 0)")] ICoordinateSystemEntity origin, double xAxisRadius = 1, double yAxisRadius = 1);
IEllipseEntity EllipseByPlaneRadii(IPlaneEntity plane, double xAxisRadius = 1, double yAxisRadius = 1);
IHelixEntity HelixByAxis([DefaultArgument("Point.ByCoordinates(0, 0, 0)")] IPointEntity axisPoint, [DefaultArgument("Vector.ByCoordinates(0, 0, 1)")] IVectorEntity axisDirection, [DefaultArgument("Point.ByCoordinates(1, 0, 0)")] IPointEntity startPoint, double pitch = 1, double angleTurns = 360);
IIndexGroupEntity IndexGroupByIndices(uint a, uint b, uint c, uint d);
IIndexGroupEntity IndexGroupByIndices(uint a, uint b, uint c);
ILineEntity LineByStartPointEndPoint(IPointEntity startPoint, IPointEntity endPoint);
ILineEntity LineByBestFitThroughPoints(IPointEntity[] bestFitPoints);
ILineEntity LineByTangency(ICurveEntity curve, double parameter = 0);
ILineEntity LineByStartPointDirectionLength(IPointEntity startPoint, IVectorEntity direction, double length = 1);
INurbsCurveEntity NurbsCurveByControlPoints(IPointEntity[] points);
INurbsCurveEntity NurbsCurveByControlPoints(IPointEntity[] points, int degree = 3);
INurbsCurveEntity NurbsCurveByControlPoints(IPointEntity[] points, int degree = 3, bool closeCurve = false);
INurbsCurveEntity NurbsCurveByControlPointsWeightsKnots(IPointEntity[] points, double[] weights, double[] knots, int degree = 3);
INurbsCurveEntity NurbsCurveByPoints(IPointEntity[] points);
INurbsCurveEntity NurbsCurveByPoints(IPointEntity[] points, bool closeCurve = false);
INurbsCurveEntity NurbsCurveByPoints(IPointEntity[] points, int degree = 3);
INurbsCurveEntity NurbsCurveByPointsTangents(IPointEntity[] points, IVectorEntity startTangent, IVectorEntity endTangent);
INurbsSurfaceEntity NurbsSurfaceByPoints(IPointEntity[][] points, int uDegree = 3, int vDegree = 3);
INurbsSurfaceEntity NurbsSurfaceByPointsTangents(IPointEntity[][] points, IVectorEntity[] startUTangents, IVectorEntity[] endUTangents, IVectorEntity[] startVTangents, IVectorEntity[] endVTangents);
INurbsSurfaceEntity NurbsSurfaceByPointsTangentsKnotsDerivatives(IPointEntity[][] points, IVectorEntity[] startUTangents, IVectorEntity[] endUTangents, IVectorEntity[] startVTangents, IVectorEntity[] endVTangents, double[] uKnots, double[] vKnots, IVectorEntity[] cornerTwistDerivatives);
INurbsSurfaceEntity NurbsSurfaceByControlPoints(IPointEntity[][] controlVertices, int uDegree = 3, int vDegree = 3);
INurbsSurfaceEntity NurbsSurfaceByControlPointsWeightsKnots(IPointEntity[][] controlVertices, double[][] weights, double[] knotsU, double[] knotsV, int uDegree = 3, int vDegree = 3);
IPlaneEntity PlaneByOriginNormal([DefaultArgument("Point.ByCoordinates(0, 0, 0)")] IPointEntity origin, [DefaultArgument("Vector.ByCoordinates(0, 0, 1)")] IVectorEntity normal);
IPlaneEntity PlaneByOriginNormalXAxis([DefaultArgument("Point.ByCoordinates(0, 0, 0)")] IPointEntity origin, [DefaultArgument("Vector.ByCoordinates(0, 0, 1)")] IVectorEntity normal, [DefaultArgument("Vector.ByCoordinates(1, 0, 0)")] IVectorEntity xAxis);
IPlaneEntity PlaneByOriginXAxisYAxis([DefaultArgument("Point.ByCoordinates(0, 0, 0)")] IPointEntity origin, [DefaultArgument("Vector.ByCoordinates(1, 0, 0)")] IVectorEntity xAxis, [DefaultArgument("Vector.ByCoordinates(0, 1, 0)")] IVectorEntity yAxis);
IPlaneEntity PlaneByBestFitThroughPoints(IPointEntity[] points);
IPlaneEntity PlaneByLineAndPoint(ILineEntity line, IPointEntity point);
IPlaneEntity PlaneByThreePoints(IPointEntity p1, IPointEntity p2, IPointEntity p3);
IPlaneEntity PlaneXY();
IPlaneEntity PlaneXZ();
IPlaneEntity PlaneYZ();
IPointEntity PointByCoordinates(double x = 0, double y = 0);
IPointEntity PointOrigin();
IPointEntity PointByCoordinates(double x = 0, double y = 0, double z = 0);
IPointEntity PointByCartesianCoordinates([DefaultArgument("CoordinateSystem.ByOrigin(0, 0, 0)")] ICoordinateSystemEntity cs, double x = 0, double y = 0, double z = 0);
IPointEntity PointByCylindricalCoordinates([DefaultArgument("CoordinateSystem.ByOrigin(0, 0, 0)")] ICoordinateSystemEntity cs, double angle = 0, double elevation = 0, double radius = 1);
IPointEntity PointBySphericalCoordinates([DefaultArgument("CoordinateSystem.ByOrigin(0, 0, 0)")] ICoordinateSystemEntity cs, double phi = 0, double theta = 0, double radius = 1);
IPointEntity[] PointPruneDuplicates(IPointEntity[] points, double tolerance = 0.001);
IPolygonEntity PolygonByPoints(IPointEntity[] points);
IPolygonEntity PolygonRegularPolygon(ICircleEntity circle, int numberSides = 5);
IPolyCurveEntity PolyCurveByJoinedCurves(ICurveEntity[] curves);
IPolyCurveEntity PolyCurveByPoints(IPointEntity[] points, bool connectLastToFirst = false);
IPolyCurveEntity PolyCurveByThickeningCurve(ICurveEntity curve, double thickness, IVectorEntity nor);
IRectangleEntity RectangleByCornerPoints(IPointEntity[] points);
IRectangleEntity RectangleByCornerPoints(IPointEntity p1, IPointEntity p2, IPointEntity p3, IPointEntity p4);
IRectangleEntity RectangleByWidthLength(double width = 1, double length = 1);
IRectangleEntity RectangleByWidthLength(IPlaneEntity plane, double width = 1, double length = 1);
IRectangleEntity RectangleByWidthLength([DefaultArgument("CoordinateSystem.ByOrigin(0, 0, 0)")] ICoordinateSystemEntity cs, double width = 1, double length = 1);
ISurfaceEntity SurfaceByLoft(ICurveEntity[] crossSections);
ISurfaceEntity SurfaceByRuledLoft(ILineEntity[] crossSections);
ISurfaceEntity SurfaceByLoft(ICurveEntity[] crossSections, ICurveEntity guideCurve);
ISurfaceEntity SurfaceByLoft(ICurveEntity[] crossSections, ICurveEntity[] guideCurves);
ISurfaceEntity SurfaceBySweep(ICurveEntity profile, ICurveEntity path);
ISurfaceEntity SurfaceByPerimeterPoints(IPointEntity[] points);
ISurfaceEntity SurfaceBySweep2Rails(ICurveEntity rail1, ICurveEntity rail2, ICurveEntity profile);
ISurfaceEntity SurfaceByRevolve(ICurveEntity profile, [DefaultArgument("Point.ByCoordinates(0, 0, 0)")] IPointEntity axisOrigin, [DefaultArgument("Vector.ByCoordinates(0, 0, 1)")] IVectorEntity axisDirection, double startAngle = 0, double sweepAngle = 180);
ISurfaceEntity SurfaceByPatch(ICurveEntity closedCurve);
ISolidEntity SolidByJoinedSurfaces(ISurfaceEntity[] facesOfSolid);
ISolidEntity SolidByLoft(ICurveEntity[] crossSections);
ISolidEntity SolidByLoft(ICurveEntity[] crossSections, ICurveEntity guideCurve);
ISolidEntity SolidByLoft(ICurveEntity[] crossSections, ICurveEntity[] guideCurves);
ISolidEntity SolidBySweep(ICurveEntity profile, ICurveEntity path);
ISolidEntity SolidBySweep2Rails(ICurveEntity rail1, ICurveEntity rail2, ICurveEntity profile);
ISolidEntity SolidByRevolve(ICurveEntity profile, [DefaultArgument("Point.ByCoordinates(0, 0, 0)")] IPointEntity axisOrigin, [DefaultArgument("Vector.ByCoordinates(0, 0, 1)")] IVectorEntity axisDirection, double startAngle = 0, double sweepAngle = 180);
ISolidEntity SolidByUnion(ISolidEntity[] solids);
ISphereEntity SphereByCenterPointRadius([DefaultArgument("Point.ByCoordinates(0, 0, 0)")] IPointEntity centerPoint, double radius = 1);
ISphereEntity SphereByFourPoints(IPointEntity[] points);
ISphereEntity SphereByBestFit(IPointEntity[] points);
IUVEntity UVByCoordinates(double u = 0, double v = 0);
IVectorEntity VectorByCoordinates(double x = 0, double y = 0, double z = 0);
IVectorEntity VectorByCoordinates(double x = 0, double y = 0, double z = 0, bool normalized = false);
IVectorEntity VectorByTwoPoints(IPointEntity start, IPointEntity end);
IVectorEntity VectorXAxis();
IVectorEntity VectorYAxis();
IVectorEntity VectorZAxis();
IPolySurfaceEntity PolySurfaceByLoft(ICurveEntity[] crossSections);
IPolySurfaceEntity PolySurfaceByLoft(ICurveEntity[] crossSections, ICurveEntity guideCurve);
IPolySurfaceEntity PolySurfaceByLoftGuides(ICurveEntity[] crossSections, ICurveEntity[] guideCurves);
IPolySurfaceEntity PolySurfaceByJoinedSurfaces(ISurfaceEntity[] surfaces);
IPolySurfaceEntity PolySurfaceBySolid(ISolidEntity solid);
IPolySurfaceEntity PolySurfaceBySweep(ICurveEntity rail, ICurveEntity[] crossSection);
IPolySurfaceEntity PolySurfaceBySweep(ICurveEntity rail, ICurveEntity profile);
IMeshEntity MeshByPointsFaceIndices(IPointEntity[] vertexPositions, IIndexGroupEntity[] indices);
IGeometryEntity[] LoadSAT(string satFile);
IGeometryEntity[] DeserializeFromSAB(byte[] buffer);
string SaveSAT(string satFile, object[] ffiObjects);
string SaveSAT(string satFile, object[] ffiObjects, double unitsMM);
byte[] SerializeAsSAB(object[] ffiObjects);
}
}