DynamoVisualProgramming.ZeroTouchLibrary by Autodesk

<PackageReference Include="DynamoVisualProgramming.ZeroTouchLibrary" Version="3.6.0-beta8226" />

 TSplineSurface

using Autodesk.DesignScript.Geometry.Properties; using Autodesk.DesignScript.Interfaces; using Autodesk.DesignScript.Runtime; using DynamoServices; using System; using System.Collections.Generic; using System.IO; using System.Linq; namespace Autodesk.DesignScript.Geometry.TSpline { public class TSplineSurface : TSplineTopology { internal ITSplineSurfaceEntity TSplineSurfaceEntity => HostImpl as ITSplineSurfaceEntity; public TSplineReflection[] Reflections => TSplineReflection.Wrap(TSplineSurfaceEntity.get_Reflections(), true); public bool IsInBoxMode => TSplineSurfaceEntity.get_IsInBoxMode(); public bool IsExtractable => TSplineSurfaceEntity.get_IsExtractable(); public bool IsClosed => TSplineSurfaceEntity.get_IsClosed(); public bool IsWaterTight => TSplineSurfaceEntity.get_IsWaterTight(); public bool IsStandard => TSplineSurfaceEntity.get_IsStandard(); internal TSplineSurface(ITSplineSurfaceEntity host, bool persist) : base(host, persist) { } public override string ToString() { string[] obj = new string[7] { "TSplineSurface(VerticesCount = ", null, null, null, null, null, null }; int num = base.VerticesCount; obj[1] = num.ToString(); obj[2] = ", EdgesCount = "; num = base.EdgesCount; obj[3] = num.ToString(); obj[4] = ", FacesCount = "; num = base.FacesCount; obj[5] = num.ToString(); obj[6] = ")"; return string.Concat(obj); } internal new static void InitType() { Geometry.RegisterHostType(typeof(ITSplineSurfaceEntity), (IGeometryEntity host, bool persist) => new TSplineSurface(host as ITSplineSurfaceEntity, persist)); } internal static TSplineSurface Wrap(ITSplineSurfaceEntity host, bool persist = true) { if (host == null) return null; return new TSplineSurface(host, persist); } internal static TSplineSurface[] Wrap(ITSplineSurfaceEntity[] hosts, bool persist = true) { return (from x in hosts select Wrap(x, persist)).ToArray(); } internal static TSplineSurface[][] Wrap(ITSplineSurfaceEntity[][] hosts, bool persist = true) { return (from x in hosts select Wrap(x, persist)).ToArray(); } internal static ITSplineSurfaceEntity[][] Unwrap(TSplineSurface[][] o) { return (from x in o select Unwrap(x)).ToArray(); } internal static ITSplineSurfaceEntity[] Unwrap(TSplineSurface[] o) { return (from x in o select Unwrap(x)).ToArray(); } internal static ITSplineSurfaceEntity[] Unwrap(IEnumerable<TSplineSurface> o) { return (from x in o select Unwrap(x)).ToArray(); } internal static ITSplineSurfaceEntity Unwrap(TSplineSurface o) { return o.TSplineSurfaceEntity; } public static TSplineSurface ByPlaneOriginNormal([DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)")] Point origin, [DefaultArgument("Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 1)")] Vector normal, [DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0)")] Point minCorner, [DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(1, 1)")] Point maxCorner, [DefaultArgument("2")] int xSpans, [DefaultArgument("2")] int ySpans, [DefaultArgument("Autodesk.DesignScript.Geometry.TSplineInitialSymmetry.ByAxial(false, false, false)")] TSplineInitialSymmetry symmetry, [DefaultArgument("false")] bool inSmoothMode) { return Wrap(HostFactory.Factory.TSplineSurfaceByPlaneOriginNormal(Point.Unwrap(origin), Vector.Unwrap(normal), Point.Unwrap(minCorner), Point.Unwrap(maxCorner), xSpans, ySpans, TSplineInitialSymmetry.Unwrap(symmetry), inSmoothMode), true); } public static TSplineSurface ByPlaneOriginNormalXAxis([DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)")] Point origin, [DefaultArgument("Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 1)")] Vector normal, [DefaultArgument("Autodesk.DesignScript.Geometry.Vector.ByCoordinates(1, 0, 0)")] Vector xAxis, [DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0)")] Point minCorner, [DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(1, 1)")] Point maxCorner, [DefaultArgument("2")] int xSpans, [DefaultArgument("2")] int ySpans, [DefaultArgument("Autodesk.DesignScript.Geometry.TSplineInitialSymmetry.ByAxial(false, false, false)")] TSplineInitialSymmetry symmetry, [DefaultArgument("false")] bool inSmoothMode) { return Wrap(HostFactory.Factory.TSplineSurfaceByPlaneOriginNormalXAxis(Point.Unwrap(origin), Vector.Unwrap(normal), Vector.Unwrap(xAxis), Point.Unwrap(minCorner), Point.Unwrap(maxCorner), xSpans, ySpans, TSplineInitialSymmetry.Unwrap(symmetry), inSmoothMode), true); } public static TSplineSurface ByPlaneOriginXAxisYAxis([DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)")] Point origin, [DefaultArgument("Autodesk.DesignScript.Geometry.Vector.ByCoordinates(1, 0, 0)")] Vector xAxis, [DefaultArgument("Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 1, 0)")] Vector yAxis, [DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0)")] Point minCorner, [DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(1, 1)")] Point maxCorner, [DefaultArgument("2")] int xSpans, [DefaultArgument("2")] int ySpans, [DefaultArgument("Autodesk.DesignScript.Geometry.TSplineInitialSymmetry.ByAxial(false, false, false)")] TSplineInitialSymmetry symmetry, [DefaultArgument("false")] bool inSmoothMode) { return Wrap(HostFactory.Factory.TSplineSurfaceByPlaneOriginXAxisYAxis(Point.Unwrap(origin), Vector.Unwrap(xAxis), Vector.Unwrap(yAxis), Point.Unwrap(minCorner), Point.Unwrap(maxCorner), xSpans, ySpans, TSplineInitialSymmetry.Unwrap(symmetry), inSmoothMode), true); } public static TSplineSurface ByPlaneBestFitThroughPoints(IEnumerable<Point> points, [DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0)")] Point minCorner, [DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(1, 1)")] Point maxCorner, [DefaultArgument("2")] int xSpans, [DefaultArgument("2")] int ySpans, [DefaultArgument("Autodesk.DesignScript.Geometry.TSplineInitialSymmetry.ByAxial(false, false, false)")] TSplineInitialSymmetry symmetry, [DefaultArgument("false")] bool inSmoothMode) { return Wrap(HostFactory.Factory.TSplineSurfaceByPlaneBestFitThroughPoints(Point.Unwrap(points), Point.Unwrap(minCorner), Point.Unwrap(maxCorner), xSpans, ySpans, TSplineInitialSymmetry.Unwrap(symmetry), inSmoothMode), true); } public static TSplineSurface ByPlaneLineAndPoint(Line line, Point point, [DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0)")] Point minCorner, [DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(1, 1)")] Point maxCorner, [DefaultArgument("2")] int xSpans, [DefaultArgument("2")] int ySpans, [DefaultArgument("Autodesk.DesignScript.Geometry.TSplineInitialSymmetry.ByAxial(false, false, false)")] TSplineInitialSymmetry symmetry, [DefaultArgument("false")] bool inSmoothMode) { return Wrap(HostFactory.Factory.TSplineSurfaceByPlaneLineAndPoint(Line.Unwrap(line), Point.Unwrap(point), Point.Unwrap(minCorner), Point.Unwrap(maxCorner), xSpans, ySpans, TSplineInitialSymmetry.Unwrap(symmetry), inSmoothMode), true); } public static TSplineSurface ByPlaneThreePoints(Point p1, Point p2, Point p3, [DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0)")] Point minCorner, [DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(1, 1)")] Point maxCorner, [DefaultArgument("2")] int xSpans, [DefaultArgument("2")] int ySpans, [DefaultArgument("Autodesk.DesignScript.Geometry.TSplineInitialSymmetry.ByAxial(false, false, false)")] TSplineInitialSymmetry symmetry, [DefaultArgument("false")] bool inSmoothMode) { return Wrap(HostFactory.Factory.TSplineSurfaceByPlaneThreePoints(Point.Unwrap(p1), Point.Unwrap(p2), Point.Unwrap(p3), Point.Unwrap(minCorner), Point.Unwrap(maxCorner), xSpans, ySpans, TSplineInitialSymmetry.Unwrap(symmetry), inSmoothMode), true); } public static TSplineSurface ByCylinderRadiusHeight([DefaultArgument("Autodesk.DesignScript.Geometry.CoordinateSystem.ByOrigin(0, 0, 0)")] CoordinateSystem cs, [DefaultArgument("1")] double radius, [DefaultArgument("1")] double height, [DefaultArgument("8")] int radiusSpans, [DefaultArgument("4")] int heightSpans, [DefaultArgument("Autodesk.DesignScript.Geometry.TSplineInitialSymmetry.ByAxial(false, false, false)")] TSplineInitialSymmetry symmetry, [DefaultArgument("false")] bool inSmoothMode) { DesignScriptEntity.CheckArgsForAsmExtents(new List<double> { radius, height }); radius /= DesignScriptEntity.scaleFactor; height /= DesignScriptEntity.scaleFactor; return Wrap(HostFactory.Factory.TSplineSurfaceByCylinderRadiusHeight(CoordinateSystem.Unwrap(cs), radius, height, radiusSpans, heightSpans, TSplineInitialSymmetry.Unwrap(symmetry), inSmoothMode), true); } public static TSplineSurface ByCylinderPointsRadius([DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)")] Point startPoint, [DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 1)")] Point endPoint, [DefaultArgument("1")] double radius, [DefaultArgument("8")] int radiusSpans, [DefaultArgument("4")] int heightSpans, [DefaultArgument("Autodesk.DesignScript.Geometry.TSplineInitialSymmetry.ByAxial(false, false, false)")] TSplineInitialSymmetry symmetry, [DefaultArgument("false")] bool inSmoothMode) { DesignScriptEntity.CheckArgsForAsmExtents(new List<double> { radius }); radius /= DesignScriptEntity.scaleFactor; return Wrap(HostFactory.Factory.TSplineSurfaceByCylinderPointsRadius(Point.Unwrap(startPoint), Point.Unwrap(endPoint), radius, radiusSpans, heightSpans, TSplineInitialSymmetry.Unwrap(symmetry), inSmoothMode), true); } public static TSplineSurface ByConePointsRadius([DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)")] Point startPoint, [DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 1)")] Point endPoint, [DefaultArgument("1")] double radius, [DefaultArgument("8")] int radiusSpans, [DefaultArgument("4")] int heightSpans, [DefaultArgument("Autodesk.DesignScript.Geometry.TSplineInitialSymmetry.ByAxial(false, false, false)")] TSplineInitialSymmetry symmetry, [DefaultArgument("false")] bool inSmoothMode) { DesignScriptEntity.CheckArgsForAsmExtents(new List<double> { radius }); radius /= DesignScriptEntity.scaleFactor; return Wrap(HostFactory.Factory.TSplineSurfaceByConePointsRadius(Point.Unwrap(startPoint), Point.Unwrap(endPoint), radius, radiusSpans, heightSpans, TSplineInitialSymmetry.Unwrap(symmetry), inSmoothMode), true); } public static TSplineSurface ByConePointsRadii([DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)")] Point startPoint, [DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 1)")] Point endPoint, [DefaultArgument("1")] double startRadius, [DefaultArgument("0")] double endRadius, [DefaultArgument("8")] int radiusSpans, [DefaultArgument("4")] int heightSpans, [DefaultArgument("Autodesk.DesignScript.Geometry.TSplineInitialSymmetry.ByAxial(false, false, false)")] TSplineInitialSymmetry symmetry, [DefaultArgument("false")] bool inSmoothMode) { DesignScriptEntity.CheckArgsForAsmExtents(new List<double> { startRadius, endRadius }); startRadius /= DesignScriptEntity.scaleFactor; endRadius /= DesignScriptEntity.scaleFactor; return Wrap(HostFactory.Factory.TSplineSurfaceByConePointsRadii(Point.Unwrap(startPoint), Point.Unwrap(endPoint), startRadius, endRadius, radiusSpans, heightSpans, TSplineInitialSymmetry.Unwrap(symmetry), inSmoothMode), true); } public static TSplineSurface ByConeCoordinateSystemHeightRadius([DefaultArgument("Autodesk.DesignScript.Geometry.CoordinateSystem.ByOrigin(0, 0, 0)")] CoordinateSystem cs, [DefaultArgument("1")] double height, [DefaultArgument("1")] double radius, [DefaultArgument("8")] int radiusSpans, [DefaultArgument("4")] int heightSpans, [DefaultArgument("Autodesk.DesignScript.Geometry.TSplineInitialSymmetry.ByAxial(false, false, false)")] TSplineInitialSymmetry symmetry, [DefaultArgument("false")] bool inSmoothMode) { DesignScriptEntity.CheckArgsForAsmExtents(new List<double> { height, radius }); height /= DesignScriptEntity.scaleFactor; radius /= DesignScriptEntity.scaleFactor; return Wrap(HostFactory.Factory.TSplineSurfaceByConeCoordinateSystemHeightRadius(CoordinateSystem.Unwrap(cs), height, radius, radiusSpans, heightSpans, TSplineInitialSymmetry.Unwrap(symmetry), inSmoothMode), true); } public static TSplineSurface ByConeCoordinateSystemHeightRadii([DefaultArgument("Autodesk.DesignScript.Geometry.CoordinateSystem.ByOrigin(0, 0, 0)")] CoordinateSystem cs, [DefaultArgument("1")] double height, [DefaultArgument("1")] double startRadius, [DefaultArgument("0")] double endRadius, [DefaultArgument("8")] int radiusSpans, [DefaultArgument("4")] int heightSpans, [DefaultArgument("Autodesk.DesignScript.Geometry.TSplineInitialSymmetry.ByAxial(false, false, false)")] TSplineInitialSymmetry symmetry, [DefaultArgument("false")] bool inSmoothMode) { DesignScriptEntity.CheckArgsForAsmExtents(new List<double> { height, startRadius, endRadius }); height /= DesignScriptEntity.scaleFactor; startRadius /= DesignScriptEntity.scaleFactor; endRadius /= DesignScriptEntity.scaleFactor; return Wrap(HostFactory.Factory.TSplineSurfaceByConeCoordinateSystemHeightRadii(CoordinateSystem.Unwrap(cs), height, startRadius, endRadius, radiusSpans, heightSpans, TSplineInitialSymmetry.Unwrap(symmetry), inSmoothMode), true); } public static TSplineSurface BySphereCenterPointRadius([DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)")] Point centerPoint, [DefaultArgument("1")] double radius, [DefaultArgument("8")] int radiusSpans, [DefaultArgument("4")] int heightSpans, [DefaultArgument("Autodesk.DesignScript.Geometry.TSplineInitialSymmetry.ByAxial(false, false, false)")] TSplineInitialSymmetry symmetry, [DefaultArgument("false")] bool inSmoothMode) { DesignScriptEntity.CheckArgsForAsmExtents(new List<double> { radius }); radius /= DesignScriptEntity.scaleFactor; return Wrap(HostFactory.Factory.TSplineSurfaceBySphereCenterPointRadius(Point.Unwrap(centerPoint), radius, radiusSpans, heightSpans, TSplineInitialSymmetry.Unwrap(symmetry), inSmoothMode), true); } public static TSplineSurface BySphereFourPoints(IEnumerable<Point> points, [DefaultArgument("8")] int radiusSpans, [DefaultArgument("4")] int heightSpans, [DefaultArgument("Autodesk.DesignScript.Geometry.TSplineInitialSymmetry.ByAxial(false, false, false)")] TSplineInitialSymmetry symmetry, [DefaultArgument("false")] bool inSmoothMode) { return Wrap(HostFactory.Factory.TSplineSurfaceBySphereFourPoints(Point.Unwrap(points), radiusSpans, heightSpans, TSplineInitialSymmetry.Unwrap(symmetry), inSmoothMode), true); } public static TSplineSurface BySphereBestFit(IEnumerable<Point> points, [DefaultArgument("8")] int radiusSpans, [DefaultArgument("4")] int heightSpans, [DefaultArgument("Autodesk.DesignScript.Geometry.TSplineInitialSymmetry.ByAxial(false, false, false)")] TSplineInitialSymmetry symmetry, [DefaultArgument("false")] bool inSmoothMode) { return Wrap(HostFactory.Factory.TSplineSurfaceBySphereBestFit(Point.Unwrap(points), radiusSpans, heightSpans, TSplineInitialSymmetry.Unwrap(symmetry), inSmoothMode), true); } public static TSplineSurface ByTorusCoordinateSystemRadii([DefaultArgument("Autodesk.DesignScript.Geometry.CoordinateSystem.ByOrigin(0, 0, 0)")] CoordinateSystem cs, [DefaultArgument("1")] double innerRadius, [DefaultArgument("2")] double outerRadius, [DefaultArgument("8")] int innerRadiusSpans, [DefaultArgument("16")] int outerRadiusSpans, [DefaultArgument("Autodesk.DesignScript.Geometry.TSplineInitialSymmetry.ByAxial(false, false, false)")] TSplineInitialSymmetry symmetry, [DefaultArgument("false")] bool inSmoothMode) { DesignScriptEntity.CheckArgsForAsmExtents(new List<double> { innerRadius, outerRadius }); innerRadius /= DesignScriptEntity.scaleFactor; outerRadius /= DesignScriptEntity.scaleFactor; return Wrap(HostFactory.Factory.TSplineSurfaceByTorusCoordinateSystemRadii(CoordinateSystem.Unwrap(cs), innerRadius, outerRadius, innerRadiusSpans, outerRadiusSpans, TSplineInitialSymmetry.Unwrap(symmetry), inSmoothMode), true); } public static TSplineSurface ByTorusCenterRadii([DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)")] Point center, [DefaultArgument("1")] double innerRadius, [DefaultArgument("2")] double outerRadius, [DefaultArgument("8")] int innerRadiusSpans, [DefaultArgument("16")] int outerRadiusSpans, [DefaultArgument("Autodesk.DesignScript.Geometry.TSplineInitialSymmetry.ByAxial(false, false, false)")] TSplineInitialSymmetry symmetry, [DefaultArgument("false")] bool inSmoothMode) { DesignScriptEntity.CheckArgsForAsmExtents(new List<double> { innerRadius, outerRadius }); innerRadius /= DesignScriptEntity.scaleFactor; outerRadius /= DesignScriptEntity.scaleFactor; return Wrap(HostFactory.Factory.TSplineSurfaceByTorusCenterRadii(Point.Unwrap(center), innerRadius, outerRadius, innerRadiusSpans, outerRadiusSpans, TSplineInitialSymmetry.Unwrap(symmetry), inSmoothMode), true); } public static TSplineSurface ByBoxLengths([DefaultArgument("1")] double width, [DefaultArgument("1")] double length, [DefaultArgument("1")] double height, [DefaultArgument("2")] int xSpans, [DefaultArgument("2")] int ySpans, [DefaultArgument("2")] int zSpans, [DefaultArgument("Autodesk.DesignScript.Geometry.TSplineInitialSymmetry.ByAxial(false, false, false)")] TSplineInitialSymmetry symmetry, [DefaultArgument("false")] bool inSmoothMode) { DesignScriptEntity.CheckArgsForAsmExtents(new List<double> { width, length, height }); width /= DesignScriptEntity.scaleFactor; length /= DesignScriptEntity.scaleFactor; height /= DesignScriptEntity.scaleFactor; return Wrap(HostFactory.Factory.TSplineSurfaceByBoxLengths(width, length, height, xSpans, ySpans, zSpans, TSplineInitialSymmetry.Unwrap(symmetry), inSmoothMode), true); } public static TSplineSurface ByBoxLengths([DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)")] Point origin, [DefaultArgument("1")] double width, [DefaultArgument("1")] double length, [DefaultArgument("1")] double height, [DefaultArgument("2")] int xSpans, [DefaultArgument("2")] int ySpans, [DefaultArgument("2")] int zSpans, [DefaultArgument("Autodesk.DesignScript.Geometry.TSplineInitialSymmetry.ByAxial(false, false, false)")] TSplineInitialSymmetry symmetry, [DefaultArgument("false")] bool inSmoothMode) { DesignScriptEntity.CheckArgsForAsmExtents(new List<double> { width, length, height }); width /= DesignScriptEntity.scaleFactor; length /= DesignScriptEntity.scaleFactor; height /= DesignScriptEntity.scaleFactor; return Wrap(HostFactory.Factory.TSplineSurfaceByBoxLengths(Point.Unwrap(origin), width, length, height, xSpans, ySpans, zSpans, TSplineInitialSymmetry.Unwrap(symmetry), inSmoothMode), true); } public static TSplineSurface ByBoxLengths([DefaultArgument("Autodesk.DesignScript.Geometry.CoordinateSystem.ByOrigin(0, 0, 0)")] CoordinateSystem cs, [DefaultArgument("1")] double width, [DefaultArgument("1")] double length, [DefaultArgument("1")] double height, [DefaultArgument("2")] int xSpans, [DefaultArgument("2")] int ySpans, [DefaultArgument("2")] int zSpans, [DefaultArgument("Autodesk.DesignScript.Geometry.TSplineInitialSymmetry.ByAxial(false, false, false)")] TSplineInitialSymmetry symmetry, [DefaultArgument("false")] bool inSmoothMode) { DesignScriptEntity.CheckArgsForAsmExtents(new List<double> { width, length, height }); width /= DesignScriptEntity.scaleFactor; length /= DesignScriptEntity.scaleFactor; height /= DesignScriptEntity.scaleFactor; return Wrap(HostFactory.Factory.TSplineSurfaceByBoxLengths(CoordinateSystem.Unwrap(cs), width, length, height, xSpans, ySpans, zSpans, TSplineInitialSymmetry.Unwrap(symmetry), inSmoothMode), true); } public static TSplineSurface ByBoxCorners([DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)")] Point lowPoint, [DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(1, 1, 1)")] Point highPoint, [DefaultArgument("2")] int xSpans, [DefaultArgument("2")] int ySpans, [DefaultArgument("2")] int zSpans, [DefaultArgument("Autodesk.DesignScript.Geometry.TSplineInitialSymmetry.ByAxial(false, false, false)")] TSplineInitialSymmetry symmetry, [DefaultArgument("false")] bool inSmoothMode) { return Wrap(HostFactory.Factory.TSplineSurfaceByBoxCorners(Point.Unwrap(lowPoint), Point.Unwrap(highPoint), xSpans, ySpans, zSpans, TSplineInitialSymmetry.Unwrap(symmetry), inSmoothMode), true); } public static TSplineSurface ByQuadballCoordinateSystemRadius([DefaultArgument("Autodesk.DesignScript.Geometry.CoordinateSystem.ByOrigin(0, 0, 0)")] CoordinateSystem cs, [DefaultArgument("1")] double radius, [DefaultArgument("2")] int spans, [DefaultArgument("Autodesk.DesignScript.Geometry.TSplineInitialSymmetry.ByAxial(false, false, false)")] TSplineInitialSymmetry symmetry, [DefaultArgument("false")] bool inSmoothMode) { DesignScriptEntity.CheckArgsForAsmExtents(new List<double> { radius }); radius /= DesignScriptEntity.scaleFactor; return Wrap(HostFactory.Factory.TSplineSurfaceByQuadballCoordinateSystemRadius(CoordinateSystem.Unwrap(cs), radius, spans, TSplineInitialSymmetry.Unwrap(symmetry), inSmoothMode), true); } public static TSplineSurface ByQuadballCenterRadius([DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)")] Point center, [DefaultArgument("1")] double radius, [DefaultArgument("2")] int spans, [DefaultArgument("Autodesk.DesignScript.Geometry.TSplineInitialSymmetry.ByAxial(false, false, false)")] TSplineInitialSymmetry symmetry, [DefaultArgument("false")] bool inSmoothMode) { DesignScriptEntity.CheckArgsForAsmExtents(new List<double> { radius }); radius /= DesignScriptEntity.scaleFactor; return Wrap(HostFactory.Factory.TSplineSurfaceByQuadballCenterRadius(Point.Unwrap(center), radius, spans, TSplineInitialSymmetry.Unwrap(symmetry), inSmoothMode), true); } public static TSplineSurface ByNurbsSurfaceUniform(NurbsSurface nurbsSurface, [DefaultArgument("8")] int uSpans, [DefaultArgument("8")] int vSpans, [DefaultArgument("true")] bool uUseArcLen, [DefaultArgument("true")] bool vUseArcLen, [DefaultArgument("false")] bool inSmoothMode) { return Wrap(HostFactory.Factory.TSplineSurfaceByNurbsSurfaceUniform(NurbsSurface.Unwrap(nurbsSurface), uSpans, vSpans, uUseArcLen, vUseArcLen, inSmoothMode), true); } public static TSplineSurface ByNurbsSurfaceCurvature(NurbsSurface nurbsSurface, bool inSmoothMode = false) { return Wrap(HostFactory.Factory.TSplineSurfaceByNurbsSurfaceCurvature(NurbsSurface.Unwrap(nurbsSurface), inSmoothMode), true); } public static TSplineSurface ByExtrude(Curve curve, [DefaultArgument("Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 1)")] Vector direction, double frontDistance = 1, double backDistance = 1, int frontSpans = 1, int backSpans = 0, int profileSpans = 0, bool uniform = true, bool inSmoothMode = false) { DesignScriptEntity.CheckArgsForAsmExtents(new List<double> { frontDistance, backDistance }); frontDistance /= DesignScriptEntity.scaleFactor; backDistance /= DesignScriptEntity.scaleFactor; return Wrap(HostFactory.Factory.TSplineSurfaceByExtrude(Curve.Unwrap(curve), Vector.Unwrap(direction), frontDistance, backDistance, frontSpans, backSpans, profileSpans, uniform, inSmoothMode), true); } public static TSplineSurface BySweep(Curve profile, Curve path, bool parallel = true, int pathSpans = 1, int profileSpans = 0, bool pathUniform = true, bool profileUniform = true, bool inSmoothMode = false) { return Wrap(HostFactory.Factory.TSplineSurfaceBySweep(Curve.Unwrap(profile), Curve.Unwrap(path), parallel, pathSpans, profileSpans, pathUniform, profileUniform, inSmoothMode), true); } public static TSplineSurface ByRevolve(Curve profile, [DefaultArgument("Autodesk.DesignScript.Geometry.Point.ByCoordinates(0, 0, 0)")] Point axisOrigin, [DefaultArgument("Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 1)")] Vector axisDirection, [DefaultArgument("0")] double startAngle, [DefaultArgument("180")] double sweepAngle, [DefaultArgument("16")] int radialSpans, [DefaultArgument("0")] int axialSpans, [DefaultArgument("true")] bool uniform, [DefaultArgument("Autodesk.DesignScript.Geometry.TSplineInitialSymmetry.ByAxial(false, false, false)")] TSplineInitialSymmetry symmetry, [DefaultArgument("false")] bool inSmoothMode) { return Wrap(HostFactory.Factory.TSplineSurfaceByRevolve(Curve.Unwrap(profile), Point.Unwrap(axisOrigin), Vector.Unwrap(axisDirection), startAngle, sweepAngle, radialSpans, axialSpans, uniform, TSplineInitialSymmetry.Unwrap(symmetry), inSmoothMode), true); } public static TSplineSurface BuildFromLines(IEnumerable<Curve> lines, int maxFaceValence = 4, double snappingTolerance = 1E-05, bool creaseOuterVertices = true, bool inSmoothMode = false) { DesignScriptEntity.CheckArgsForAsmExtents(new List<double> { snappingTolerance }); snappingTolerance /= DesignScriptEntity.scaleFactor; return Wrap(HostFactory.Factory.TSplineSurfaceBuildFromLines(Curve.Unwrap(lines), maxFaceValence, snappingTolerance, creaseOuterVertices, inSmoothMode), true); } [IsVisibleInDynamoLibrary(false)] [IsObsolete("tsplinesurface_buildpipes_deprecated", typeof(Resources))] [Obsolete("This method is deprecated and will be removed in a future version of Dynamo.\r\nUse TSplineSurfaceBuildPipes(ICurveEntity[] curves, double defaultRadius, double snappingTolerance, int[] segmentCounts,\r\nbool autoHandleStart, bool autoHandleEnd, double[] startRotations, double[] endRotations, \r\ndouble[] startRadii, double[] endRadii, double[] startPositions, double[] endPositions, bool inSmoothMode) instead")] public static TSplineSurface BuildPipes(IEnumerable<Curve> curves, [DefaultArgument("1.0")] double defaultRadius, [DefaultArgument("0.001")] double snappingTolerance, [DefaultArgument("null")] IEnumerable<int> segmentsCount, [DefaultArgument("null")] IEnumerable<double> endRotations, [DefaultArgument("null")] IEnumerable<double> endRadii, [DefaultArgument("null")] IEnumerable<double> endPercentage, [DefaultArgument("false")] bool inSmoothMode) { DesignScriptEntity.CheckArgsForAsmExtents(new List<double> { defaultRadius, snappingTolerance }); defaultRadius /= DesignScriptEntity.scaleFactor; snappingTolerance /= DesignScriptEntity.scaleFactor; return Wrap(HostFactory.Factory.TSplineSurfaceBuildPipes(Curve.Unwrap(curves), defaultRadius, snappingTolerance, (segmentsCount != null) ? segmentsCount.ToArray() : null, (endRotations != null) ? endRotations.ToArray() : null, (endRadii != null) ? (from x in endRadii select x / DesignScriptEntity.scaleFactor).ToArray() : null, (endPercentage != null) ? endPercentage.ToArray() : null, inSmoothMode), true); } public static TSplineSurface BuildPipes(IEnumerable<Curve> curves, [DefaultArgument("1.0")] double defaultRadius, [DefaultArgument("0.001")] double snappingTolerance, [DefaultArgument("null")] IEnumerable<int> segmentsCount, [DefaultArgument("true")] bool autoHandleStart, [DefaultArgument("true")] bool autoHandleEnd, [DefaultArgument("null")] IEnumerable<double> startRotations, [DefaultArgument("null")] IEnumerable<double> endRotations, [DefaultArgument("null")] IEnumerable<double> startRadii, [DefaultArgument("null")] IEnumerable<double> endRadii, [DefaultArgument("null")] IEnumerable<double> startPositions, [DefaultArgument("null")] IEnumerable<double> endPositions, [DefaultArgument("false")] bool inSmoothMode) { defaultRadius /= DesignScriptEntity.scaleFactor; snappingTolerance /= DesignScriptEntity.scaleFactor; return Wrap(HostFactory.Factory.TSplineSurfaceBuildPipes(Curve.Unwrap(curves), defaultRadius, snappingTolerance, (segmentsCount != null) ? segmentsCount.ToArray() : null, autoHandleStart, autoHandleEnd, (startRotations != null) ? startRotations.ToArray() : null, (endRotations != null) ? endRotations.ToArray() : null, (startRadii != null) ? (from x in startRadii select x / DesignScriptEntity.scaleFactor).ToArray() : null, (endRadii != null) ? (from x in endRadii select x / DesignScriptEntity.scaleFactor).ToArray() : null, (startPositions != null) ? startPositions.ToArray() : null, (endPositions != null) ? endPositions.ToArray() : null, inSmoothMode), true); } public static TSplineSurface ByCombinedTSplineSurfaces(IEnumerable<TSplineSurface> tSplineSurfaces) { return Wrap(HostFactory.Factory.TSplineSurfaceByCombinedTSplineSurfaces(Unwrap(tSplineSurfaces)), true); } [AllowRankReduction] public Topology[] ToBRep(bool matchTopology = true) { return Topology.Wrap(TSplineSurfaceEntity.ToBRep(matchTopology), true); } public Mesh ToMesh(int minSegments = 1, double tolerance = 0.01) { LogWarningMessageEvents.OnLogInfoMessage(Resources.MeshPrecisionInfo); DesignScriptEntity.CheckArgsForAsmExtents(new List<double> { tolerance }); tolerance /= DesignScriptEntity.scaleFactor; return Mesh.Wrap(TSplineSurfaceEntity.ToMesh(minSegments, tolerance), true); } public TSplineSurface Thicken(double distance, bool softEdges = true) { DesignScriptEntity.CheckArgsForAsmExtents(new List<double> { distance }); distance /= DesignScriptEntity.scaleFactor; return Wrap(TSplineSurfaceEntity.Thicken(distance, softEdges), true); } public TSplineSurface Thicken(Vector vector, bool softEdges = true) { return Wrap(TSplineSurfaceEntity.Thicken(Vector.Unwrap(vector), softEdges), true); } public TSplineSurface CreaseEdges(IEnumerable<TSplineEdge> edges) { return Wrap(TSplineSurfaceEntity.CreaseEdges(TSplineEdge.Unwrap(edges)), true); } public TSplineSurface UncreaseEdges(IEnumerable<TSplineEdge> edges) { return Wrap(TSplineSurfaceEntity.UncreaseEdges(TSplineEdge.Unwrap(edges)), true); } public TSplineSurface CreaseVertices(IEnumerable<TSplineVertex> vertices) { return Wrap(TSplineSurfaceEntity.CreaseVertices(TSplineVertex.Unwrap(vertices)), true); } public TSplineSurface UncreaseVertices(IEnumerable<TSplineVertex> vertices) { return Wrap(TSplineSurfaceEntity.UncreaseVertices(TSplineVertex.Unwrap(vertices)), true); } public TSplineSurface WeldVertices(IEnumerable<TSplineVertex> vertices, [DefaultArgument("null")] Point newPosition, [DefaultArgument("false")] bool keepSubdCreases) { IPointEntity val = (newPosition == null) ? null : Point.Unwrap(newPosition); return Wrap(TSplineSurfaceEntity.WeldVertices(TSplineVertex.Unwrap(vertices), val, keepSubdCreases), true); } public TSplineSurface WeldVertices(IEnumerable<TSplineVertex> firstGroup, IEnumerable<TSplineVertex> secondGroup, bool keepSubdCreases = false) { return Wrap(TSplineSurfaceEntity.WeldVertices(TSplineVertex.Unwrap(firstGroup), TSplineVertex.Unwrap(secondGroup), keepSubdCreases), true); } public TSplineSurface WeldCoincidentVertices(double tolerance = 1E-05) { DesignScriptEntity.CheckArgsForAsmExtents(new List<double> { tolerance }); tolerance /= DesignScriptEntity.scaleFactor; return Wrap(TSplineSurfaceEntity.WeldCoincidentVertices(tolerance), true); } public TSplineSurface UnweldEdges(IEnumerable<TSplineEdge> edges) { return Wrap(TSplineSurfaceEntity.UnweldEdges(TSplineEdge.Unwrap(edges)), true); } public TSplineSurface UnweldVertices(IEnumerable<TSplineVertex> vertices) { return Wrap(TSplineSurfaceEntity.UnweldVertices(TSplineVertex.Unwrap(vertices)), true); } [IsVisibleInDynamoLibrary(false)] [IsObsolete("tsplinessurface_creatchmatch_deprecated2", typeof(Resources))] [Obsolete("This method is deprecated and will be removed in a future version of Dynamo. Use CreateMatch(\r\nIEnumerable<TSplineEdge> tsEdges, IEnumerable<Curve> curves, Int32 continuity, Boolean useArclength,\r\nBoolean useRefinement, Int32 numRefinementSteps, Double refinementTolerance, Boolean usePropagation,\r\nDouble widthOfPropagation, Double scale, Boolean flipSourceTargetAlignment) instead")] public TSplineSurface CreateMatch(IEnumerable<TSplineEdge> tsEdges, IEnumerable<Curve> curves, [DefaultArgument("0")] int continuity, [DefaultArgument("true")] bool useArclength, [DefaultArgument("false")] bool useRefinement, [DefaultArgument("20")] int numRefinementSteps, [DefaultArgument("1.0e-3")] double refinementTolerance, [DefaultArgument("false")] bool usePropagation, [DefaultArgument("0.0")] double widthOfPropagation, [DefaultArgument("1.0")] double tangentScale, [DefaultArgument("0.0")] double curvParamWeight, [DefaultArgument("false")] bool flipSourceTargetAlignment) { DesignScriptEntity.CheckArgsForAsmExtents(new List<double> { widthOfPropagation, refinementTolerance }); widthOfPropagation /= DesignScriptEntity.scaleFactor; refinementTolerance /= DesignScriptEntity.scaleFactor; return Wrap(TSplineSurfaceEntity.CreateMatch(TSplineEdge.Unwrap(tsEdges), Curve.Unwrap(curves), continuity, useArclength, useRefinement, numRefinementSteps, refinementTolerance, usePropagation, widthOfPropagation, tangentScale, curvParamWeight, flipSourceTargetAlignment), true); } public TSplineSurface CreateMatch(IEnumerable<TSplineEdge> tsEdges, IEnumerable<Curve> curves, [DefaultArgument("0")] int continuity, [DefaultArgument("true")] bool useArclength, [DefaultArgument("true")] bool useRefinement, [DefaultArgument("20")] int numRefinementSteps, [DefaultArgument("1.0e-3")] double refinementTolerance, [DefaultArgument("false")] bool usePropagation, [DefaultArgument("0.0")] double widthOfPropagation, [DefaultArgument("1.0")] double scale, [DefaultArgument("false")] bool flipSourceTargetAlignment) { widthOfPropagation /= DesignScriptEntity.scaleFactor; refinementTolerance /= DesignScriptEntity.scaleFactor; return Wrap(TSplineSurfaceEntity.CreateMatch(TSplineEdge.Unwrap(tsEdges), Curve.Unwrap(curves), continuity, useArclength, useRefinement, numRefinementSteps, refinementTolerance, usePropagation, widthOfPropagation, scale, flipSourceTargetAlignment), true); } [IsVisibleInDynamoLibrary(false)] [IsObsolete("tsplinessurface_creatchmatch_deprecated", typeof(Resources))] [Obsolete("This method is deprecated and will be removed in a future version of Dynamo. Use CreateMatch(\r\nIEnumerable<TSplineEdge> tsEdges, IEnumerable<Edge> brepEdges, Int32 continuity, Boolean useArclength,\r\nBoolean useRefinement, Int32 numRefinementSteps, Double refinementTolerance, Boolean usePropagation,\r\nDouble widthOfPropagation, Double scale, Boolean flipSourceTargetAlignment) instead")] public TSplineSurface CreateMatch(IEnumerable<TSplineEdge> tsEdges, IEnumerable<Edge> brepEdges, [DefaultArgument("0")] int continuity, [DefaultArgument("true")] bool useArclength, [DefaultArgument("false")] bool useRefinement, [DefaultArgument("20")] int numRefinementSteps, [DefaultArgument("1.0e-3")] double refinementTolerance, [DefaultArgument("false")] bool usePropagation, [DefaultArgument("0.0")] double widthOfPropagation, [DefaultArgument("1.0")] double tangentScale, [DefaultArgument("0.0")] double curvParamWeight, [DefaultArgument("false")] bool flipSourceTargetAlignment) { DesignScriptEntity.CheckArgsForAsmExtents(new List<double> { widthOfPropagation, refinementTolerance }); widthOfPropagation /= DesignScriptEntity.scaleFactor; refinementTolerance /= DesignScriptEntity.scaleFactor; return Wrap(TSplineSurfaceEntity.CreateMatch(TSplineEdge.Unwrap(tsEdges), Edge.Unwrap(brepEdges), continuity, useArclength, useRefinement, numRefinementSteps, refinementTolerance, usePropagation, widthOfPropagation, tangentScale, curvParamWeight, flipSourceTargetAlignment), true); } public TSplineSurface CreateMatch(IEnumerable<TSplineEdge> tsEdges, IEnumerable<Edge> brepEdges, [DefaultArgument("0")] int continuity, [DefaultArgument("true")] bool useArclength, [DefaultArgument("true")] bool useRefinement, [DefaultArgument("20")] int numRefinementSteps, [DefaultArgument("1.0e-3")] double refinementTolerance, [DefaultArgument("false")] bool usePropagation, [DefaultArgument("0.0")] double widthOfPropagation, [DefaultArgument("1.0")] double scale, [DefaultArgument("false")] bool flipSourceTargetAlignment) { widthOfPropagation /= DesignScriptEntity.scaleFactor; refinementTolerance /= DesignScriptEntity.scaleFactor; return Wrap(TSplineSurfaceEntity.CreateMatch(TSplineEdge.Unwrap(tsEdges), Edge.Unwrap(brepEdges), continuity, useArclength, useRefinement, numRefinementSteps, refinementTolerance, usePropagation, widthOfPropagation, scale, flipSourceTargetAlignment), true); } public TSplineSurface DeleteVertices(IEnumerable<TSplineVertex> vertices) { return Wrap(TSplineSurfaceEntity.DeleteVertices(TSplineVertex.Unwrap(vertices)), true); } public TSplineSurface DeleteEdges(IEnumerable<TSplineEdge> edges) { return Wrap(TSplineSurfaceEntity.DeleteEdges(TSplineEdge.Unwrap(edges)), true); } public TSplineSurface DeleteFaces(IEnumerable<TSplineFace> faces) { return Wrap(TSplineSurfaceEntity.DeleteFaces(TSplineFace.Unwrap(faces)), true); } public TSplineSurface EnableSmoothMode(bool enable = true) { return Wrap(TSplineSurfaceEntity.EnableSmoothMode(enable), true); } public TSplineSurface ExtrudeEdges(IEnumerable<TSplineEdge> edges, [DefaultArgument("Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 0)")] Vector direction, int spans = 1) { return Wrap(TSplineSurfaceEntity.ExtrudeEdges(TSplineEdge.Unwrap(edges), Vector.Unwrap(direction), spans), true); } public TSplineSurface ExtrudeFaces(IEnumerable<TSplineFace> faces, [DefaultArgument("Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 0)")] Vector direction, int spans = 1) { return Wrap(TSplineSurfaceEntity.ExtrudeFaces(TSplineFace.Unwrap(faces), Vector.Unwrap(direction), spans), true); } public TSplineSurface ExtrudeEdgesAlongCurve(IEnumerable<TSplineEdge> edges, Curve curve, int spans = 1) { return Wrap(TSplineSurfaceEntity.ExtrudeEdgesAlongCurve(TSplineEdge.Unwrap(edges), Curve.Unwrap(curve), spans), true); } public TSplineSurface ExtrudeFacesAlongCurve(IEnumerable<TSplineFace> faces, Curve curve, int spans = 1) { return Wrap(TSplineSurfaceEntity.ExtrudeFacesAlongCurve(TSplineFace.Unwrap(faces), Curve.Unwrap(curve), spans), true); } public TSplineSurface BevelEdges(IEnumerable<TSplineEdge> edges, double percentage = 0.5, int segments = 3, bool keepOnFace = false, double roundness = 0) { return Wrap(TSplineSurfaceEntity.BevelEdges(TSplineEdge.Unwrap(edges), percentage, segments, keepOnFace, roundness), true); } public TSplineSurface SlideEdges(IEnumerable<TSplineEdge> edges, double amount = 0.5, double roundness = 0) { return Wrap(TSplineSurfaceEntity.SlideEdges(TSplineEdge.Unwrap(edges), amount, roundness), true); } public TSplineSurface MergeEdges(IEnumerable<TSplineEdge> firstGroup, IEnumerable<TSplineEdge> secondGroup, bool insertCreases = false) { return Wrap(TSplineSurfaceEntity.MergeEdges(TSplineEdge.Unwrap(firstGroup), TSplineEdge.Unwrap(secondGroup), insertCreases), true); } public TSplineSurface BridgeFacesToFaces(IEnumerable<TSplineFace> firstGroup, IEnumerable<TSplineFace> secondGroup, [DefaultArgument("null")] IEnumerable<Curve> followCurves, [DefaultArgument("null")] IEnumerable<int> frameRotations, [DefaultArgument("null")] IEnumerable<int> spansCounts, [DefaultArgument("false")] bool cleanBorderBridges, [DefaultArgument("false")] bool keepSubdCreases, [DefaultArgument("null")] IEnumerable<TSplineVertex> firstAlignVertices, [DefaultArgument("null")] IEnumerable<TSplineVertex> secondAlignVertices, [DefaultArgument("null")] IEnumerable<bool> flipAlignmentFlags) { ICurveEntity[] array = (followCurves == null) ? null : Curve.Unwrap(followCurves); ITSplineVertexEntity[] array2 = (firstAlignVertices == null) ? null : TSplineVertex.Unwrap(firstAlignVertices); ITSplineVertexEntity[] array3 = (secondAlignVertices == null) ? null : TSplineVertex.Unwrap(secondAlignVertices); return Wrap(TSplineSurfaceEntity.BridgeFacesToFaces(TSplineFace.Unwrap(firstGroup), TSplineFace.Unwrap(secondGroup), array, (frameRotations != null) ? frameRotations.ToArray() : null, (spansCounts != null) ? spansCounts.ToArray() : null, cleanBorderBridges, keepSubdCreases, array2, array3, (flipAlignmentFlags != null) ? flipAlignmentFlags.ToArray() : null), true); } public TSplineSurface BridgeFacesToEdges(IEnumerable<TSplineFace> firstGroup, IEnumerable<TSplineEdge> secondGroup, [DefaultArgument("null")] IEnumerable<Curve> followCurves, [DefaultArgument("null")] IEnumerable<int> frameRotations, [DefaultArgument("null")] IEnumerable<int> spansCounts, [DefaultArgument("false")] bool cleanBorderBridges, [DefaultArgument("false")] bool keepSubdCreases, [DefaultArgument("null")] IEnumerable<TSplineVertex> firstAlignVertices, [DefaultArgument("null")] IEnumerable<TSplineVertex> secondAlignVertices, [DefaultArgument("null")] IEnumerable<bool> flipAlignmentFlags) { ICurveEntity[] array = (followCurves == null) ? null : Curve.Unwrap(followCurves); ITSplineVertexEntity[] array2 = (firstAlignVertices == null) ? null : TSplineVertex.Unwrap(firstAlignVertices); ITSplineVertexEntity[] array3 = (secondAlignVertices == null) ? null : TSplineVertex.Unwrap(secondAlignVertices); return Wrap(TSplineSurfaceEntity.BridgeFacesToEdges(TSplineFace.Unwrap(firstGroup), TSplineEdge.Unwrap(secondGroup), array, (frameRotations != null) ? frameRotations.ToArray() : null, (spansCounts != null) ? spansCounts.ToArray() : null, cleanBorderBridges, keepSubdCreases, array2, array3, (flipAlignmentFlags != null) ? flipAlignmentFlags.ToArray() : null), true); } public TSplineSurface BridgeEdgesToFaces(IEnumerable<TSplineEdge> firstGroup, IEnumerable<TSplineFace> secondGroup, [DefaultArgument("null")] IEnumerable<Curve> followCurves, [DefaultArgument("null")] IEnumerable<int> frameRotations, [DefaultArgument("null")] IEnumerable<int> spansCounts, [DefaultArgument("false")] bool cleanBorderBridges, [DefaultArgument("false")] bool keepSubdCreases, [DefaultArgument("null")] IEnumerable<TSplineVertex> firstAlignVertices, [DefaultArgument("null")] IEnumerable<TSplineVertex> secondAlignVertices, [DefaultArgument("null")] IEnumerable<bool> flipAlignmentFlags) { ICurveEntity[] array = (followCurves == null) ? null : Curve.Unwrap(followCurves); ITSplineVertexEntity[] array2 = (firstAlignVertices == null) ? null : TSplineVertex.Unwrap(firstAlignVertices); ITSplineVertexEntity[] array3 = (secondAlignVertices == null) ? null : TSplineVertex.Unwrap(secondAlignVertices); return Wrap(TSplineSurfaceEntity.BridgeEdgesToFaces(TSplineEdge.Unwrap(firstGroup), TSplineFace.Unwrap(secondGroup), array, (frameRotations != null) ? frameRotations.ToArray() : null, (spansCounts != null) ? spansCounts.ToArray() : null, cleanBorderBridges, keepSubdCreases, array2, array3, (flipAlignmentFlags != null) ? flipAlignmentFlags.ToArray() : null), true); } public TSplineSurface BridgeEdgesToEdges(IEnumerable<TSplineEdge> firstGroup, IEnumerable<TSplineEdge> secondGroup, [DefaultArgument("null")] IEnumerable<Curve> followCurves, [DefaultArgument("null")] IEnumerable<int> frameRotations, [DefaultArgument("null")] IEnumerable<int> spansCounts, [DefaultArgument("false")] bool cleanBorderBridges, [DefaultArgument("false")] bool keepSubdCreases, [DefaultArgument("null")] IEnumerable<TSplineVertex> firstAlignVertices, [DefaultArgument("null")] IEnumerable<TSplineVertex> secondAlignVertices, [DefaultArgument("null")] IEnumerable<bool> flipAlignmentFlags) { ICurveEntity[] array = (followCurves == null) ? null : Curve.Unwrap(followCurves); ITSplineVertexEntity[] array2 = (firstAlignVertices == null) ? null : TSplineVertex.Unwrap(firstAlignVertices); ITSplineVertexEntity[] array3 = (secondAlignVertices == null) ? null : TSplineVertex.Unwrap(secondAlignVertices); return Wrap(TSplineSurfaceEntity.BridgeEdgesToEdges(TSplineEdge.Unwrap(firstGroup), TSplineEdge.Unwrap(secondGroup), array, (frameRotations != null) ? frameRotations.ToArray() : null, (spansCounts != null) ? spansCounts.ToArray() : null, cleanBorderBridges, keepSubdCreases, array2, array3, (flipAlignmentFlags != null) ? flipAlignmentFlags.ToArray() : null), true); } public TSplineSurface FillHole(IEnumerable<TSplineEdge> edges, int fillMethod = 0, bool keepSubdCreases = false) { return Wrap(TSplineSurfaceEntity.FillHole(TSplineEdge.Unwrap(edges), fillMethod, keepSubdCreases), true); } public TSplineSurface AddReflections(IEnumerable<TSplineReflection> reflections, bool weldSymmetricPortions = false, double weldTolerance = 1E-05) { DesignScriptEntity.CheckArgsForAsmExtents(new List<double> { weldTolerance }); weldTolerance /= DesignScriptEntity.scaleFactor; return Wrap(TSplineSurfaceEntity.AddReflections(TSplineReflection.Unwrap(reflections), weldSymmetricPortions, weldTolerance), true); } public TSplineSurface RemoveReflections() { return Wrap(TSplineSurfaceEntity.RemoveReflections(), true); } public TSplineSurface CompressIndexes() { return Wrap(TSplineSurfaceEntity.CompressIndexes(), true); } public TSplineSurface SubdivideFaces(IEnumerable<TSplineFace> faces, bool exact = true) { return Wrap(TSplineSurfaceEntity.SubdivideFaces(TSplineFace.Unwrap(faces), exact), true); } public TSplineSurface Interpolate(bool reverse = false) { return Wrap(TSplineSurfaceEntity.Interpolate(reverse), true); } public TSplineSurface PullVertices(IEnumerable<TSplineVertex> vertices, IEnumerable<Geometry> geometries, bool surfacePoints = true) { return Wrap(TSplineSurfaceEntity.PullVertices(TSplineVertex.Unwrap(vertices), Geometry.Unwrap(geometries), surfacePoints), true); } public TSplineSurface FlattenVertices(IEnumerable<TSplineVertex> vertices) { return Wrap(TSplineSurfaceEntity.FlattenVertices(TSplineVertex.Unwrap(vertices)), true); } public TSplineSurface FlattenVertices(IEnumerable<TSplineVertex> vertices, Plane parallelPlane) { return Wrap(TSplineSurfaceEntity.FlattenVertices(TSplineVertex.Unwrap(vertices), Plane.Unwrap(parallelPlane)), true); } public TSplineSurface DuplicateFaces(IEnumerable<TSplineFace> faces) { return Wrap(TSplineSurfaceEntity.DuplicateFaces(TSplineFace.Unwrap(faces)), true); } public TSplineSurface FlipNormals() { return Wrap(TSplineSurfaceEntity.FlipNormals(), true); } public TSplineSurface MakeUniform() { return Wrap(TSplineSurfaceEntity.MakeUniform(), true); } public TSplineSurface Standardize() { return Wrap(TSplineSurfaceEntity.Standardize(), true); } public TSplineSurface MoveVertices(IEnumerable<TSplineVertex> vertices, Vector vector, bool onSurface = false) { return Wrap(TSplineSurfaceEntity.MoveVertices(TSplineVertex.Unwrap(vertices), Vector.Unwrap(vector), onSurface), true); } public Geometry Repair() { return Geometry.Wrap(TSplineSurfaceEntity.Repair(), false, null); } private static string GetAbsolutePath(string filePath) { if (!Path.IsPathRooted(filePath)) { string text = GeometrySettings.RootModulePath; if (string.IsNullOrEmpty(text)) text = AppDomain.CurrentDomain.BaseDirectory; string directoryName = Path.GetDirectoryName(text); return Path.Combine(directoryName, filePath); } return filePath; } public static string ExportToTSS(IEnumerable<TSplineSurface> tSplineSurfaces, string filePath) { List<ITSplineSurfaceEntity> list = new List<ITSplineSurfaceEntity>(); foreach (TSplineSurface tSplineSurface in tSplineSurfaces) { ITSplineSurfaceEntity tSplineSurfaceEntity = tSplineSurface.TSplineSurfaceEntity; if (tSplineSurfaceEntity != null) list.Add(tSplineSurfaceEntity); } if (list.Count == 0) throw new Exception(Resources.ConversionException); if (!filePath.EndsWith(".tss")) filePath += ".tss"; return HostFactory.Factory.SaveTSS(list.ToArray(), GetAbsolutePath(filePath), DesignScriptEntity.scaleFactor); } public static string ExportToTSM(TSplineSurface tSplineSurface, string filePath) { if (!filePath.EndsWith(".tsm")) filePath += ".tsm"; return HostFactory.Factory.SaveTSM(tSplineSurface.TSplineSurfaceEntity, GetAbsolutePath(filePath), DesignScriptEntity.scaleFactor); } public static string SerializeAsTSM(TSplineSurface tSplineSurface) { return HostFactory.Factory.SerializeAsTSM(tSplineSurface.TSplineSurfaceEntity, DesignScriptEntity.scaleFactor); } [AllowRankReduction] public static TSplineSurface[] DeserializeFromTSM(string content, bool inSmoothMode = false) { ITSplineSurfaceEntity host = HostFactory.Factory.DeserializeFromTSM(content, DesignScriptEntity.scaleFactor, inSmoothMode); return new TSplineSurface[1] { Wrap(host, true) }; } private static ITSplineSurfaceEntity[] ImportFromTSM(ref string filePath, bool inSmoothMode) { if (string.IsNullOrWhiteSpace(filePath)) throw new ArgumentNullException("filePath"); filePath = GeometryExtension.LocateFile(filePath); if (!File.Exists(filePath)) throw new ArgumentException(string.Format(Resources.FileNotFound, filePath), "filePath"); ITSplineSurfaceEntity val = HostFactory.Factory.LoadTSM(filePath, DesignScriptEntity.scaleFactor, inSmoothMode); return (ITSplineSurfaceEntity[])new ITSplineSurfaceEntity[1] { val }; } [AllowRankReduction] public static TSplineSurface[] ImportFromTSM(string filePath, bool inSmoothMode = false) { ITSplineSurfaceEntity[] hosts = ImportFromTSM(ref filePath, inSmoothMode); return Wrap(hosts, true); } [AllowRankReduction] public static TSplineSurface[] ImportFromTSM(FileInfo file, bool inSmoothMode = false) { string filePath = file.FullName; ITSplineSurfaceEntity[] hosts = ImportFromTSM(ref filePath, inSmoothMode); return Wrap(hosts, true); } private static ITSplineSurfaceEntity[] ImportFromTSS(ref string fileName, bool inSmoothMode) { if (string.IsNullOrWhiteSpace(fileName)) throw new ArgumentNullException("fileName"); fileName = GeometryExtension.LocateFile(fileName); if (!File.Exists(fileName)) throw new ArgumentException(string.Format(Resources.FileNotFound, fileName), "fileName"); return HostFactory.Factory.LoadTSS(fileName, DesignScriptEntity.scaleFactor, inSmoothMode); } [AllowRankReduction] public static TSplineSurface[] ImportFromTSS(string filePath, bool inSmoothMode = false) { ITSplineSurfaceEntity[] hosts = ImportFromTSS(ref filePath, inSmoothMode); return hosts.ToArray<TSplineSurface, ITSplineSurfaceEntity>(true, (Geometry)null); } [AllowRankReduction] public static TSplineSurface[] ImportFromTSS(FileInfo file, bool inSmoothMode = false) { string fileName = file.FullName; ITSplineSurfaceEntity[] hosts = ImportFromTSS(ref fileName, inSmoothMode); return hosts.ToArray<TSplineSurface, ITSplineSurfaceEntity>(true, (Geometry)null); } } }