From 5ab4558cb69ae3c3ed43eb5e4417309b0954df1b Mon Sep 17 00:00:00 2001 From: fraguada Date: Fri, 22 Nov 2024 14:45:06 +0100 Subject: [PATCH] docs commit --- docs/javascript/RHINO3DM.JS.md | 2 +- docs/javascript/api/assets/navigation.js | 2 +- docs/javascript/api/assets/search.js | 2 +- .../api/classes/AnnotationBase.html | 60 +-- docs/javascript/api/classes/Arc.html | 60 +-- docs/javascript/api/classes/ArcCurve.html | 138 +++---- .../api/classes/ArchivableDictionary.html | 8 +- docs/javascript/api/classes/Arrowhead.html | 4 +- docs/javascript/api/classes/BezierCurve.html | 28 +- docs/javascript/api/classes/Bitmap.html | 33 +- docs/javascript/api/classes/BoundingBox.html | 42 +-- docs/javascript/api/classes/Box.html | 16 +- docs/javascript/api/classes/Brep.html | 80 ++-- docs/javascript/api/classes/BrepEdge.html | 122 +++--- docs/javascript/api/classes/BrepEdgeList.html | 6 +- docs/javascript/api/classes/BrepFace.html | 104 +++--- docs/javascript/api/classes/BrepFaceList.html | 6 +- .../api/classes/BrepSurfaceList.html | 6 +- docs/javascript/api/classes/BrepVertex.html | 52 +-- .../api/classes/BrepVertexList.html | 6 +- .../api/classes/CachedTextureCoordinates.html | 14 +- docs/javascript/api/classes/Centermark.html | 62 ++-- docs/javascript/api/classes/Circle.html | 42 +-- docs/javascript/api/classes/CommonObject.html | 22 +- .../api/classes/ComponentIndex.html | 6 +- docs/javascript/api/classes/Cone.html | 20 +- .../api/classes/ConstructionPlane.html | 16 +- docs/javascript/api/classes/Curve.html | 120 +++--- docs/javascript/api/classes/CurvePiping.html | 14 +- docs/javascript/api/classes/CurveProxy.html | 122 +++--- docs/javascript/api/classes/Cylinder.html | 26 +- docs/javascript/api/classes/Decal.html | 34 +- docs/javascript/api/classes/DimAngular.html | 62 ++-- docs/javascript/api/classes/DimLinear.html | 62 ++-- docs/javascript/api/classes/DimOrdinate.html | 62 ++-- docs/javascript/api/classes/DimRadial.html | 62 ++-- docs/javascript/api/classes/Dimension.html | 60 +-- .../api/classes/DimensionStyle.html | 40 +- docs/javascript/api/classes/Displacement.html | 32 +- docs/javascript/api/classes/Dithering.html | 4 +- .../api/classes/DracoCompression.html | 12 +- .../api/classes/DracoCompressionOptions.html | 4 +- .../api/classes/EarthAnchorPoint.html | 26 +- .../javascript/api/classes/EdgeSoftening.html | 14 +- docs/javascript/api/classes/Ellipse.html | 2 +- docs/javascript/api/classes/EmbeddedFile.html | 10 +- docs/javascript/api/classes/Environment.html | 10 +- docs/javascript/api/classes/Extrusion.html | 150 ++++---- docs/javascript/api/classes/File3dm.html | 74 ++-- .../api/classes/File3dmBitmapTable.html | 14 +- .../api/classes/File3dmDecalTable.html | 8 +- .../api/classes/File3dmDimStyleTable.html | 14 +- .../api/classes/File3dmEmbeddedFileTable.html | 10 +- .../api/classes/File3dmGroupTable.html | 18 +- .../File3dmInstanceDefinitionTable.html | 14 +- .../api/classes/File3dmLayerTable.html | 18 +- .../api/classes/File3dmLinetypeTable.html | 20 +- .../api/classes/File3dmMaterialTable.html | 16 +- .../api/classes/File3dmMeshModifiers.html | 22 +- .../javascript/api/classes/File3dmObject.html | 6 +- .../api/classes/File3dmObjectTable.html | 48 +-- .../api/classes/File3dmPlugInData.html | 2 +- .../api/classes/File3dmPlugInDataTable.html | 6 +- .../api/classes/File3dmPostEffectTable.html | 10 +- .../api/classes/File3dmRdkDocumentData.html | 4 +- .../classes/File3dmRenderContentTable.html | 10 +- .../api/classes/File3dmSettings.html | 30 +- .../classes/File3dmShutLiningCurveTable.html | 12 +- .../api/classes/File3dmStringTable.html | 14 +- .../api/classes/File3dmViewTable.html | 10 +- .../api/classes/File3dmWriteOptions.html | 6 +- .../javascript/api/classes/FileReference.html | 10 +- docs/javascript/api/classes/Font.html | 10 +- docs/javascript/api/classes/GeometryBase.html | 42 +-- docs/javascript/api/classes/GroundPlane.html | 24 +- docs/javascript/api/classes/Group.html | 24 +- docs/javascript/api/classes/Hatch.html | 54 +-- .../api/classes/InstanceDefinition.html | 28 +- .../api/classes/InstanceReference.html | 42 +-- docs/javascript/api/classes/Intersection.html | 24 +- docs/javascript/api/classes/Layer.html | 65 ++-- docs/javascript/api/classes/Leader.html | 62 ++-- docs/javascript/api/classes/Light.html | 98 ++--- docs/javascript/api/classes/Line.html | 20 +- docs/javascript/api/classes/LineCurve.html | 124 +++---- .../api/classes/LinearWorkflow.html | 8 +- docs/javascript/api/classes/Linetype.html | 64 ++-- docs/javascript/api/classes/Material.html | 70 ++-- docs/javascript/api/classes/Mesh.html | 96 ++--- docs/javascript/api/classes/MeshFaceList.html | 40 +- .../api/classes/MeshNormalList.html | 20 +- .../classes/MeshTextureCoordinateList.html | 10 +- .../api/classes/MeshTopologyEdgeList.html | 6 +- .../api/classes/MeshVertexColorList.html | 14 +- .../api/classes/MeshVertexList.html | 32 +- .../api/classes/MeshingParameters.html | 52 +-- .../api/classes/ModelComponent.html | 30 +- docs/javascript/api/classes/NurbsCurve.html | 154 ++++---- .../api/classes/NurbsCurveKnotList.html | 24 +- .../api/classes/NurbsCurvePointList.html | 16 +- docs/javascript/api/classes/NurbsSurface.html | 120 +++--- .../api/classes/NurbsSurfaceKnotList.html | 20 +- .../api/classes/NurbsSurfacePointList.html | 18 +- .../api/classes/ObjectAttributes.html | 84 ++--- .../api/classes/PhysicallyBasedMaterial.html | 10 +- docs/javascript/api/classes/Plane.html | 4 +- docs/javascript/api/classes/PlaneSurface.html | 90 ++--- docs/javascript/api/classes/Point.html | 46 +-- docs/javascript/api/classes/Point3d.html | 4 +- docs/javascript/api/classes/Point3dList.html | 28 +- docs/javascript/api/classes/PointCloud.html | 120 +++--- .../api/classes/PointCloudItem.html | 18 +- docs/javascript/api/classes/PointGrid.html | 42 +-- docs/javascript/api/classes/PolyCurve.html | 148 ++++---- docs/javascript/api/classes/Polyline.html | 62 ++-- .../javascript/api/classes/PolylineCurve.html | 130 +++---- docs/javascript/api/classes/PostEffect.html | 8 +- .../api/classes/RenderChannels.html | 4 +- .../javascript/api/classes/RenderContent.html | 62 ++-- .../api/classes/RenderEnvironment.html | 64 ++-- .../api/classes/RenderEnvironments.html | 4 +- .../api/classes/RenderMaterial.html | 64 ++-- .../api/classes/RenderSettings.html | 78 ++-- .../javascript/api/classes/RenderTexture.html | 66 ++-- docs/javascript/api/classes/RevSurface.html | 92 ++--- docs/javascript/api/classes/RhinoModule.html | 6 +- docs/javascript/api/classes/SafeFrame.html | 24 +- docs/javascript/api/classes/ShutLining.html | 6 +- .../api/classes/ShutLiningCurve.html | 4 +- docs/javascript/api/classes/Skylight.html | 6 +- docs/javascript/api/classes/Sphere.html | 42 +-- docs/javascript/api/classes/SubD.html | 50 +-- docs/javascript/api/classes/Sun.html | 26 +- docs/javascript/api/classes/Surface.html | 90 ++--- docs/javascript/api/classes/SurfaceProxy.html | 90 ++--- docs/javascript/api/classes/Text.html | 60 +-- docs/javascript/api/classes/TextDot.html | 52 +-- docs/javascript/api/classes/Texture.html | 26 +- .../api/classes/TextureMapping.html | 48 +-- docs/javascript/api/classes/Thickening.html | 4 +- docs/javascript/api/classes/Transform.html | 92 ++--- docs/javascript/api/classes/ViewInfo.html | 20 +- docs/javascript/api/classes/ViewportInfo.html | 86 ++--- docs/javascript/api/enums/ActiveSpace.html | 4 +- ...notationTypes.html => AnnotationType.html} | 26 +- docs/javascript/api/enums/ArrowheadTypes.html | 4 +- docs/javascript/api/enums/BasepointZero.html | 4 +- .../api/enums/ComponentIndexType.html | 4 +- .../api/enums/CoordinateSystem.html | 4 +- .../api/enums/CurveEvaluationSide.html | 4 +- .../api/enums/CurveOrientation.html | 4 +- .../api/enums/CurvePipingCapTypes.html | 4 +- docs/javascript/api/enums/DecalMappings.html | 4 +- .../api/enums/DecalProjections.html | 4 +- .../DisplacementSweepResolutionFormulas.html | 4 +- .../api/enums/DitheringMethods.html | 4 +- .../EnvironmentBackgroundProjections.html | 4 +- .../enums/InstanceDefinitionUpdateType.html | 4 +- docs/javascript/api/enums/LightStyle.html | 4 +- .../api/enums/LineCircleIntersection.html | 4 +- .../api/enums/LineCylinderIntersection.html | 4 +- .../api/enums/LineSphereIntersection.html | 4 +- docs/javascript/api/enums/Mappings.html | 4 +- docs/javascript/api/enums/MeshType.html | 4 +- .../api/enums/ObjectColorSource.html | 4 +- .../api/enums/ObjectDecoration.html | 4 +- .../api/enums/ObjectLinetypeSource.html | 4 +- .../api/enums/ObjectMaterialSource.html | 4 +- docs/javascript/api/enums/ObjectMode.html | 4 +- .../api/enums/ObjectPlotColorSource.html | 4 +- .../api/enums/ObjectPlotWeightSource.html | 4 +- docs/javascript/api/enums/ObjectType.html | 4 +- .../api/enums/PlaneSphereIntersection.html | 4 +- .../javascript/api/enums/PostEffectTypes.html | 4 +- docs/javascript/api/enums/Projections.html | 4 +- .../api/enums/RenderChannelsModes.html | 4 +- .../api/enums/SphereSphereIntersection.html | 4 +- docs/javascript/api/enums/TextureType.html | 4 +- .../api/enums/TextureUvwWrapping.html | 4 +- .../api/enums/TransformRigidType.html | 4 +- .../api/enums/TransformSimilarityType.html | 4 +- docs/javascript/api/enums/UnitSystem.html | 4 +- docs/javascript/api/functions/default.html | 2 +- docs/javascript/api/hierarchy.html | 2 +- docs/javascript/api/index.html | 2 +- docs/javascript/api/modules.html | 2 +- docs/python/api/.buildinfo | 2 +- docs/python/api/.nojekyll | 0 docs/python/api/AnnotationBase.html | 61 ++- docs/python/api/Arc.html | 18 +- docs/python/api/ArcCurve.html | 18 +- docs/python/api/ArchivableDictionary.html | 22 +- docs/python/api/Arrowhead.html | 277 ++++++++++++++ docs/python/api/BezierCurve.html | 22 +- docs/python/api/Bitmap.html | 24 +- docs/python/api/BoundingBox.html | 18 +- docs/python/api/Box.html | 18 +- docs/python/api/Brep.html | 18 +- docs/python/api/BrepEdge.html | 18 +- docs/python/api/BrepEdgeList.html | 18 +- docs/python/api/BrepFace.html | 18 +- docs/python/api/BrepFaceList.html | 18 +- docs/python/api/BrepSurfaceList.html | 18 +- docs/python/api/BrepVertex.html | 18 +- docs/python/api/BrepVertexList.html | 22 +- docs/python/api/CachedTextureCoordinates.html | 349 ++++++++++++++++++ docs/python/api/Centermark.html | 277 ++++++++++++++ docs/python/api/Circle.html | 22 +- docs/python/api/CommonObject.html | 18 +- docs/python/api/ComponentIndex.html | 18 +- docs/python/api/Cone.html | 18 +- docs/python/api/ConstructionPlane.html | 18 +- docs/python/api/Curve.html | 54 ++- docs/python/api/CurvePiping.html | 18 +- docs/python/api/CurveProxy.html | 18 +- docs/python/api/Cylinder.html | 18 +- docs/python/api/Decal.html | 22 +- docs/python/api/DimAngular.html | 295 +++++++++++++++ docs/python/api/DimLinear.html | 283 ++++++++++++++ docs/python/api/DimOrdinate.html | 283 ++++++++++++++ docs/python/api/DimRadial.html | 283 ++++++++++++++ docs/python/api/Dimension.html | 268 ++++++++++++++ docs/python/api/DimensionStyle.html | 86 ++++- docs/python/api/Displacement.html | 22 +- docs/python/api/Dithering.html | 18 +- docs/python/api/DracoCompression.html | 18 +- docs/python/api/DracoCompressionOptions.html | 18 +- docs/python/api/EarthAnchorPoint.html | 18 +- docs/python/api/EdgeSoftening.html | 18 +- docs/python/api/Ellipse.html | 18 +- docs/python/api/EmbeddedFile.html | 18 +- docs/python/api/Environment.html | 18 +- docs/python/api/Extrusion.html | 18 +- docs/python/api/File3dm.html | 18 +- docs/python/api/File3dmBitmapTable.html | 25 +- docs/python/api/File3dmDecalTable.html | 18 +- docs/python/api/File3dmDimStyleTable.html | 25 +- docs/python/api/File3dmEmbeddedFileTable.html | 18 +- docs/python/api/File3dmGroupTable.html | 18 +- .../api/File3dmInstanceDefinitionTable.html | 18 +- docs/python/api/File3dmLayerTable.html | 25 +- docs/python/api/File3dmLinetypeTable.html | 18 +- docs/python/api/File3dmMaterialTable.html | 25 +- docs/python/api/File3dmMeshModifiers.html | 18 +- docs/python/api/File3dmObject.html | 18 +- docs/python/api/File3dmObjectTable.html | 39 +- docs/python/api/File3dmPlugInData.html | 18 +- docs/python/api/File3dmPlugInDataTable.html | 18 +- docs/python/api/File3dmPostEffectTable.html | 18 +- docs/python/api/File3dmRdkDocumentData.html | 18 +- .../python/api/File3dmRenderContentTable.html | 18 +- docs/python/api/File3dmSettings.html | 18 +- .../api/File3dmShutLiningCurveTable.html | 18 +- docs/python/api/File3dmStringTable.html | 18 +- docs/python/api/File3dmViewTable.html | 18 +- docs/python/api/File3dmWriteOptions.html | 18 +- docs/python/api/FileReference.html | 18 +- docs/python/api/Font.html | 18 +- docs/python/api/GeometryBase.html | 18 +- docs/python/api/GroundPlane.html | 18 +- docs/python/api/Group.html | 18 +- docs/python/api/Hatch.html | 18 +- docs/python/api/InstanceDefinition.html | 18 +- docs/python/api/InstanceReference.html | 18 +- docs/python/api/Intersection.html | 18 +- docs/python/api/Interval.html | 18 +- docs/python/api/Layer.html | 22 +- docs/python/api/Leader.html | 283 ++++++++++++++ docs/python/api/Light.html | 22 +- docs/python/api/Line.html | 18 +- docs/python/api/LineCurve.html | 18 +- docs/python/api/LinearWorkflow.html | 18 +- docs/python/api/Linetype.html | 18 +- docs/python/api/Material.html | 18 +- docs/python/api/Mesh.html | 44 ++- docs/python/api/MeshFaceList.html | 18 +- docs/python/api/MeshNormalList.html | 18 +- .../python/api/MeshTextureCoordinateList.html | 18 +- docs/python/api/MeshTopologyEdgeList.html | 18 +- docs/python/api/MeshVertexColorList.html | 18 +- docs/python/api/MeshVertexList.html | 18 +- docs/python/api/MeshingParameters.html | 18 +- docs/python/api/ModelComponent.html | 18 +- docs/python/api/NurbsCurve.html | 40 +- docs/python/api/NurbsCurveKnotList.html | 18 +- docs/python/api/NurbsCurvePointList.html | 18 +- docs/python/api/NurbsSurface.html | 18 +- docs/python/api/NurbsSurfaceKnotList.html | 18 +- docs/python/api/NurbsSurfacePointList.html | 18 +- docs/python/api/ObjectAttributes.html | 18 +- docs/python/api/PhysicallyBasedMaterial.html | 18 +- docs/python/api/Plane.html | 76 +++- docs/python/api/PlaneSurface.html | 18 +- docs/python/api/Point.html | 18 +- docs/python/api/Point2d.html | 18 +- docs/python/api/Point2f.html | 18 +- docs/python/api/Point3d.html | 18 +- docs/python/api/Point3dList.html | 25 +- docs/python/api/Point3f.html | 18 +- docs/python/api/Point4d.html | 18 +- docs/python/api/PointCloud.html | 91 +++-- docs/python/api/PointCloudItem.html | 18 +- docs/python/api/PointGrid.html | 18 +- docs/python/api/PolyCurve.html | 18 +- docs/python/api/Polyline.html | 32 +- docs/python/api/PolylineCurve.html | 25 +- docs/python/api/PostEffect.html | 18 +- docs/python/api/RenderChannels.html | 18 +- docs/python/api/RenderContent.html | 18 +- docs/python/api/RenderEnvironment.html | 18 +- docs/python/api/RenderEnvironments.html | 18 +- docs/python/api/RenderMaterial.html | 18 +- docs/python/api/RenderSettings.html | 18 +- docs/python/api/RenderTexture.html | 18 +- docs/python/api/RevSurface.html | 18 +- docs/python/api/SafeFrame.html | 18 +- docs/python/api/ShutLining.html | 18 +- docs/python/api/ShutLiningCurve.html | 18 +- docs/python/api/Skylight.html | 18 +- docs/python/api/Sphere.html | 18 +- docs/python/api/SubD.html | 21 +- docs/python/api/Sun.html | 18 +- docs/python/api/Surface.html | 18 +- docs/python/api/SurfaceProxy.html | 22 +- docs/python/api/Text.html | 268 ++++++++++++++ docs/python/api/TextDot.html | 22 +- docs/python/api/Texture.html | 18 +- docs/python/api/TextureMapping.html | 31 +- docs/python/api/Thickening.html | 18 +- docs/python/api/Transform.html | 18 +- docs/python/api/Vector2d.html | 18 +- docs/python/api/Vector3d.html | 70 +++- docs/python/api/Vector3f.html | 18 +- docs/python/api/ViewInfo.html | 18 +- docs/python/api/ViewportInfo.html | 18 +- .../api/_sources/AnnotationBase.rst.txt | 26 ++ docs/python/api/_sources/Arrowhead.rst.txt | 10 + docs/python/api/_sources/Bitmap.rst.txt | 3 + .../_sources/CachedTextureCoordinates.rst.txt | 52 +++ docs/python/api/_sources/Centermark.rst.txt | 10 + docs/python/api/_sources/Curve.rst.txt | 10 + docs/python/api/_sources/DimAngular.rst.txt | 19 + docs/python/api/_sources/DimLinear.rst.txt | 13 + docs/python/api/_sources/DimOrdinate.rst.txt | 13 + docs/python/api/_sources/DimRadial.rst.txt | 13 + docs/python/api/_sources/Dimension.rst.txt | 6 + .../api/_sources/DimensionStyle.rst.txt | 30 ++ .../api/_sources/File3dmBitmapTable.rst.txt | 4 + .../api/_sources/File3dmDimStyleTable.rst.txt | 4 + .../api/_sources/File3dmLayerTable.rst.txt | 4 + .../api/_sources/File3dmMaterialTable.rst.txt | 4 + .../api/_sources/File3dmObjectTable.rst.txt | 8 + docs/python/api/_sources/Leader.rst.txt | 13 + docs/python/api/_sources/Mesh.rst.txt | 15 + docs/python/api/_sources/NurbsCurve.rst.txt | 13 + docs/python/api/_sources/Plane.rst.txt | 31 ++ docs/python/api/_sources/Point3dList.rst.txt | 4 + docs/python/api/_sources/PointCloud.rst.txt | 9 +- docs/python/api/_sources/Polyline.rst.txt | 8 + .../python/api/_sources/Polylinecurve.rst.txt | 5 + docs/python/api/_sources/SubD.rst.txt | 3 +- docs/python/api/_sources/Text.rst.txt | 6 + .../api/_sources/TextureMapping.rst.txt | 7 + docs/python/api/_sources/Vector3d.rst.txt | 30 ++ docs/python/api/_sources/index.rst.txt | 10 + docs/python/api/_static/basic.css | 2 +- docs/python/api/_static/doctools.js | 2 +- .../api/_static/documentation_options.js | 2 +- docs/python/api/_static/language_data.js | 4 +- docs/python/api/_static/searchtools.js | 165 ++++++--- docs/python/api/genindex.html | 238 +++++++++--- docs/python/api/index.html | 58 ++- docs/python/api/objects.inv | Bin 12465 -> 12981 bytes docs/python/api/py-modindex.html | 18 +- docs/python/api/search.html | 18 +- docs/python/api/searchindex.js | 2 +- src/docgen/BindingClass.cs | 21 +- src/js/rhino3dm.d.ts | 28 +- 378 files changed, 8973 insertions(+), 3659 deletions(-) rename docs/javascript/api/enums/{AnnotationTypes.html => AnnotationType.html} (70%) delete mode 100644 docs/python/api/.nojekyll create mode 100644 docs/python/api/Arrowhead.html create mode 100644 docs/python/api/CachedTextureCoordinates.html create mode 100644 docs/python/api/Centermark.html create mode 100644 docs/python/api/DimAngular.html create mode 100644 docs/python/api/DimLinear.html create mode 100644 docs/python/api/DimOrdinate.html create mode 100644 docs/python/api/DimRadial.html create mode 100644 docs/python/api/Dimension.html create mode 100644 docs/python/api/Leader.html create mode 100644 docs/python/api/Text.html create mode 100644 docs/python/api/_sources/Arrowhead.rst.txt create mode 100644 docs/python/api/_sources/CachedTextureCoordinates.rst.txt create mode 100644 docs/python/api/_sources/Centermark.rst.txt create mode 100644 docs/python/api/_sources/DimAngular.rst.txt create mode 100644 docs/python/api/_sources/DimLinear.rst.txt create mode 100644 docs/python/api/_sources/DimOrdinate.rst.txt create mode 100644 docs/python/api/_sources/DimRadial.rst.txt create mode 100644 docs/python/api/_sources/Dimension.rst.txt create mode 100644 docs/python/api/_sources/Leader.rst.txt create mode 100644 docs/python/api/_sources/Text.rst.txt diff --git a/docs/javascript/RHINO3DM.JS.md b/docs/javascript/RHINO3DM.JS.md index 1ce9c1ab1..b8de23f56 100644 --- a/docs/javascript/RHINO3DM.JS.md +++ b/docs/javascript/RHINO3DM.JS.md @@ -23,7 +23,7 @@ The easiest way to get started is to reference a specific version of the library diff --git a/docs/javascript/api/assets/navigation.js b/docs/javascript/api/assets/navigation.js index 70b554eb8..42c1738e6 100644 --- a/docs/javascript/api/assets/navigation.js +++ b/docs/javascript/api/assets/navigation.js @@ -1 +1 @@ -window.navigationData = "data:application/octet-stream;base64,H4sIAAAAAAAAE5WaW2/cNhCF/4ufgwZtiqLIm6/ponG88CYxkKIPtMRdsaZIgaJsb4v895K6rChxOMM8GeY55xN1ITWk9q//zix/tWfvz84LK575rmEFP3tz1jBbuUauurp9G0g/VbaWTn8Sqjx7//v3N3NeKW2ZFVp9Pja8jRhLGeEYo18qzkoYs1DTlAvW8kYLZb9xo9eQhZhmXOq60Yoru1Elf/UHXINiB0bTphSKWb47tpbXMWupI6TOPPPrZya7/nruRBl3LLYQvDsj3Hn0bhAW6ARpKxqhDpesAW8gYEnzrnjB5C1rvDsiLUSCsTX6H174zsOYQEdIom2kGwO1uxC7F86be95q2fnUjTZ1J1kMpyPY8WzFjTu7W24rXQLwpZ4mXatnYbTyvbhgxdPB6E6VyDWh/OkjbVRrmSr4Fd8LJbz5S1O6ZxoaPZg3fYSP4lDZnT3KiDcrWFrxS2EKyTfKctMOJxSTIBdBPUrXzg3JBXw4ede420z2N3alqakhRY+mW95W0L2c2tPJu0f/9Fxqqc1OdyZ+y0QGiuVGrjbgjLXWKZK/ftb1HuvY0kMRb91zbASTGHHpIYk6nuZnhUpvpaav/cqUw3zg/aAjoKGLokJP16yk01vJcoZKwoZwdWuv9/vx+NGQWckIJz3dZs2s99zPGpcVU4rL1t/ziANY0rzhGtAXLOVLkz+7P50Bp/xAIvNfnl8ezDAhJTCBA6EZptq9e9nei4MowU5FjgzaTtRCMiPsEUUubWnuF/cChOvCWcmpvX1pOxMKV1+0PCy+vb7k/PzLsvougLgpiExf1YHBXiHSlXhmj5Jfif7BYuYIkiIXTh3XCRBqlLD8Bf9XuKEEn1Ygogxha9YA8b4dTfp6yz3VF/oViM8izgCzeMZwqL+ulUpdlwfoQo1KTvqjaG2a4FWKcrNYuoaEm2jlCqfTfZhUirLrzB4FBQaK9ZUb9x+MGbQ8Qrozs46RLllR8XKcc+dlahszU06Uzv1LpWbmCeCdNJTQV+pAum9Hk7qutRqqCyAfqAQl2AUAOYGOkxR0Hq6VSLXWdP202Jc3IGJpQXnwrEfOd8HSPpEeRJph9CvwDpg1lDCur4D8qGDpfjcgjvbNaE7U5+rg1vPAcWeNIPglRgIwSET+bhxvIGESCcY9KwV4BSaJyHPVLorIID9IWfnV+j6CAKv8NWneeIE4s4pTxh0WCDFKaN6wQvvhb3ibuCwrx4/Q7prVaiIFHY0Y+5oZW52rotJm63dGY+jagdLcG3un95Yr8NotZJQjpWiggnYU0Gz9yMuSlzcCepJCFaXMO2EAZBZRxqubeuHbf5KwvO/ju7KO06OQkR1Kzs++fk5iAk8GsZ8RceBsyeGJuh/UBDJ0ZVDD24yTI2cG/YPRHXFRZ0sGL94QxeEJf8aRPrIjNzh8tuTwxs0xAhm6MqjTBhlOXbhyqLytbnUp9m4NB0yekCuDmioiF3I2Bz/jwJNB3MrusFFXzLIkcLb8EA/v5cqXQ5730nDy0pdBvi+frnTR+ZkavRArXw552HPTbqGiiG7H1gz+jlu73KpfUSdDDqvq/Da2//TmS2m8t5A55xjWF0UEevZkEL8K/oLzTo4M2oMRlicrJ8BEMe/5nhuuoK2HhYxyNFRe+FYs9YHrmltzhPf8QhWlDB/34HVjIFIMYOOob8ZyfzBbVHGub8Zy8YsvhsSeHCJyNyMLzoN21GdUah99SenfwXG8b0ZznIEr4KEdTfoPNUDQN+M56PHxrVQqsdtwkqg8Mw/aPO2lfoEhs06R7GIjP2TYaO9+mZ5KkDg9KWjalRpA0rVSqfSeZahSlE/a1EymObNOkaKdvzQUtJJ83WipD8f0fjHkoqjDLmj/4TMNXZnymBQuh+TelFtmmJvLwXI1sqA8XXJ52o4EYAsdI33qzGObGLqzlkf4U2kLX6nYk0fsNygo5MlEMsc9+wRsVHMpxNmuXLlU6ozXNow7LC/OravSHjtwn3/twGjb6tiKgknZVyJleqpMGFE2XLWQ9crwI4DUXQ1VlAJvlJG7Y73hHfBlchQysvCdDkSScSl1l+pCr+URNosv1jFlE323BkgfjEh1xUt4Xh4T09BJovISrF0mJSeN9EDm1DHzghaCTBpGWP70I6Ys9QzSsEpNggaZ5qD7p5Hlh3jJsww9NDE9IS11mpReqi91mjQWRynQKOOc5+T8NmsowZUV2hUEHbTwDkSMsWN7fuMLk5hwktD8aQ8CAJy0PEJijK4MKOvJjWZweTQpaLr/BRWQ7dvRZPd4BeRcK54CFp6uEc8kHpmM52WqMOBvt6GKUfyjHad9K5W60omgE6gsONYyRtlouV3/Sm2FuIV+o7YiVaJ4SnwumzWUMP3kDABMEpb3m2gbtddxfFKodKONTRMmFaOUfM86GdzHfaeG30W+HaVl+rdfv//9P/hJHWjCMgAA" \ No newline at end of file +window.navigationData = "data:application/octet-stream;base64,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" \ No newline at end of file diff --git a/docs/javascript/api/assets/search.js b/docs/javascript/api/assets/search.js index 78856ea95..113188a50 100644 --- a/docs/javascript/api/assets/search.js +++ b/docs/javascript/api/assets/search.js @@ -1 +1 @@ -window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file +window.searchData = "data:application/octet-stream;base64,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"; \ No newline at end of file diff --git a/docs/javascript/api/classes/AnnotationBase.html b/docs/javascript/api/classes/AnnotationBase.html index 1005c070c..f6ecca7a5 100644 --- a/docs/javascript/api/classes/AnnotationBase.html +++ b/docs/javascript/api/classes/AnnotationBase.html @@ -1,4 +1,4 @@ -AnnotationBase | rhino3dm

Class AnnotationBase

Hierarchy (view full)

Constructors

constructor +AnnotationBase | rhino3dm

Class AnnotationBase

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

annotationType: AnnotationTypes

Type of annotation

-
dimensionStyleId: string

Id of this annotation's parent dimstyle +

Constructors

Properties

annotationType: AnnotationType

Type of annotation

+
dimensionStyleId: string

Id of this annotation's parent dimstyle If this annotation has overrides to dimstyle properties, those overrides will be represented in the DimensionStyle returned by DimensionStyle(ParentStyle)

-
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

+
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
plainText: string

Text stripped of RTF formatting information

-
plainTextWithFields: string

Text stripped of RTF formatting information and with field expressions intact

-
plane: Plane

Plane that this annotation lies on

-
richText: string

Text including additional RTF formatting information

-
textIsWrapped: boolean

Is text wrapping on

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
plainText: string

Text stripped of RTF formatting information

+
plainTextWithFields: string

Text stripped of RTF formatting information and with field expressions intact

+
plane: Plane

Plane that this annotation lies on

+
richText: string

Text including additional RTF formatting information

+
textIsWrapped: boolean

Is text wrapping on

+
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -56,41 +56,41 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns boolean

    false if object cannot be converted to a deformable object. true if object was +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Arc.html b/docs/javascript/api/classes/Arc.html index f9fa29d17..f0896b440 100644 --- a/docs/javascript/api/classes/Arc.html +++ b/docs/javascript/api/classes/Arc.html @@ -1,4 +1,4 @@ -Arc | rhino3dm

Class Arc

Constructors

constructor +Arc | rhino3dm

Class Arc

Constructors

Properties

Constructors

Properties

angleDegrees: number

Gets or sets the sweep -or subtended- angle (in Degrees) for this arc segment.

-
angleDomain: number[]

Gets or sets the angle domain (in Radians) of this arc.

-
angleRadians: number

Gets or sets the sweep -or subtended- angle (in Radians) for this arc segment.

-
center: number[]

Gets or sets the center point for this arc.

-
circumference: number

Gets the circumference of the circle that is coincident with this arc.

-
diameter: number

Gets or sets the Diameter of this arc.

-
endAngle: number

Gets or sets the end angle (in Radians) for this arc segment.

-
endAngleDegrees: number

Gets or sets the end angle (in Degrees) for this arc segment.

-
endPoint: number[]

Gets the end point of the arc.

-
isCircle: boolean

Gets a value indicating whether or not this arc is a complete circle.

-
isValid: boolean

Gets a value indicating whether or not this arc is valid. +

Constructors

Properties

angleDegrees: number

Gets or sets the sweep -or subtended- angle (in Degrees) for this arc segment.

+
angleDomain: number[]

Gets or sets the angle domain (in Radians) of this arc.

+
angleRadians: number

Gets or sets the sweep -or subtended- angle (in Radians) for this arc segment.

+
center: number[]

Gets or sets the center point for this arc.

+
circumference: number

Gets the circumference of the circle that is coincident with this arc.

+
diameter: number

Gets or sets the Diameter of this arc.

+
endAngle: number

Gets or sets the end angle (in Radians) for this arc segment.

+
endAngleDegrees: number

Gets or sets the end angle (in Degrees) for this arc segment.

+
endPoint: number[]

Gets the end point of the arc.

+
isCircle: boolean

Gets a value indicating whether or not this arc is a complete circle.

+
isValid: boolean

Gets a value indicating whether or not this arc is valid. Detail: Radius>0 and 0<AngleRadians()<=2*Math.Pi.

-
length: number

Gets the length of the arc. (Length = Radius * (subtended angle in radians)).

-
midPoint: number[]

Gets the mid-point of the arc.

-
plane: Plane

Gets or sets the plane in which this arc lies.

-
radius: number

Gets or sets the radius of this arc.

-
startAngle: number

Gets or sets the start angle (in Radians) for this arc segment.

-
startAngleDegrees: number

Gets or sets the start angle (in Degrees) for this arc segment.

-
startPoint: number[]

Gets the start point of the arc.

-

Methods

length: number

Gets the length of the arc. (Length = Radius * (subtended angle in radians)).

+
midPoint: number[]

Gets the mid-point of the arc.

+
plane: Plane

Gets or sets the plane in which this arc lies.

+
radius: number

Gets or sets the radius of this arc.

+
startAngle: number

Gets or sets the start angle (in Radians) for this arc segment.

+
startAngleDegrees: number

Gets or sets the start angle (in Degrees) for this arc segment.

+
startPoint: number[]

Gets the start point of the arc.

+

Methods

  • Parameters

  • Parameters

    • testPoint: number[]

      Point to get close to.

    Returns number

    Parameter (in radians) of the point on the arc that is closest to the test point. If testPoint is the center of the arc, then the starting point of the arc is (arc.Domain()[0]) returned. If no parameter could be found, RhinoMath.UnsetValue is returned.

    Description

    Gets parameter on the arc closest to a test point.

    -
  • Parameters

  • Parameters

    • testPoint: number[]

      Point to get close to.

    Returns number[]

    The point on the arc that is closest to testPoint. If testPoint is the center of the arc, then the starting point of the arc is returned. UnsetPoint on failure.

    Description

    Computes the point on an arc that is closest to a test point.

    -
  • Parameters

  • Parameters

    • t: number

      Arc parameter to evaluate.

    Returns number[]

    The point at the given parameter.

    Description

    Gets the point at the given arc parameter.

    -
  • Returns void

    Description

    Reverses the orientation of the arc. Changes the domain from [a,b] +

  • Returns void

    Description

    Reverses the orientation of the arc. Changes the domain from [a,b] to [-b,-a].

    -
  • Parameters

  • Parameters

    • t: number

      Parameter of tangent to evaluate.

    Returns number[]

    The tangent at the arc at the given parameter.

    Description

    Gets the tangent at the given parameter.

    -
  • Returns NurbsCurve

    A nurbs curve representation of this arc or null if no such representation could be made.

    +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/ArcCurve.html b/docs/javascript/api/classes/ArcCurve.html index 6e05df977..f10c8b1dc 100644 --- a/docs/javascript/api/classes/ArcCurve.html +++ b/docs/javascript/api/classes/ArcCurve.html @@ -1,4 +1,4 @@ -ArcCurve | rhino3dm

Class ArcCurve

Hierarchy (view full)

Constructors

constructor +ArcCurve | rhino3dm

Class ArcCurve

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

angleDegrees: number

Gets the angles of this arc in degrees.

-
angleRadians: number

Gets the angles of this arc in radians.

-
degree: number

Gets the maximum algebraic degree of any span +

angleRadians: number

Gets the angles of this arc in radians.

+
degree: number

Gets the maximum algebraic degree of any span or a good estimate if curve spans are not algebraic.

-
dimension: number

Gets the dimension of the object. +

dimension: number

Gets the dimension of the object. The dimension is typically three. For parameter space trimming curves the dimension is two. In rare cases the dimension can be one or greater than three.

-
domain: number[]

Gets or sets the domain of the curve.

-
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isClosed: boolean

Gets a value indicating whether or not this curve is a closed curve.

-
isCompleteCircle: boolean

Gets a value indicating whether or not this curve can be represented by a complete circle.

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

domain: number[]

Gets or sets the domain of the curve.

+
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

+
isClosed: boolean

Gets a value indicating whether or not this curve is a closed curve.

+
isCompleteCircle: boolean

Gets a value indicating whether or not this curve can be represented by a complete circle.

+
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isPeriodic: boolean

Gets a value indicating whether or not this curve is considered to be Periodic.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isPeriodic: boolean

Gets a value indicating whether or not this curve is considered to be Periodic.

+
isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
pointAtEnd: number[]

Evaluates point at the end of the curve.

-
pointAtStart: number[]

Evaluates point at the start of the curve.

-
radius: number

Gets the radius of this ArcCurve.

-
spanCount: number

Gets the number of non-empty smooth (c-infinity) spans in the curve.

-
tangentAtEnd: number[]

Evaluate unit tangent vector at the end of the curve.

-
tangentAtStart: number[]

Evaluates the unit tangent vector at the start of the curve.

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Parameters

pointAtEnd: number[]

Evaluates point at the end of the curve.

+
pointAtStart: number[]

Evaluates point at the start of the curve.

+
radius: number

Gets the radius of this ArcCurve.

+
spanCount: number

Gets the number of non-empty smooth (c-infinity) spans in the curve.

+
tangentAtEnd: number[]

Evaluate unit tangent vector at the end of the curve.

+
tangentAtStart: number[]

Evaluates the unit tangent vector at the start of the curve.

+
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • t: number

      Curve parameter of new start/end point. The returned curves domain will start at t.

    Returns boolean

    true on success, false on failure.

    Description

    If this curve is closed, then modify it so that the start/end point is at curve parameter t.

    -
  • Parameters

    • desiredDimension: number

      The desired dimension.

    Returns boolean

    true if the curve's dimension was already desiredDimension or if the curve's dimension was successfully changed to desiredDimension; otherwise false.

    Description

    Changes the dimension of a curve.

    -
  • Returns CurveOrientation

    The orientation of this curve with respect to world XY plane.

    Description

    Determines the orientation (counterclockwise or clockwise) of a closed, planar curve in the world XY plane. Only works with simple (no self intersections) closed, planar curves.

    -
  • Parameters

    • plane: Plane

      The plane in which to solve the orientation.

    Returns CurveOrientation

    The orientation of this curve with respect to world XY plane.

    Description

    Determines the orientation (counterclockwise or clockwise) of a closed, planar curve in a given plane. Only works with simple (no self intersections) closed, planar curves.

    -
  • Parameters

    • t: number

      Evaluation parameter.

    Returns number[]

    Curvature vector of the curve at the parameter t.

    Description

    Evaluate the curvature vector at a curve parameter.

    -
  • Parameters

    • t: number

      Curve parameter to evaluate.

    • derivativeCount: number

      Number of derivatives to evaluate, must be at least 0.

    Returns number[][]

    An array of vectors that represents all the derivatives starting at zero.

    Description

    Evaluate the derivatives at the specified curve parameter.

    -
  • Parameters

    • t: number

      Curve parameter to evaluate.

    • derivativeCount: number

      Number of derivatives to evaluate, must be at least 0.

    • side: CurveEvaluationSide

      Side of parameter to evaluate. If the parameter is at a kink, it makes a big difference whether the evaluation is from below or above.

    Returns void

    An array of vectors that represents all the derivatives starting at zero.

    Description

    Evaluate the derivatives at the specified curve parameter.

    -
  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
  • Parameters

    • t: number

      Evaluation parameter.

    Returns object

    [boolean, Plane] (boolean) true on success, false on failure. (Plane) The frame is returned here.

    Description

    Returns a 3d frame at a parameter.

    -
  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -136,102 +136,102 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

    • nurbsParameter: number

      NURBS form parameter.

    Returns object

    [boolean, number] (boolean) true on success, false on failure. (number) Curve parameter.

    Description

    Convert a NURBS curve parameter to a curve parameter.

    -
  • Parameters

    • curveParameter: number

      Curve parameter.

    Returns object

    [boolean, number] (boolean) true on success, false on failure. (number) NURBS form parameter.

    Description

    Convert a curve parameter to a NURBS curve parameter.

    -
  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns string[]

    Description

    Gets a copy of all (user key string, user value string) pairs attached to this geometry.

    -
  • Returns boolean

    true if the curve can be represented by an arc or a circle within tolerance.

    +
  • Returns string[]

    Description

    Gets a copy of all (user key string, user value string) pairs attached to this geometry.

    +
  • Returns boolean

    true if the curve can be represented by an arc or a circle within tolerance.

    Description

    Test a curve to see if it can be represented by an arc or circle within RhinoMath.ZeroTolerance.

    -
  • Returns boolean

    true if the Curve can be represented by a circle within tolerance.

    +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/ArchivableDictionary.html b/docs/javascript/api/classes/ArchivableDictionary.html index 5ebbd3923..802017b21 100644 --- a/docs/javascript/api/classes/ArchivableDictionary.html +++ b/docs/javascript/api/classes/ArchivableDictionary.html @@ -1,8 +1,8 @@ -ArchivableDictionary | rhino3dm

Class ArchivableDictionary

Constructors

constructor +ArchivableDictionary | rhino3dm

Class ArchivableDictionary

Constructors

Methods

Generated using TypeDoc

\ No newline at end of file +

Returns void

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Arrowhead.html b/docs/javascript/api/classes/Arrowhead.html index a5a53c0af..c5c29ddcd 100644 --- a/docs/javascript/api/classes/Arrowhead.html +++ b/docs/javascript/api/classes/Arrowhead.html @@ -1,4 +1,4 @@ -Arrowhead | rhino3dm

Class Arrowhead

Constructors

constructor +Arrowhead | rhino3dm

Class Arrowhead

Constructors

Methods

Constructors

Methods

Generated using TypeDoc

\ No newline at end of file +

Returns number[][]

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/BezierCurve.html b/docs/javascript/api/classes/BezierCurve.html index 53667485e..a1eda16e7 100644 --- a/docs/javascript/api/classes/BezierCurve.html +++ b/docs/javascript/api/classes/BezierCurve.html @@ -1,4 +1,4 @@ -BezierCurve | rhino3dm

Class BezierCurve

Constructors

constructor +BezierCurve | rhino3dm

Class BezierCurve

Constructors

Properties

Constructors

Properties

controlVertexCount: number

Number of control vertices in this curve

-
dimension: number

Dimension of Bezier

-
isRational: boolean

Gets a value indicating whether or not the curve is rational. +

dimension: number

Dimension of Bezier

+
isRational: boolean

Gets a value indicating whether or not the curve is rational. Rational curves have control-points with custom weights.

-
isValid: boolean

Tests an object to see if it is valid.

-

Methods

  • Returns boolean

    true if successful. false if desired_dimension < 1

    +
isValid: boolean

Tests an object to see if it is valid.

+

Methods

  • Returns boolean

    true if successful. false if desired_dimension < 1

    Description

    Change dimension of bezier.

    -
  • Parameters

  • Parameters

    • t: number

      Evaluation parameter.

    Returns number[]

    Curvature vector of the curve at the parameter t.

    Description

    Evaluate the curvature vector at a curve parameter.

    -
  • Returns boolean

    true if successful. false if desiredDegree < current degree.

    +
  • Returns boolean

    true if successful. false if desiredDegree < current degree.

    Description

    Increase degree of bezier

    -
  • Returns boolean

    true if successful

    +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Bitmap.html b/docs/javascript/api/classes/Bitmap.html index 0dd2a5012..b1fb2b3af 100644 --- a/docs/javascript/api/classes/Bitmap.html +++ b/docs/javascript/api/classes/Bitmap.html @@ -1,7 +1,36 @@ -Bitmap | rhino3dm

Class Bitmap

Constructors

constructor +Bitmap | rhino3dm

Class Bitmap

Hierarchy (view full)

Constructors

Properties

bitsPerPixel: number
height: number
sizeOfImage: number
sizeOfScan: number
width: number

Generated using TypeDoc

\ No newline at end of file +

Methods

Constructors

Properties

bitsPerPixel: number
height: number
id: string
isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
sizeOfImage: number
sizeOfScan: number
userStringCount: number

Gets the amount of user strings.

+
width: number

Methods

  • Parameters

    • key: string

      id used to retrieve the string.

      +

    Returns string

    string associated with the key if successful. null if no key was found.

    +

    Description

    Gets user string from this geometry.

    +
  • Parameters

    • key: string

      id used to retrieve this string.

      +
    • value: string

      string associated with key.

      +

    Returns boolean

    true if successful, false if not.

    +

    Description

    Attach a user string (key,value combination) to this geometry.

    +
  • Parameters

    • json: object

      A json formatted object in the following format (values are orientative):

      +
      {
      version: 10000,
      archive3dm: 60,
      opennurbs: -1877964208,
      data: 'encoded 3dm object data'
      } +
      +

    Returns CommonObject

    Description

    Decodes a Rhino Object

    +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/BoundingBox.html b/docs/javascript/api/classes/BoundingBox.html index 8bd968cca..ca87bf25c 100644 --- a/docs/javascript/api/classes/BoundingBox.html +++ b/docs/javascript/api/classes/BoundingBox.html @@ -1,4 +1,4 @@ -BoundingBox | rhino3dm

Class BoundingBox

Constructors

constructor +BoundingBox | rhino3dm

Class BoundingBox

Constructors

Properties

area center diagonal @@ -20,39 +20,39 @@

Constructors

  • Parameters

    • min: number[]

      Point containing all the minimum coordinates.

    • max: number[]

      Point containing all the maximum coordinates.

    Returns BoundingBox

    Description

    Constructs a new bounding box from two corner points.

    -
  • Parameters

    • minX: number

      Lower extreme for box X size.

      +
    • Parameters

      • minX: number

        Lower extreme for box X size.

      • minY: number

        Lower extreme for box Y size.

      • minZ: number

        Lower extreme for box Z size.

      • maxX: number

        Upper extreme for box X size.

      • maxY: number

        Upper extreme for box Y size.

      • maxZ: number

        Upper extreme for box Z size.

      Returns BoundingBox

      Description

      Constructs a bounding box from numeric extremes.

      -

Properties

area: number

Gets the area of this BoundingBox.

-
center: number[]

Gets the point in the center of the bounding box.

-
diagonal: number[]

Gets the diagonal vector of this BoundingBox. +

Properties

area: number

Gets the area of this BoundingBox.

+
center: number[]

Gets the point in the center of the bounding box.

+
diagonal: number[]

Gets the diagonal vector of this BoundingBox. The diagonal connects the Min and Max points.

-
isValid: boolean

Gets a value that indicates whether or not this bounding box is valid. +

isValid: boolean

Gets a value that indicates whether or not this bounding box is valid. Empty boxes are not valid, and neither are boxes with unset points.

-
max: number[]

Gets or sets the point in the maximal corner.

-
min: number[]

Gets or sets the point in the minimal corner.

-
volume: number

Gets the volume of this BoundingBox.

-

Methods

  • Parameters

max: number[]

Gets or sets the point in the maximal corner.

+
min: number[]

Gets or sets the point in the minimal corner.

+
volume: number

Gets the volume of this BoundingBox.

+

Methods

  • Parameters

    • point: number[]

      Sample point.

    Returns number[]

    The point on or in the box that is closest to the sample point.

    Description

    Finds the closest point on or in the bounding box.

    -
  • Parameters

  • Parameters

    • point: number[]

      Point to test.

    Returns boolean

    true if the point is on the inside of or coincident with this bounding box; otherwise false.

    Description

    Tests a point for bounding box inclusion. This is the same as calling Contains(point, false)

    -
  • Parameters

    • amount: number

      Amount (in model units) to inflate this box in all directions.

      +
  • Parameters

    • amount: number

      Amount (in model units) to inflate this box in all directions.

    Returns void

    Description

    Inflates the box with equal amounts in all directions. Inflating with negative amounts may result in decreasing boxes. Invalid boxes can not be inflated.

    -
  • Parameters

    • xAmount: number

      Amount (in model units) to inflate this box in the x direction.

      +
  • Parameters

    • xAmount: number

      Amount (in model units) to inflate this box in the x direction.

    • yAmount: number

      Amount (in model units) to inflate this box in the y direction.

    • zAmount: number

      Amount (in model units) to inflate this box in the z direction.

    Returns void

    Description

    Inflate the box with custom amounts in all directions. Inflating with negative amounts may result in decreasing boxes. InValid boxes can not be inflated.

    -
  • Parameters

    • tolerance: number

      Distances <= tolerance will be considered to be zero. If tolerance +

  • Parameters

    • tolerance: number

      Distances <= tolerance will be considered to be zero. If tolerance is negative (default), then a scale invariant tolerance is used.

    Returns number

    0 = box is not degenerate 1 = box is a rectangle (degenerate in one direction). @@ -60,18 +60,18 @@ 3 = box is a point (degenerate in three directions) 4 = box is not valid.

    Description

    Determines whether a bounding box is degenerate (flat) in one or more directions.

    -
  • Returns Brep

    If this operation is successful, a Brep representation of this box; otherwise null.

    +
  • Returns Brep

    If this operation is successful, a Brep representation of this box; otherwise null.

    Description

    Constructs a Brep representation of this bounding box.

    -
  • Parameters

    Returns boolean

    true if this operation is successful; otherwise false.

    Description

    Updates this bounding box to be the smallest axis aligned bounding box that contains the transformed result of its 8 original corner points.

    -
  • Parameters

    • json: object

      A js object with the following format:

      { 
      Min: { X: <number>, Y: <number>, Z: <number> },
      Max: { X: <number>, Y: <number>, Z: <number> }
      }

    Returns BoundingBox

    Description

    Decodes a json object to a BoundingBox

    -
  • Parameters

    Returns void

    Description

    Updates this BoundingBox to represent the union of itself and another box.

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Box.html b/docs/javascript/api/classes/Box.html index 7a6f1b12d..344ce1e2e 100644 --- a/docs/javascript/api/classes/Box.html +++ b/docs/javascript/api/classes/Box.html @@ -1,4 +1,4 @@ -Box | rhino3dm

Class Box

Constructors

constructor +Box | rhino3dm

Class Box

Constructors

Properties

area center isValid @@ -7,21 +7,21 @@ pointAt transform

Constructors

Properties

area: number

Gets the total surface area of this box.

-
center: number[]

Gets the point that is in the center of the box.

-
isValid: boolean

Gets the validity of this Box. Boxes are invalid when the base plane or any of +

center: number[]

Gets the point that is in the center of the box.

+
isValid: boolean

Gets the validity of this Box. Boxes are invalid when the base plane or any of the dimension intervals are invalid or decreasing.

-
volume: number

Gets the total volume of this box.

-

Methods

  • Parameters

volume: number

Gets the total volume of this box.

+

Methods

  • Parameters

    • point: number[]

      Sample point.

    Returns number[]

    The point on or in the box that is closest to the sample point.

    Description

    Finds the closest point on or in the Box. The box should be Valid for this to work.

    -
  • Parameters

    • x: number

      Unitized parameter (between 0 and 1 is inside the box) along box X direction.

      +
  • Parameters

    • x: number

      Unitized parameter (between 0 and 1 is inside the box) along box X direction.

    • y: number

      Unitized parameter (between 0 and 1 is inside the box) along box Y direction.

    • z: number

      Unitized parameter (between 0 and 1 is inside the box) along box Z direction.

    Returns number[]

    The point at (x,y,z).

    Description

    Evaluates the box volume at the given unitized parameters. The box has idealized side length of 1x1x1.

    -
  • Parameters

    • xform: Transform

      Transformation matrix to apply to this Box.

    Returns boolean

    true if the Box was successfully transformed, false if otherwise.

    Description

    Transforms this Box using a Transformation matrix. If the Transform does not preserve Similarity, the dimensions of the resulting box cannot be trusted.

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Brep.html b/docs/javascript/api/classes/Brep.html index 28f1a4da0..95e19f580 100644 --- a/docs/javascript/api/classes/Brep.html +++ b/docs/javascript/api/classes/Brep.html @@ -1,4 +1,4 @@ -Brep | rhino3dm

Class Brep

Hierarchy (view full)

Constructors

constructor +Brep | rhino3dm

Class Brep

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isManifold: boolean

Gets a value indicating whether or not the Brep is manifold. +

isManifold: boolean

Gets a value indicating whether or not the Brep is manifold. Non-Manifold breps have at least one edge that is shared among three or more faces.

-
isSolid: boolean

Determines whether this brep is a solid, or a closed oriented manifold.

-
isSurface: boolean

Returns true if the Brep has a single face and that face is geometrically the same +

isSolid: boolean

Determines whether this brep is a solid, or a closed oriented manifold.

+
isSurface: boolean

Returns true if the Brep has a single face and that face is geometrically the same as the underlying surface. I.e., the face has trivial trimming. In this case, the surface is the first face surface. The flag Brep.Faces[0].OrientationIsReversed records the correspondence between the surface's natural parametric orientation and the orientation of the Brep.trivial trimming here means that there is only one loop curve in the brep and that loop curve is the same as the underlying surface boundary.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Returns void

    Description

    Reverses entire brep orientation of all faces.

    -
  • Returns void

    Description

    Reverses entire brep orientation of all faces.

    +
  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -69,47 +69,47 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns boolean

    false if object cannot be converted to a deformable object. true if object was +

  • Returns boolean

    false if object cannot be converted to a deformable object. true if object was already deformable or was converted into a deformable object.

    Description

    If possible, converts the object into a form that can be accurately modified with "squishy" transformations like projections, shears, an non-uniform scaling.

    -
  • Parameters

    • angleRadians: number

      Angle of rotation in radians.

    • rotationAxis: number[]

      Direction of the axis of rotation.

    • rotationCenter: number[]

      Point on the axis of rotation.

    Returns boolean

    true if geometry successfully rotated.

    Description

    Rotates the object about the specified axis. A positive rotation angle results in a counter-clockwise rotation about the axis (right hand rule).

    -
  • Parameters

    • scaleFactor: number

      The uniform scaling factor.

    Returns boolean

    true if geometry successfully scaled.

    Description

    Scales the object by the specified factor. The scale is centered at the origin.

    -
  • Parameters

    • key: string

      id used to retrieve this string.

    • value: string

      string associated with key.

    Returns boolean

    true if successful, false if not.

    Description

    Attach a user string (key,value combination) to this geometry.

    -
  • Parameters

    • xform: Transform

      Transformation to apply to geometry.

    Returns boolean

    true if geometry successfully transformed.

    Description

    Transforms the geometry. If the input Transform has a SimilarityType of OrientationReversing, you may want to consider flipping the transformed geometry after calling this function when it makes sense. For example, you may want to call Flip() on a Brep after transforming it.

    -
  • Parameters

    • translationVector: number[]

      A moving vector.

    Returns boolean

    true if geometry successfully translated.

    Description

    Translates the object along the specified vector.

    -
  • Constructs new brep that matches an aligned box.

    Parameters

    • box: Box

      Box to match.

    Returns Brep

    A Brep with 6 faces that is similar to the Box.

    -
  • Constructs new brep that matches a bounding box.

    +
  • Constructs new brep that matches a bounding box.

    Parameters

    Returns Brep

    A new brep; or null on failure.

    -
  • Parameters

    • cone: Cone

      A cone value.

    • capBottom: boolean

      if true the base of the cone should be capped.

    Returns Brep

    A Brep if successful, null on error.

    Description

    Constructs a Brep representation of the cone with a single @@ -117,7 +117,7 @@ and vertices at the base and apex ends of this seam edge. The optional cap is a single face with one circular edge starting and ending at the base vertex.

    -
  • Parameters

    • cylinder: Cylinder

      cylinder.IsFinite() must be true.

    • capBottom: boolean

      if true end at cylinder.m_height[0] should be capped.

    • capTop: boolean

      if true end at cylinder.m_height[1] should be capped.

    Returns Brep

    A Brep representation of the cylinder with a single face for the cylinder, @@ -125,11 +125,11 @@ seam edge. The optional bottom/top caps are single faces with one circular edge starting and ending at the bottom/top vertex.

    Description

    Constructs a Brep definition of a cylinder.

    -
  • Parameters

    • trimmedTriangles: boolean

      if true, triangles in the mesh will be represented by trimmed planes in +

  • Parameters

    • trimmedTriangles: boolean

      if true, triangles in the mesh will be represented by trimmed planes in the brep. If false, triangles in the mesh will be represented by untrimmed singular bilinear NURBS surfaces in the brep.

    Returns Brep

    Description

    Create a brep representation of a mesh

    -
  • Parameters

    • surface: RevSurface

      The surface of revolution.

    • capStart: boolean

      if true, the start of the revolute is not on the axis of revolution, and the surface of revolution is closed, then a circular cap will be added to close of the hole at the start of the revolute.

      @@ -138,27 +138,27 @@ added to close of the hole at the end of the revolute.

    Returns Brep

    A Brep if successful, null on error.

    Description

    Constructs a brep form of a surface of revolution.

    -
  • Parameters

  • Parameters

    • sphere: Sphere

      The input sphere provides the orienting plane and radius.

    Returns Brep

    A Brep if successful, null on error.

    Description

    Constructs a Brep definition of a sphere.

    -
  • Parameters

    • surface: Surface

      A surface to convert.

    Returns Brep

    Resulting brep or null on failure.

    Description

    Constructs a Brep from a surface. The resulting Brep has an outer boundary made from four trims. The trims are ordered so that they run along the south, east, north, and then west side of the surface's parameter space.

    -
  • Parameters

  • Parameters

    • sphere: Sphere

      The input sphere provides the orienting plane and radius.

    Returns Brep

    A Brep if successful, null on error.

    Description

    Constructs a Brep definition of a quad sphere.

    -
  • Parameters

    • plane: Plane

      Plane that will be trimmed.

    • curve: Curve

      A simple (no self intersections) closed curve that defines the outer boundary of the trimmed plane.

    Returns Brep

    Resulting brep or null on failure.

    Description

    Create a Brep trimmed plane.

    -
  • Parameters

    • json: object

      A json formatted object in the following format (values are orientative):

      +
  • Parameters

    • json: object

      A json formatted object in the following format (values are orientative):

      {
      version: 10000,
      archive3dm: 60,
      opennurbs: -1877964208,
      data: 'encoded 3dm object data'
      }

    Returns CommonObject

    Description

    Decodes a Rhino Object

    -
  • Parameters

    • geometry: GeometryBase

      Geometry to convert, not all types of GeometryBase can be represented by BReps.

    Returns Brep

    Brep if a brep form could be created or null if this is not possible. If geometry was of type Brep to begin with, the same object is returned, i.e. it is not duplicated.

    Description

    Attempts to convert a generic Geometry object into a Brep.

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/BrepEdge.html b/docs/javascript/api/classes/BrepEdge.html index 00408e53f..ff0e29a88 100644 --- a/docs/javascript/api/classes/BrepEdge.html +++ b/docs/javascript/api/classes/BrepEdge.html @@ -1,4 +1,4 @@ -BrepEdge | rhino3dm

Class BrepEdge

Hierarchy (view full)

Constructors

constructor +BrepEdge | rhino3dm

Class BrepEdge

Hierarchy (view full)

Constructors

Properties

degree dimension domain @@ -61,62 +61,62 @@ decode

Constructors

Properties

degree: number

Gets the maximum algebraic degree of any span or a good estimate if curve spans are not algebraic.

-
dimension: number

Gets the dimension of the object. +

dimension: number

Gets the dimension of the object. The dimension is typically three. For parameter space trimming curves the dimension is two. In rare cases the dimension can be one or greater than three.

-
domain: number[]

Gets or sets the domain of the curve.

-
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isClosed: boolean

Gets a value indicating whether or not this curve is a closed curve.

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

domain: number[]

Gets or sets the domain of the curve.

+
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

+
isClosed: boolean

Gets a value indicating whether or not this curve is a closed curve.

+
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isPeriodic: boolean

Gets a value indicating whether or not this curve is considered to be Periodic.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isPeriodic: boolean

Gets a value indicating whether or not this curve is considered to be Periodic.

+
isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
pointAtEnd: number[]

Evaluates point at the end of the curve.

-
pointAtStart: number[]

Evaluates point at the start of the curve.

-
proxyCurveIsReversed: boolean

True if "this" is a curve is reversed from the "real" curve geometry

-
spanCount: number

Gets the number of non-empty smooth (c-infinity) spans in the curve.

-
tangentAtEnd: number[]

Evaluate unit tangent vector at the end of the curve.

-
tangentAtStart: number[]

Evaluates the unit tangent vector at the start of the curve.

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Parameters

pointAtEnd: number[]

Evaluates point at the end of the curve.

+
pointAtStart: number[]

Evaluates point at the start of the curve.

+
proxyCurveIsReversed: boolean

True if "this" is a curve is reversed from the "real" curve geometry

+
spanCount: number

Gets the number of non-empty smooth (c-infinity) spans in the curve.

+
tangentAtEnd: number[]

Evaluate unit tangent vector at the end of the curve.

+
tangentAtStart: number[]

Evaluates the unit tangent vector at the start of the curve.

+
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • t: number

      Curve parameter of new start/end point. The returned curves domain will start at t.

    Returns boolean

    true on success, false on failure.

    Description

    If this curve is closed, then modify it so that the start/end point is at curve parameter t.

    -
  • Parameters

    • desiredDimension: number

      The desired dimension.

    Returns boolean

    true if the curve's dimension was already desiredDimension or if the curve's dimension was successfully changed to desiredDimension; otherwise false.

    Description

    Changes the dimension of a curve.

    -
  • Parameters

    • plane: Plane

      The plane in which to solve the orientation.

    Returns CurveOrientation

    The orientation of this curve with respect to world XY plane.

    Description

    Determines the orientation (counterclockwise or clockwise) of a closed, planar curve in a given plane. Only works with simple (no self intersections) closed, planar curves.

    -
  • Parameters

    • t: number

      Evaluation parameter.

    Returns number[]

    Curvature vector of the curve at the parameter t.

    Description

    Evaluate the curvature vector at a curve parameter.

    -
  • Parameters

    • t: number

      Curve parameter to evaluate.

    • derivativeCount: number

      Number of derivatives to evaluate, must be at least 0.

    Returns number[][]

    An array of vectors that represents all the derivatives starting at zero.

    Description

    Evaluate the derivatives at the specified curve parameter.

    -
  • Parameters

    • t: number

      Curve parameter to evaluate.

    • derivativeCount: number

      Number of derivatives to evaluate, must be at least 0.

    • side: CurveEvaluationSide

      Side of parameter to evaluate. If the parameter is at a kink, it makes a big difference whether the evaluation is from below or above.

    Returns void

    An array of vectors that represents all the derivatives starting at zero.

    Description

    Evaluate the derivatives at the specified curve parameter.

    -
  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
  • Parameters

    • t: number

      Evaluation parameter.

    Returns object

    [boolean, Plane] (boolean) true on success, false on failure. (Plane) The frame is returned here.

    Description

    Returns a 3d frame at a parameter.

    -
  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -124,102 +124,102 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

    • nurbsParameter: number

      NURBS form parameter.

    Returns object

    [boolean, number] (boolean) true on success, false on failure. (number) Curve parameter.

    Description

    Convert a NURBS curve parameter to a curve parameter.

    -
  • Parameters

    • curveParameter: number

      Curve parameter.

    Returns object

    [boolean, number] (boolean) true on success, false on failure. (number) NURBS form parameter.

    Description

    Convert a curve parameter to a NURBS curve parameter.

    -
  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns string[]

    Description

    Gets a copy of all (user key string, user value string) pairs attached to this geometry.

    -
  • Returns boolean

    true if the curve can be represented by an arc or a circle within tolerance.

    +
  • Returns string[]

    Description

    Gets a copy of all (user key string, user value string) pairs attached to this geometry.

    +
  • Returns boolean

    true if the curve can be represented by an arc or a circle within tolerance.

    Description

    Test a curve to see if it can be represented by an arc or circle within RhinoMath.ZeroTolerance.

    -
  • Returns boolean

    true if the Curve can be represented by a circle within tolerance.

    +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/BrepEdgeList.html b/docs/javascript/api/classes/BrepEdgeList.html index 33eaf9804..4b2873f21 100644 --- a/docs/javascript/api/classes/BrepEdgeList.html +++ b/docs/javascript/api/classes/BrepEdgeList.html @@ -1,7 +1,7 @@ -BrepEdgeList | rhino3dm

Class BrepEdgeList

Constructors

constructor +BrepEdgeList | rhino3dm

Class BrepEdgeList

Constructors

Properties

Methods

Constructors

Properties

count: number

Gets the number of brep edges.

-

Methods

Methods

  • Parameters

    • index: number

      integer index of BrepEdge to retrieve from the list

    Returns BrepEdge

    Description

    Retrieve an edge from the BrepEdgeList

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/BrepFace.html b/docs/javascript/api/classes/BrepFace.html index 317fdd94d..991148e88 100644 --- a/docs/javascript/api/classes/BrepFace.html +++ b/docs/javascript/api/classes/BrepFace.html @@ -1,4 +1,4 @@ -BrepFace | rhino3dm

Class BrepFace

Hierarchy (view full)

Constructors

constructor +BrepFace | rhino3dm

Class BrepFace

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isSolid: boolean

Gets a values indicating whether a surface is solid.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isSolid: boolean

Gets a values indicating whether a surface is solid.

+
isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
orientationIsReversed: boolean

Gets or sets face orientation. true if face orientation is opposite of natural surface orientation.

-
userStringCount: number

Gets the amount of user strings.

-

Methods

orientationIsReversed: boolean

Gets or sets face orientation. true if face orientation is opposite of natural surface orientation.

+
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • pathCurve: Curve

      The path to extrude along. Note, the direction of the extrusion will follow the direction of the curve.

    • cap: boolean

      If true, the extrusion is capped with a translation of the face being extruded

    Returns Brep

    A Brep on success or null on failure.

    Description

    Extrude a face in a Brep.

    -
  • Parameters

    • direction: number

      0 gets first parameter's domain, 1 gets second parameter's domain.

      +
  • Parameters

    • direction: number

      0 gets first parameter's domain, 1 gets second parameter's domain.

    Returns number

    The maximum degree.

    Description

    Returns the maximum algebraic degree of any span (or a good estimate if curve spans are not algebraic).

    -
  • Parameters

    • direction: number

      0 gets first parameter, 1 gets second parameter.

    Returns number[]

    An interval value.

    Description

    Gets the domain in a direction.

    -
  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
  • Parameters

    • duplicateMeshes: boolean

      If true, shading meshes will be copied as well.

    Returns Brep

    A new single-face brep synonymous with the current Face.

    Description

    Duplicate a face from the brep to create new single face brep.

    -
  • Returns Surface

    A copy of this face's underlying surface.

    +
  • Returns Surface

    A copy of this face's underlying surface.

    Description

    Gets a copy to the untrimmed surface that this face is based on.

    -
  • Parameters

    • u: number

      A first parameter.

    • v: number

      A second parameter.

    Returns object

    [boolean, Plane] (boolean) true if this operation succeeded; otherwise false. (Plane) A frame plane that will be computed during this call.

    Description

    Computes the orient plane on a surface given a U and V parameter. This is the simple evaluation call with no error handling.

    -
  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -94,64 +94,64 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

    Returns Mesh

    A mesh.

    Description

    Obtains a reference to a specified type of mesh for this brep face.

    -
  • Parameters

    • surfaceS: number

      The parameter in the S, or sometimes U, direction, of this surface.

      +
  • Parameters

    • surfaceS: number

      The parameter in the S, or sometimes U, direction, of this surface.

    • surfaceT: number

      The parameter in the T, or sometimes V, direction of this surface.

    Returns object

    [boolean, number, number] (boolean) True if the operation succeeded; otherwise, false. (number) S on the NURBS form. (number) T on the NURBS form.

    Description

    Translates a parameter from the current surface to the parameter space of the surface returned by .

    -
  • Parameters

    • direction: number

      0 gets first parameter's domain, 1 gets second parameter's domain.

    Returns number[]

    An array with span vectors; or null on error.

    Description

    Gets array of span "knots".

    -
  • Parameters

  • Parameters

    • nurbsS: number

      The parameter in the S, or sometimes U, direction of the NURBS form surface.

    • nurbsT: number

      The parameter in the T, or sometimes V, direction of the NURBS form surface.

    Returns object

    [boolean, number, number] (boolean) True if the operation succeeded; otherwise, false. (number) S on this surface. (number) T o n this surface.

    Description

    Translates a parameter from a value on the surface returned by to the current surface.

    -
  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Parameters

    • u: number

      Surface u parameter to test.

    • v: number

      Surface v parameter to test.

    Returns number

    0 if not a seam, 1 if u == Domain(0)[i] and srf(u, v) == srf(Domain(0)[1-i], v) 2 if v == Domain(1)[i] and srf(u, v) == srf(u, Domain(1)[1-i]) 3 if 1 and 2 are true.

    Description

    Tests if a surface parameter value is at a seam.

    -
  • Parameters

    • u: number

      Surface u parameter to test.

    • v: number

      Surface v parameter to test.

    • exact: boolean

      If true, test if (u,v) is exactly at a singularity. If false, test if close enough to cause numerical problems.

    Returns boolean

    true if surface is singular at (s,t)

    Description

    Tests if a surface parameter value is at a singularity.

    -
  • Parameters

    • direction: number

      0 = U, 1 = V.

    Returns boolean

    The indicating boolean value.

    Description

    Gets a value indicating if the surface is closed in a direction.

    -
  • Returns boolean

    true if the surface is a portion of a cone.

    +
  • Returns boolean

    true if the surface is a portion of a cone.

    Description

    Determines if the surface is a portion of a cone within RhinoMath.ZeroTolerance.

    -
  • Returns boolean

    true if the surface is a portion of a cylinder.

    +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/BrepFaceList.html b/docs/javascript/api/classes/BrepFaceList.html index 516aa70c3..e59a14a19 100644 --- a/docs/javascript/api/classes/BrepFaceList.html +++ b/docs/javascript/api/classes/BrepFaceList.html @@ -1,7 +1,7 @@ -BrepFaceList | rhino3dm

Class BrepFaceList

Constructors

constructor +BrepFaceList | rhino3dm

Class BrepFaceList

Constructors

Properties

Methods

Constructors

Properties

count: number

Gets the number of brep faces.

-

Methods

Methods

  • Parameters

    • index: number

      integer index of BrepFace to retrieve from the list

    Returns BrepFace

    Description

    Retrieve a face from the BrepFaceList

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/BrepSurfaceList.html b/docs/javascript/api/classes/BrepSurfaceList.html index c592d73a2..3298db20a 100644 --- a/docs/javascript/api/classes/BrepSurfaceList.html +++ b/docs/javascript/api/classes/BrepSurfaceList.html @@ -1,7 +1,7 @@ -BrepSurfaceList | rhino3dm

Class BrepSurfaceList

Constructors

constructor +BrepSurfaceList | rhino3dm

Class BrepSurfaceList

Constructors

Properties

Methods

Constructors

Properties

count: number

Gets the number of surfaces in a brep.

-

Methods

Methods

  • Parameters

    • index: number

      integer index of Surface to retrieve from the list

    Returns Surface

    Description

    Retrieve a Surface from the BrepSurfaceList

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/BrepVertex.html b/docs/javascript/api/classes/BrepVertex.html index 77a5f1f20..048f4b155 100644 --- a/docs/javascript/api/classes/BrepVertex.html +++ b/docs/javascript/api/classes/BrepVertex.html @@ -1,4 +1,4 @@ -BrepVertex | rhino3dm

Class BrepVertex

Hierarchy (view full)

Constructors

constructor +BrepVertex | rhino3dm

Class BrepVertex

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

edgeCount: number

Description

Gets the number of edges associated with this vertex.

-

Returns

edgeIndices: number[]

Description

Gets the indices of all edges associated with this vertex.

+

Constructors

Properties

edgeCount: number

Description

Gets the number of edges associated with this vertex.

+

Returns

edgeIndices: number[]

Description

Gets the indices of all edges associated with this vertex.

Returns

Empty array on failure.<

-
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

+
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
location: number[]

Gets or sets the location (position) of this point.

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
location: number[]

Gets or sets the location (position) of this point.

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
userStringCount: number

Gets the amount of user strings.

-
vertexIndex: number

Gets the index of this vertex in the Brep.Vertices collection.

-

Methods

  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
userStringCount: number

Gets the amount of user strings.

+
vertexIndex: number

Gets the index of this vertex in the Brep.Vertices collection.

+

Methods

  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -47,40 +47,40 @@

      Returns

      Empty array on failure.<

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns string[]

    Description

    Gets a copy of all (user key string, user value string) pairs attached to this geometry.

    -
  • Returns boolean

    false if object cannot be converted to a deformable object. true if object was +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/BrepVertexList.html b/docs/javascript/api/classes/BrepVertexList.html index bb8483634..b87ee2e66 100644 --- a/docs/javascript/api/classes/BrepVertexList.html +++ b/docs/javascript/api/classes/BrepVertexList.html @@ -1,7 +1,7 @@ -BrepVertexList | rhino3dm

Class BrepVertexList

Constructors

constructor +BrepVertexList | rhino3dm

Class BrepVertexList

Constructors

Properties

Methods

Constructors

Properties

count: number

Gets the number of brep vertices.

-

Methods

Methods

  • Parameters

    • index: number

      integer index of BrepVertex to retrieve from the list

    Returns BrepVertex

    Description

    Retrieve a BrepVertex from the BrepVertexList

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/CachedTextureCoordinates.html b/docs/javascript/api/classes/CachedTextureCoordinates.html index 464adbdce..5193ba24f 100644 --- a/docs/javascript/api/classes/CachedTextureCoordinates.html +++ b/docs/javascript/api/classes/CachedTextureCoordinates.html @@ -1,4 +1,4 @@ -CachedTextureCoordinates | rhino3dm

Class CachedTextureCoordinates

Constructors

constructor +CachedTextureCoordinates | rhino3dm

Class CachedTextureCoordinates

Constructors

Properties

Constructors

Properties

count: number

Number of cached coordinates.

-
dimension: number
isReadOnly: boolean

This collection is always read-only

-
mappingId: string

The texture mapping Id.

-

Methods

  • Returns boolean

    Description

    Determines whether this collection contains a specific value.

    -
  • Parameters

    • item: number[]

      The point (UV or UVW) to locate in this collection.

      +
dimension: number
isReadOnly: boolean

This collection is always read-only

+
mappingId: string

The texture mapping Id.

+

Methods

  • Returns boolean

    Description

    Determines whether this collection contains a specific value.

    +
  • Parameters

    • item: number[]

      The point (UV or UVW) to locate in this collection.

    Returns number

    The index of item if found in the list; otherwise, -1.

    Description

    Determines the index of a specific point in this collection.

    -
  • Parameters

  • Parameters

    • index: number

      Index for the vertex to fetch.

    Returns object

    [boolean, number, number, number] (boolean) Returns true if index is valid; otherwise returns false. (number) Output parameter which will receive the U value. @@ -21,4 +21,4 @@ (number) Output parameter which will receive the W value, this is only meaningful if is 3.

    Description

    Use this method to iterate the cached texture coordinate array.

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Centermark.html b/docs/javascript/api/classes/Centermark.html index 64772619e..8f27b1623 100644 --- a/docs/javascript/api/classes/Centermark.html +++ b/docs/javascript/api/classes/Centermark.html @@ -1,4 +1,4 @@ -Centermark | rhino3dm

Class Centermark

Hierarchy (view full)

Constructors

constructor +Centermark | rhino3dm

Class Centermark

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

annotationType: AnnotationTypes

Type of annotation

-
dimensionStyleId: string

Id of this annotation's parent dimstyle +

Constructors

Properties

annotationType: AnnotationType

Type of annotation

+
dimensionStyleId: string

Id of this annotation's parent dimstyle If this annotation has overrides to dimstyle properties, those overrides will be represented in the DimensionStyle returned by DimensionStyle(ParentStyle)

-
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

+
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
plainText: string

Text stripped of RTF formatting information

-
plainTextWithFields: string

Text stripped of RTF formatting information and with field expressions intact

-
plane: Plane

Plane that this annotation lies on

-
richText: string

Text including additional RTF formatting information

-
textIsWrapped: boolean

Is text wrapping on

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
plainText: string

Text stripped of RTF formatting information

+
plainTextWithFields: string

Text stripped of RTF formatting information and with field expressions intact

+
plane: Plane

Plane that this annotation lies on

+
richText: string

Text including additional RTF formatting information

+
textIsWrapped: boolean

Is text wrapping on

+
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -57,42 +57,42 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns string[]

    Description

    Gets a copy of all (user key string, user value string) pairs attached to this geometry.

    -
  • Returns boolean

    false if object cannot be converted to a deformable object. true if object was +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Circle.html b/docs/javascript/api/classes/Circle.html index 3117f2e86..271e53be0 100644 --- a/docs/javascript/api/classes/Circle.html +++ b/docs/javascript/api/classes/Circle.html @@ -1,4 +1,4 @@ -Circle | rhino3dm

Class Circle

Constructors

constructor +Circle | rhino3dm

Class Circle

Constructors

Properties

Constructors

  • Parameters

    • radius: number

    Returns Circle

    Description

    Initializes a circle with center (0,0,0) in the world XY plane.

    -
  • Parameters

    • center: number[]

      Center of circle.

      +
    • Parameters

      • center: number[]

        Center of circle.

      • radius: number

        Radius of circle (should be a positive value).

      Returns Circle

      Description

      Initializes a circle parallel to the world XY plane with given center and radius.

      -

Properties

boundingBox: BoundingBox

Gets the circle's 3d axis aligned bounding box.

-
center: number[]

Gets or sets the center point of this circle.

-
circumference: number

Gets or sets the circumference of this circle.

-
diameter: number

Gets or sets the diameter (radius * 2.0) of this circle. +

Properties

boundingBox: BoundingBox

Gets the circle's 3d axis aligned bounding box.

+
center: number[]

Gets or sets the center point of this circle.

+
circumference: number

Gets or sets the circumference of this circle.

+
diameter: number

Gets or sets the diameter (radius * 2.0) of this circle. Diameters should be positive values.

-
isValid: boolean

A valid circle has radius larger than 0.0 and a base plane which is must also be valid.

-
normal: number[]

Gets the normal vector for this circle.

-
plane: Plane

Gets or sets the plane of the circle.

-
radius: number

Gets or sets the radius of this circle. +

isValid: boolean

A valid circle has radius larger than 0.0 and a base plane which is must also be valid.

+
normal: number[]

Gets the normal vector for this circle.

+
plane: Plane

Gets or sets the plane of the circle.

+
radius: number

Gets or sets the radius of this circle. Radii should be positive values.

-

Methods

  • Parameters

Methods

  • Parameters

    • testPoint: number[]

      Point to project onto the circle.

    Returns object

    [boolean, number] (boolean) true on success, false on failure. (number) Parameter on circle closes to testPoint.

    Description

    Gets the parameter on the circle which is closest to a test point.

    -
  • Parameters

  • Parameters

    • testPoint: number[]

      Point to project onto the circle.

    Returns number[]

    The point on the circle that is closest to testPoint or Point3d.Unset on failure.

    Description

    Gets the point on the circle which is closest to a test point.

    -
  • Parameters

  • Parameters

    • derivative: number

      Which order of derivative is wanted.

    • t: number

      Parameter to evaluate derivative. Valid values are 0, 1, 2 and 3.

    Returns number[]

    The derivative of the circle at the given parameter.

    Description

    Determines the value of the Nth derivative at a parameter.

    -
  • Parameters

    • plane: Plane

      Plane.

    • tolerance: number

      Tolerance to use.

    Returns boolean

    true if the circle plane is co-planar with the given plane within tolerance.

    Description

    Evaluates whether or not this circle is co-planar with a given plane.

    -
  • Parameters

  • Parameters

    • t: number

      Parameter of point to evaluate.

    Returns number[]

    The point on the circle at the given parameter.

    Description

    Circles use trigonometric parameterization: t -> center + cos(t)radiusxaxis + sin(t)radiusyaxis.

    -
  • Returns void

    Description

    Reverse the orientation of the circle. Changes the domain from [a,b] +

  • Returns void

    Description

    Reverse the orientation of the circle. Changes the domain from [a,b] to [-b,-a].

    -
  • Parameters

  • Parameters

    • t: number

      Parameter of tangent to evaluate.

    Returns number[]

    The tangent at the circle at the given parameter.

    Description

    Circles use trigonometric parameterization: t -> center + cos(t)radiusxaxis + sin(t)radiusyaxis.

    -
  • Returns NurbsCurve

    A nurbs curve representation of this circle or null if no such representation could be made.

    +
  • Returns NurbsCurve

    A nurbs curve representation of this circle or null if no such representation could be made.

    Description

    Constructs a nurbs curve representation of this circle. This amounts to the same as calling NurbsCurve.CreateFromCircle().

    -
  • Parameters

    Returns boolean

    true on success, false on failure.

    Description

    Transforms this circle using an transformation matrix.

    -
  • Parameters

  • Parameters

    • delta: number[]

      Translation vector.

    Returns boolean

    true on success, false on failure.

    Description

    Moves the circle.

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/CommonObject.html b/docs/javascript/api/classes/CommonObject.html index 4ee915810..83447fc32 100644 --- a/docs/javascript/api/classes/CommonObject.html +++ b/docs/javascript/api/classes/CommonObject.html @@ -1,4 +1,4 @@ -CommonObject | rhino3dm

Class CommonObject

Hierarchy (view full)

Constructors

constructor +CommonObject | rhino3dm

Class CommonObject

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Parameters

isValidWithLog: [boolean, string]

...

+
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns string[]

    Description

    Gets a copy of all (user key string, user value string) pairs attached to this geometry.

    -
  • Parameters

  • Returns string[]

    Description

    Gets a copy of all (user key string, user value string) pairs attached to this geometry.

    +
  • Parameters

    • key: string

      id used to retrieve this string.

    • value: string

      string associated with key.

    Returns boolean

    true if successful, false if not.

    Description

    Attach a user string (key,value combination) to this geometry.

    -
  • Returns string

    Description

    Create a JSON string representation of this object

    -
  • Parameters

    • json: object

      A json formatted object in the following format (values are orientative):

      +
  • Returns string

    Description

    Create a JSON string representation of this object

    +
  • Parameters

    • json: object

      A json formatted object in the following format (values are orientative):

      {
      version: 10000,
      archive3dm: 60,
      opennurbs: -1877964208,
      data: 'encoded 3dm object data'
      }

    Returns CommonObject

    Description

    Decodes a Rhino Object

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/ComponentIndex.html b/docs/javascript/api/classes/ComponentIndex.html index 66982e003..c9f6a4f33 100644 --- a/docs/javascript/api/classes/ComponentIndex.html +++ b/docs/javascript/api/classes/ComponentIndex.html @@ -1,4 +1,4 @@ -ComponentIndex | rhino3dm

Class ComponentIndex

Constructors

constructor +ComponentIndex | rhino3dm

Class ComponentIndex

Constructors

Properties

Constructors

Properties

componentIndexType: ComponentIndexType

The interpretation of Index depends on the Type value. @@ -20,7 +20,7 @@ dim_angular_point AngularDimension2::POINT_INDEX dim_ordinate_point OrdinateDimension2::POINT_INDEX dim_text_point TextEntity2 origin point.

-
index: number

The interpretation of m_index depends on the m_type value. +

index: number

The interpretation of m_index depends on the m_type value. m_type m_index interpretation (0 based indices) no_type used when context makes it clear what array is being index brep_vertex Brep.m_V[] array index @@ -39,4 +39,4 @@ dim_angular_point AngularDimension2::POINT_INDEX dim_ordinate_point OrdinateDimension2::POINT_INDEX dim_text_point TextEntity2 origin point.

-

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Cone.html b/docs/javascript/api/classes/Cone.html index 5b1b9a369..2a7938741 100644 --- a/docs/javascript/api/classes/Cone.html +++ b/docs/javascript/api/classes/Cone.html @@ -1,4 +1,4 @@ -Cone | rhino3dm

Class Cone

Constructors

constructor +Cone | rhino3dm

Class Cone

Constructors

Properties

Methods

Constructors

Properties

angleInDegrees: number
angleInRadians: number
apexPoint: number[]

Point at tip of the cone.

-
axis: number[]

Unit vector axis of cone.

-
basePoint: number[]

Center of base circle.

-
height: number

Gets or sets the height of the circular right cone.

-
isValid: boolean

true if plane is valid, height is not zero and radius is not zero.

-
radius: number

Gets or sets the radius of the cone.

-

Methods

  • Parameters

    • capBottom: boolean

      true if the bottom should be filled with a surface. false otherwise.

      +

Constructors

Properties

angleInDegrees: number
angleInRadians: number
apexPoint: number[]

Point at tip of the cone.

+
axis: number[]

Unit vector axis of cone.

+
basePoint: number[]

Center of base circle.

+
height: number

Gets or sets the height of the circular right cone.

+
isValid: boolean

true if plane is valid, height is not zero and radius is not zero.

+
radius: number

Gets or sets the radius of the cone.

+

Methods

  • Parameters

    • capBottom: boolean

      true if the bottom should be filled with a surface. false otherwise.

    Returns Brep

    A brep (polysurface) representation of this cone values.

    Description

    Gets a Brep representation of the cone with a single face for the cone, an edge along the cone seam, and vertices at the base and apex ends of this seam edge. The optional cap is a single face with one circular edge starting and ending at the base vertex.

    -
  • Returns NurbsSurface

    A Nurbs surface representation of the cone or null.

    Description

    Constructs a Nurbs surface representation of this Cone. This is synonymous with calling NurbsSurface.CreateFromCone().

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/ConstructionPlane.html b/docs/javascript/api/classes/ConstructionPlane.html index 5ea1884f5..4b86e66d1 100644 --- a/docs/javascript/api/classes/ConstructionPlane.html +++ b/docs/javascript/api/classes/ConstructionPlane.html @@ -1,4 +1,4 @@ -ConstructionPlane | rhino3dm

Class ConstructionPlane

Constructors

constructor +ConstructionPlane | rhino3dm

Class ConstructionPlane

Constructors

Properties

Constructors

Properties

depthBuffered: boolean

Gets or sets whether the grid is drawn on top of geometry. false=grid is always drawn behind 3d geometrytrue=grid is drawn at its depth as a 3d plane and grid lines obscure things behind the grid.

-
gridLineCount: number

Gets or sets the total amount of grid lines in each direction.

-
gridSpacing: number

Gets or sets the distance between grid lines.

-
name: string

Gets or sets the name of the construction plane.

-
plane: Plane

Gets or sets the geometric plane to use for construction.

-
snapSpacing: number

when "grid snap" is enabled, the distance between snap points. +

gridLineCount: number

Gets or sets the total amount of grid lines in each direction.

+
gridSpacing: number

Gets or sets the distance between grid lines.

+
name: string

Gets or sets the name of the construction plane.

+
plane: Plane

Gets or sets the geometric plane to use for construction.

+
snapSpacing: number

when "grid snap" is enabled, the distance between snap points. Typically this is the same distance as grid spacing.

-
thickLineFrequency: number

Gets or sets the recurrence of a wider line on the grid. +

thickLineFrequency: number

Gets or sets the recurrence of a wider line on the grid. 0: No lines are thick, all are drawn thin.1: All lines are thick.2: Every other line is thick.3: One line in three lines is thick (and two are thin).4: ...

-

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Curve.html b/docs/javascript/api/classes/Curve.html index b847775aa..80645ec89 100644 --- a/docs/javascript/api/classes/Curve.html +++ b/docs/javascript/api/classes/Curve.html @@ -1,4 +1,4 @@ -Curve | rhino3dm

Class Curve

Hierarchy (view full)

Constructors

constructor +Curve | rhino3dm

Class Curve

Hierarchy (view full)

Constructors

Properties

degree dimension domain @@ -60,61 +60,61 @@ decode

Constructors

Properties

degree: number

Gets the maximum algebraic degree of any span or a good estimate if curve spans are not algebraic.

-
dimension: number

Gets the dimension of the object. +

dimension: number

Gets the dimension of the object. The dimension is typically three. For parameter space trimming curves the dimension is two. In rare cases the dimension can be one or greater than three.

-
domain: number[]

Gets or sets the domain of the curve.

-
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isClosed: boolean

Gets a value indicating whether or not this curve is a closed curve.

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

domain: number[]

Gets or sets the domain of the curve.

+
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

+
isClosed: boolean

Gets a value indicating whether or not this curve is a closed curve.

+
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isPeriodic: boolean

Gets a value indicating whether or not this curve is considered to be Periodic.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isPeriodic: boolean

Gets a value indicating whether or not this curve is considered to be Periodic.

+
isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
pointAtEnd: number[]

Evaluates point at the end of the curve.

-
pointAtStart: number[]

Evaluates point at the start of the curve.

-
spanCount: number

Gets the number of non-empty smooth (c-infinity) spans in the curve.

-
tangentAtEnd: number[]

Evaluate unit tangent vector at the end of the curve.

-
tangentAtStart: number[]

Evaluates the unit tangent vector at the start of the curve.

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Parameters

pointAtEnd: number[]

Evaluates point at the end of the curve.

+
pointAtStart: number[]

Evaluates point at the start of the curve.

+
spanCount: number

Gets the number of non-empty smooth (c-infinity) spans in the curve.

+
tangentAtEnd: number[]

Evaluate unit tangent vector at the end of the curve.

+
tangentAtStart: number[]

Evaluates the unit tangent vector at the start of the curve.

+
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • t: number

      Curve parameter of new start/end point. The returned curves domain will start at t.

    Returns boolean

    true on success, false on failure.

    Description

    If this curve is closed, then modify it so that the start/end point is at curve parameter t.

    -
  • Parameters

  • Parameters

    • desiredDimension: number

      The desired dimension.

    Returns boolean

    true if the curve's dimension was already desiredDimension or if the curve's dimension was successfully changed to desiredDimension; otherwise false.

    Description

    Changes the dimension of a curve.

    -
  • Returns CurveOrientation

    The orientation of this curve with respect to world XY plane.

    Description

    Determines the orientation (counterclockwise or clockwise) of a closed, planar curve in the world XY plane. Only works with simple (no self intersections) closed, planar curves.

    -
  • Parameters

    • plane: Plane

      The plane in which to solve the orientation.

    Returns CurveOrientation

    The orientation of this curve with respect to world XY plane.

    Description

    Determines the orientation (counterclockwise or clockwise) of a closed, planar curve in a given plane. Only works with simple (no self intersections) closed, planar curves.

    -
  • Parameters

  • Parameters

    • t: number

      Evaluation parameter.

    Returns number[]

    Curvature vector of the curve at the parameter t.

    Description

    Evaluate the curvature vector at a curve parameter.

    -
  • Parameters

  • Parameters

    • t: number

      Curve parameter to evaluate.

    • derivativeCount: number

      Number of derivatives to evaluate, must be at least 0.

    Returns number[][]

    An array of vectors that represents all the derivatives starting at zero.

    Description

    Evaluate the derivatives at the specified curve parameter.

    -
  • Parameters

  • Parameters

    • t: number

      Curve parameter to evaluate.

    • derivativeCount: number

      Number of derivatives to evaluate, must be at least 0.

    • side: CurveEvaluationSide

      Side of parameter to evaluate. If the parameter is at a kink, it makes a big difference whether the evaluation is from below or above.

    Returns void

    An array of vectors that represents all the derivatives starting at zero.

    Description

    Evaluate the derivatives at the specified curve parameter.

    -
  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
  • Parameters

    • t: number

      Evaluation parameter.

    Returns object

    [boolean, Plane] (boolean) true on success, false on failure. (Plane) The frame is returned here.

    Description

    Returns a 3d frame at a parameter.

    -
  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. +

  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -122,102 +122,102 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

    • nurbsParameter: number

      NURBS form parameter.

    Returns object

    [boolean, number] (boolean) true on success, false on failure. (number) Curve parameter.

    Description

    Convert a NURBS curve parameter to a curve parameter.

    -
  • Parameters

  • Parameters

    • curveParameter: number

      Curve parameter.

    Returns object

    [boolean, number] (boolean) true on success, false on failure. (number) NURBS form parameter.

    Description

    Convert a curve parameter to a NURBS curve parameter.

    -
  • Parameters

  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns boolean

    true if the curve can be represented by an arc or a circle within tolerance.

    +
  • Returns boolean

    true if the curve can be represented by an arc or a circle within tolerance.

    Description

    Test a curve to see if it can be represented by an arc or circle within RhinoMath.ZeroTolerance.

    -
  • Returns boolean

    true if the Curve can be represented by a circle within tolerance.

    +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/CurvePiping.html b/docs/javascript/api/classes/CurvePiping.html index 1abb32792..170e6bb05 100644 --- a/docs/javascript/api/classes/CurvePiping.html +++ b/docs/javascript/api/classes/CurvePiping.html @@ -1,4 +1,4 @@ -CurvePiping | rhino3dm

Class CurvePiping

Constructors

constructor +CurvePiping | rhino3dm

Class CurvePiping

Constructors

Properties

Constructors

Properties

accuracy: number

Description

Specifies the accuracy of the pipe in the range 0 to 100.

-

Returns

Description

Specifies the cap type to use.

-

Returns

faceted: boolean

Description

Specifies whether the pipe is faceted or not.

-

Returns

on: boolean

Description

Specifies whether curve piping is enabled or not.

-

Returns

radius: number

Description

Specifies the radius of the pipe (minimum value 0.0001).

-

Returns

segments: number

Description

Specifies the number of segments in the pipe (minimum value 2).

-

Returns

Generated using TypeDoc

\ No newline at end of file +

Returns

Description

Specifies the cap type to use.

+

Returns

faceted: boolean

Description

Specifies whether the pipe is faceted or not.

+

Returns

on: boolean

Description

Specifies whether curve piping is enabled or not.

+

Returns

radius: number

Description

Specifies the radius of the pipe (minimum value 0.0001).

+

Returns

segments: number

Description

Specifies the number of segments in the pipe (minimum value 2).

+

Returns

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/CurveProxy.html b/docs/javascript/api/classes/CurveProxy.html index c98f04a68..a98b7f63b 100644 --- a/docs/javascript/api/classes/CurveProxy.html +++ b/docs/javascript/api/classes/CurveProxy.html @@ -1,4 +1,4 @@ -CurveProxy | rhino3dm

Class CurveProxy

Hierarchy (view full)

Constructors

constructor +CurveProxy | rhino3dm

Class CurveProxy

Hierarchy (view full)

Constructors

Properties

degree dimension domain @@ -61,62 +61,62 @@ decode

Constructors

Properties

degree: number

Gets the maximum algebraic degree of any span or a good estimate if curve spans are not algebraic.

-
dimension: number

Gets the dimension of the object. +

dimension: number

Gets the dimension of the object. The dimension is typically three. For parameter space trimming curves the dimension is two. In rare cases the dimension can be one or greater than three.

-
domain: number[]

Gets or sets the domain of the curve.

-
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isClosed: boolean

Gets a value indicating whether or not this curve is a closed curve.

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

domain: number[]

Gets or sets the domain of the curve.

+
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

+
isClosed: boolean

Gets a value indicating whether or not this curve is a closed curve.

+
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isPeriodic: boolean

Gets a value indicating whether or not this curve is considered to be Periodic.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isPeriodic: boolean

Gets a value indicating whether or not this curve is considered to be Periodic.

+
isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
pointAtEnd: number[]

Evaluates point at the end of the curve.

-
pointAtStart: number[]

Evaluates point at the start of the curve.

-
proxyCurveIsReversed: boolean

True if "this" is a curve is reversed from the "real" curve geometry

-
spanCount: number

Gets the number of non-empty smooth (c-infinity) spans in the curve.

-
tangentAtEnd: number[]

Evaluate unit tangent vector at the end of the curve.

-
tangentAtStart: number[]

Evaluates the unit tangent vector at the start of the curve.

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Parameters

pointAtEnd: number[]

Evaluates point at the end of the curve.

+
pointAtStart: number[]

Evaluates point at the start of the curve.

+
proxyCurveIsReversed: boolean

True if "this" is a curve is reversed from the "real" curve geometry

+
spanCount: number

Gets the number of non-empty smooth (c-infinity) spans in the curve.

+
tangentAtEnd: number[]

Evaluate unit tangent vector at the end of the curve.

+
tangentAtStart: number[]

Evaluates the unit tangent vector at the start of the curve.

+
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • t: number

      Curve parameter of new start/end point. The returned curves domain will start at t.

    Returns boolean

    true on success, false on failure.

    Description

    If this curve is closed, then modify it so that the start/end point is at curve parameter t.

    -
  • Parameters

    • desiredDimension: number

      The desired dimension.

    Returns boolean

    true if the curve's dimension was already desiredDimension or if the curve's dimension was successfully changed to desiredDimension; otherwise false.

    Description

    Changes the dimension of a curve.

    -
  • Returns CurveOrientation

    The orientation of this curve with respect to world XY plane.

    Description

    Determines the orientation (counterclockwise or clockwise) of a closed, planar curve in the world XY plane. Only works with simple (no self intersections) closed, planar curves.

    -
  • Parameters

    • plane: Plane

      The plane in which to solve the orientation.

    Returns CurveOrientation

    The orientation of this curve with respect to world XY plane.

    Description

    Determines the orientation (counterclockwise or clockwise) of a closed, planar curve in a given plane. Only works with simple (no self intersections) closed, planar curves.

    -
  • Parameters

    • t: number

      Evaluation parameter.

    Returns number[]

    Curvature vector of the curve at the parameter t.

    Description

    Evaluate the curvature vector at a curve parameter.

    -
  • Parameters

    • t: number

      Curve parameter to evaluate.

    • derivativeCount: number

      Number of derivatives to evaluate, must be at least 0.

    Returns number[][]

    An array of vectors that represents all the derivatives starting at zero.

    Description

    Evaluate the derivatives at the specified curve parameter.

    -
  • Parameters

    • t: number

      Curve parameter to evaluate.

    • derivativeCount: number

      Number of derivatives to evaluate, must be at least 0.

    • side: CurveEvaluationSide

      Side of parameter to evaluate. If the parameter is at a kink, it makes a big difference whether the evaluation is from below or above.

    Returns void

    An array of vectors that represents all the derivatives starting at zero.

    Description

    Evaluate the derivatives at the specified curve parameter.

    -
  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
  • Parameters

    • t: number

      Evaluation parameter.

    Returns object

    [boolean, Plane] (boolean) true on success, false on failure. (Plane) The frame is returned here.

    Description

    Returns a 3d frame at a parameter.

    -
  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -124,102 +124,102 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

    • nurbsParameter: number

      NURBS form parameter.

    Returns object

    [boolean, number] (boolean) true on success, false on failure. (number) Curve parameter.

    Description

    Convert a NURBS curve parameter to a curve parameter.

    -
  • Parameters

    • curveParameter: number

      Curve parameter.

    Returns object

    [boolean, number] (boolean) true on success, false on failure. (number) NURBS form parameter.

    Description

    Convert a curve parameter to a NURBS curve parameter.

    -
  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns string[]

    Description

    Gets a copy of all (user key string, user value string) pairs attached to this geometry.

    -
  • Returns boolean

    true if the curve can be represented by an arc or a circle within tolerance.

    +
  • Returns string[]

    Description

    Gets a copy of all (user key string, user value string) pairs attached to this geometry.

    +
  • Returns boolean

    true if the curve can be represented by an arc or a circle within tolerance.

    Description

    Test a curve to see if it can be represented by an arc or circle within RhinoMath.ZeroTolerance.

    -
  • Returns boolean

    true if the Curve can be represented by a circle within tolerance.

    +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Cylinder.html b/docs/javascript/api/classes/Cylinder.html index 367b4840c..b3738bd9e 100644 --- a/docs/javascript/api/classes/Cylinder.html +++ b/docs/javascript/api/classes/Cylinder.html @@ -1,4 +1,4 @@ -Cylinder | rhino3dm

Class Cylinder

Constructors

constructor +Cylinder | rhino3dm

Class Cylinder

Constructors

Properties

axis center height1 @@ -10,29 +10,29 @@

Methods

Constructors

Properties

axis: number[]

Gets the axis direction of the cylinder.

-
center: number[]

Gets the center point of the defining circle.

-
height1: number

Gets or sets the start height of the cylinder. +

Constructors

Properties

axis: number[]

Gets the axis direction of the cylinder.

+
center: number[]

Gets the center point of the defining circle.

+
height1: number

Gets or sets the start height of the cylinder. The center of bottom cap is: BasePlane.Origin + Height1 * BasePlane.ZAxis.

-
height2: number

Gets or sets the end height of the cylinder. +

height2: number

Gets or sets the end height of the cylinder. If the end height equals the start height, the cylinder is presumed to be infinite. The center of top cap is: BasePlane.Origin + Height2 * BasePlane.ZAxis.

-
isFinite: boolean

true if the cylinder is finite (Height0 != Height1) +

isFinite: boolean

true if the cylinder is finite (Height0 != Height1) false if the cylinder is infinite.

-
isValid: boolean

Gets a boolean value indicating whether this cylinder is valid. +

isValid: boolean

Gets a boolean value indicating whether this cylinder is valid. A valid cylinder is represented by a valid circle and two valid heights.

-
radius: number

Gets or sets the radius of the cylinder.

-
totalHeight: number

Gets the height of the cylinder. +

radius: number

Gets or sets the radius of the cylinder.

+
totalHeight: number

Gets the height of the cylinder. Infinite cylinders have a height of zero, not Double.PositiveInfinity.

-

Methods

  • Parameters

    • linearParameter: number

      Height parameter for circle section.

      +

Methods

  • Parameters

    • linearParameter: number

      Height parameter for circle section.

    Returns Circle

    Description

    Compute the circle at the given elevation parameter.

    -
  • Parameters

    • capBottom: boolean

      If true, the bottom of the cylinder will be capped.

      +
  • Parameters

    • capBottom: boolean

      If true, the bottom of the cylinder will be capped.

    • capTop: boolean

      If true, the top of the cylinder will be capped.

    Returns Brep

    A Brep representation of the cylinder or null.

    Description

    Constructs a Brep representation of this Cylinder. This is synonymous with calling NurbsSurface.CreateFromCylinder().

    -
  • Returns NurbsSurface

    A Nurbs surface representation of the cylinder or null.

    Description

    Constructs a Nurbs surface representation of this cylinder. This is synonymous with calling NurbsSurface.CreateFromCylinder().

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Decal.html b/docs/javascript/api/classes/Decal.html index 0a5ed092d..0a42e8336 100644 --- a/docs/javascript/api/classes/Decal.html +++ b/docs/javascript/api/classes/Decal.html @@ -1,4 +1,4 @@ -Decal | rhino3dm

Class Decal

Constructors

constructor +Decal | rhino3dm

Class Decal

Constructors

Properties

Constructors

Properties

boundsMaxV: any

The V min bounds of the decal.

-
boundsMinU: number

The U min bounds of the decal.

-
height: number

Gets the height of the decal. Only used when mapping is cylindrical.

-
horzSweepEnd: number

Gets the angles of the decal's arc of 'horizontal sweep'.

-
horzSweepStart: number

Gets the angles of the decal's arc of 'horizontal sweep'.

-
mapToInside: boolean

Used only when mapping is cylindrical or spherical.

-
mapping: Mappings

Gets the mapping of the decal.

-
origin: number[]

Gets the origin of the decal in world space.

-
projection: Projections

Gets the decal's projection. Used only when mapping is planar.

-
radius: number

Gets the radius of the decal. Only used when mapping is cylindrical or spherical.

-
textureInstanceId: string

Gets the texture ID for this decal.

-
transparency: number

Gets the decal's transparency in the range 0 to 1.

-
vectorAcross: number[]

Gets the vector across. For cylindrical and spherical mapping, the vector is unitized.

-
vectorUp: number[]

For cylindrical and spherical mapping, the vector is unitized.

-
vertSweepEnd: number

Gets the angles of the decal's arc of 'vertical sweep'.

-
vertSweepStart: number

Gets the angles of the decal's arc of 'vertical sweep'.

-

Generated using TypeDoc

\ No newline at end of file +
boundsMinU: number

The U min bounds of the decal.

+
height: number

Gets the height of the decal. Only used when mapping is cylindrical.

+
horzSweepEnd: number

Gets the angles of the decal's arc of 'horizontal sweep'.

+
horzSweepStart: number

Gets the angles of the decal's arc of 'horizontal sweep'.

+
mapToInside: boolean

Used only when mapping is cylindrical or spherical.

+
mapping: Mappings

Gets the mapping of the decal.

+
origin: number[]

Gets the origin of the decal in world space.

+
projection: Projections

Gets the decal's projection. Used only when mapping is planar.

+
radius: number

Gets the radius of the decal. Only used when mapping is cylindrical or spherical.

+
textureInstanceId: string

Gets the texture ID for this decal.

+
transparency: number

Gets the decal's transparency in the range 0 to 1.

+
vectorAcross: number[]

Gets the vector across. For cylindrical and spherical mapping, the vector is unitized.

+
vectorUp: number[]

For cylindrical and spherical mapping, the vector is unitized.

+
vertSweepEnd: number

Gets the angles of the decal's arc of 'vertical sweep'.

+
vertSweepStart: number

Gets the angles of the decal's arc of 'vertical sweep'.

+

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/DimAngular.html b/docs/javascript/api/classes/DimAngular.html index 16dc02787..65178975c 100644 --- a/docs/javascript/api/classes/DimAngular.html +++ b/docs/javascript/api/classes/DimAngular.html @@ -1,4 +1,4 @@ -DimAngular | rhino3dm

Class DimAngular

Hierarchy (view full)

Constructors

constructor +DimAngular | rhino3dm

Class DimAngular

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

angle: number
annotationType: AnnotationTypes

Type of annotation

-
dimensionStyleId: string

Id of this annotation's parent dimstyle +

Constructors

Properties

angle: number
annotationType: AnnotationType

Type of annotation

+
dimensionStyleId: string

Id of this annotation's parent dimstyle If this annotation has overrides to dimstyle properties, those overrides will be represented in the DimensionStyle returned by DimensionStyle(ParentStyle)

-
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

+
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
plainText: string

Text stripped of RTF formatting information

-
plainTextWithFields: string

Text stripped of RTF formatting information and with field expressions intact

-
plane: Plane

Plane that this annotation lies on

-
points: object
radius: number
richText: string

Text including additional RTF formatting information

-
textIsWrapped: boolean

Is text wrapping on

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
plainText: string

Text stripped of RTF formatting information

+
plainTextWithFields: string

Text stripped of RTF formatting information and with field expressions intact

+
plane: Plane

Plane that this annotation lies on

+
points: object
radius: number
richText: string

Text including additional RTF formatting information

+
textIsWrapped: boolean

Is text wrapping on

+
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -60,42 +60,42 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns string[]

    Description

    Gets a copy of all (user key string, user value string) pairs attached to this geometry.

    -
  • Returns boolean

    false if object cannot be converted to a deformable object. true if object was +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/DimLinear.html b/docs/javascript/api/classes/DimLinear.html index 044fad1f1..2e36e817d 100644 --- a/docs/javascript/api/classes/DimLinear.html +++ b/docs/javascript/api/classes/DimLinear.html @@ -1,4 +1,4 @@ -DimLinear | rhino3dm

Class DimLinear

Hierarchy (view full)

Constructors

constructor +DimLinear | rhino3dm

Class DimLinear

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

annotationType: AnnotationTypes

Type of annotation

-
dimensionStyleId: string

Id of this annotation's parent dimstyle +

Constructors

Properties

annotationType: AnnotationType

Type of annotation

+
dimensionStyleId: string

Id of this annotation's parent dimstyle If this annotation has overrides to dimstyle properties, those overrides will be represented in the DimensionStyle returned by DimensionStyle(ParentStyle)

-
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

+
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
plainText: string

Text stripped of RTF formatting information

-
plainTextWithFields: string

Text stripped of RTF formatting information and with field expressions intact

-
plane: Plane

Plane that this annotation lies on

-
points: object
richText: string

Text including additional RTF formatting information

-
textIsWrapped: boolean

Is text wrapping on

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
plainText: string

Text stripped of RTF formatting information

+
plainTextWithFields: string

Text stripped of RTF formatting information and with field expressions intact

+
plane: Plane

Plane that this annotation lies on

+
points: object
richText: string

Text including additional RTF formatting information

+
textIsWrapped: boolean

Is text wrapping on

+
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -58,42 +58,42 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns string[]

    Description

    Gets a copy of all (user key string, user value string) pairs attached to this geometry.

    -
  • Returns boolean

    false if object cannot be converted to a deformable object. true if object was +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/DimOrdinate.html b/docs/javascript/api/classes/DimOrdinate.html index 0c6aa8934..93b57fbbf 100644 --- a/docs/javascript/api/classes/DimOrdinate.html +++ b/docs/javascript/api/classes/DimOrdinate.html @@ -1,4 +1,4 @@ -DimOrdinate | rhino3dm

Class DimOrdinate

Hierarchy (view full)

Constructors

constructor +DimOrdinate | rhino3dm

Class DimOrdinate

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

annotationType: AnnotationTypes

Type of annotation

-
dimensionStyleId: string

Id of this annotation's parent dimstyle +

Constructors

Properties

annotationType: AnnotationType

Type of annotation

+
dimensionStyleId: string

Id of this annotation's parent dimstyle If this annotation has overrides to dimstyle properties, those overrides will be represented in the DimensionStyle returned by DimensionStyle(ParentStyle)

-
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

+
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
plainText: string

Text stripped of RTF formatting information

-
plainTextWithFields: string

Text stripped of RTF formatting information and with field expressions intact

-
plane: Plane

Plane that this annotation lies on

-
points: object
richText: string

Text including additional RTF formatting information

-
textIsWrapped: boolean

Is text wrapping on

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
plainText: string

Text stripped of RTF formatting information

+
plainTextWithFields: string

Text stripped of RTF formatting information and with field expressions intact

+
plane: Plane

Plane that this annotation lies on

+
points: object
richText: string

Text including additional RTF formatting information

+
textIsWrapped: boolean

Is text wrapping on

+
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -58,42 +58,42 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns string[]

    Description

    Gets a copy of all (user key string, user value string) pairs attached to this geometry.

    -
  • Returns boolean

    false if object cannot be converted to a deformable object. true if object was +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/DimRadial.html b/docs/javascript/api/classes/DimRadial.html index 55d614629..a0215b569 100644 --- a/docs/javascript/api/classes/DimRadial.html +++ b/docs/javascript/api/classes/DimRadial.html @@ -1,4 +1,4 @@ -DimRadial | rhino3dm

Class DimRadial

Hierarchy (view full)

Constructors

constructor +DimRadial | rhino3dm

Class DimRadial

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

annotationType: AnnotationTypes

Type of annotation

-
dimensionStyleId: string

Id of this annotation's parent dimstyle +

Constructors

Properties

annotationType: AnnotationType

Type of annotation

+
dimensionStyleId: string

Id of this annotation's parent dimstyle If this annotation has overrides to dimstyle properties, those overrides will be represented in the DimensionStyle returned by DimensionStyle(ParentStyle)

-
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

+
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
plainText: string

Text stripped of RTF formatting information

-
plainTextWithFields: string

Text stripped of RTF formatting information and with field expressions intact

-
plane: Plane

Plane that this annotation lies on

-
points: object
richText: string

Text including additional RTF formatting information

-
textIsWrapped: boolean

Is text wrapping on

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
plainText: string

Text stripped of RTF formatting information

+
plainTextWithFields: string

Text stripped of RTF formatting information and with field expressions intact

+
plane: Plane

Plane that this annotation lies on

+
points: object
richText: string

Text including additional RTF formatting information

+
textIsWrapped: boolean

Is text wrapping on

+
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -58,42 +58,42 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns string[]

    Description

    Gets a copy of all (user key string, user value string) pairs attached to this geometry.

    -
  • Returns boolean

    false if object cannot be converted to a deformable object. true if object was +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Dimension.html b/docs/javascript/api/classes/Dimension.html index d03253bcb..e96ce67bf 100644 --- a/docs/javascript/api/classes/Dimension.html +++ b/docs/javascript/api/classes/Dimension.html @@ -1,4 +1,4 @@ -Dimension | rhino3dm

Class Dimension

Hierarchy (view full)

Constructors

constructor +Dimension | rhino3dm

Class Dimension

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

annotationType: AnnotationTypes

Type of annotation

-
dimensionStyleId: string

Id of this annotation's parent dimstyle +

Constructors

Properties

annotationType: AnnotationType

Type of annotation

+
dimensionStyleId: string

Id of this annotation's parent dimstyle If this annotation has overrides to dimstyle properties, those overrides will be represented in the DimensionStyle returned by DimensionStyle(ParentStyle)

-
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

+
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
plainText: string

Text stripped of RTF formatting information

-
plainTextWithFields: string

Text stripped of RTF formatting information and with field expressions intact

-
plane: Plane

Plane that this annotation lies on

-
richText: string

Text including additional RTF formatting information

-
textIsWrapped: boolean

Is text wrapping on

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
plainText: string

Text stripped of RTF formatting information

+
plainTextWithFields: string

Text stripped of RTF formatting information and with field expressions intact

+
plane: Plane

Plane that this annotation lies on

+
richText: string

Text including additional RTF formatting information

+
textIsWrapped: boolean

Is text wrapping on

+
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -56,41 +56,41 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns boolean

    false if object cannot be converted to a deformable object. true if object was +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/DimensionStyle.html b/docs/javascript/api/classes/DimensionStyle.html index ba857c954..c3a5a4e3b 100644 --- a/docs/javascript/api/classes/DimensionStyle.html +++ b/docs/javascript/api/classes/DimensionStyle.html @@ -1,4 +1,4 @@ -DimensionStyle | rhino3dm

Class DimensionStyle

Hierarchy (view full)

Constructors

constructor +DimensionStyle | rhino3dm

Class DimensionStyle

Hierarchy (view full)

Constructors

Properties

alternateBelowLine: boolean
alternateLengthFactor: number
arrowBlockId1: string
arrowBlockId2: string
arrowLength: number
arrowType1: ArrowheadTypes
arrowType2: ArrowheadTypes
baselineSpacing: number
centermarkSize: number
dimensionLineExtension: number
drawForward: boolean
drawTextMask: boolean
extensionLineExtension: number
extensionLineOffset: number
fixedExtensionLength: number
fixedExtensionLengthOn: any
hasFieldOverrides: boolean

Checks if any fields in this DimensionStyle are overrides

-
isChild: boolean

Tests if this DimensionStyle is a child of any other DimensionStyle

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
leaderArrowBlockId: string
leaderArrowLength: number
leaderArrowType: ArrowheadTypes
leaderHasLanding: boolean
leaderLandingLength: number
lengthFactor: number
name: string
parentId: string

Get or Set the Id of this DimensionStyle's parent. +

Constructors

Properties

alternateBelowLine: boolean
alternateLengthFactor: number
arrowBlockId1: string
arrowBlockId2: string
arrowLength: number
arrowType1: ArrowheadTypes
arrowType2: ArrowheadTypes
baselineSpacing: number
centermarkSize: number
dimensionLineExtension: number
drawForward: boolean
drawTextMask: boolean
extensionLineExtension: number
extensionLineOffset: number
fixedExtensionLength: number
fixedExtensionLengthOn: any
hasFieldOverrides: boolean

Checks if any fields in this DimensionStyle are overrides

+
isChild: boolean

Tests if this DimensionStyle is a child of any other DimensionStyle

+
isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
leaderArrowBlockId: string
leaderArrowLength: number
leaderArrowType: ArrowheadTypes
leaderHasLanding: boolean
leaderLandingLength: number
lengthFactor: number
name: string
parentId: string

Get or Set the Id of this DimensionStyle's parent. If ParentId is Guid.Empty, this DimensionStyle has no parent

-
stackHeightScale: number
suppressArrow1: boolean
suppressArrow2: boolean
suppressExtension1: boolean
suppressExtension2: boolean
textGap: number
textHeight: number
textRotation: number
textUnderlined: boolean
toleranceHeightScale: number
toleranceLowerValue: number
toleranceUpperValue: number
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Returns void

    Description

    Sets all the fields in this DimensionStyle to be not overridden +

stackHeightScale: number
suppressArrow1: boolean
suppressArrow2: boolean
suppressExtension1: boolean
suppressExtension2: boolean
textGap: number
textHeight: number
textRotation: number
textUnderlined: boolean
toleranceHeightScale: number
toleranceLowerValue: number
toleranceUpperValue: number
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Returns void

    Description

    Sets all the fields in this DimensionStyle to be not overridden Does not change any dimstyle_id's or parent_id's

    -
  • Parameters

  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Parameters

    • id: string

    Returns boolean

    True if this is a child of the DimensionStyle with Parent +

  • Parameters

    • id: string

    Returns boolean

    True if this is a child of the DimensionStyle with Parent False otherwise.

    Description

    Tests if this DimensionStyle is a child of a specific DimensionStyle

    -
  • Parameters

    • scale: number

    Returns void

    Description

    Scales all length values by 'scale'

    -
  • Parameters

  • Parameters

    • scale: number

    Returns void

    Description

    Scales all length values by 'scale'

    +
  • Parameters

    • key: string

      id used to retrieve this string.

    • value: string

      string associated with key.

    Returns boolean

    true if successful, false if not.

    Description

    Attach a user string (key,value combination) to this geometry.

    -
  • Parameters

    • json: object

      A json formatted object in the following format (values are orientative):

      {
      version: 10000,
      archive3dm: 60,
      opennurbs: -1877964208,
      data: 'encoded 3dm object data'
      }

    Returns CommonObject

    Description

    Decodes a Rhino Object

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Displacement.html b/docs/javascript/api/classes/Displacement.html index 595ce7b9c..3764cde12 100644 --- a/docs/javascript/api/classes/Displacement.html +++ b/docs/javascript/api/classes/Displacement.html @@ -1,4 +1,4 @@ -Displacement | rhino3dm

Class Displacement

Constructors

constructor +Displacement | rhino3dm

Class Displacement

Constructors

Properties

Constructors

Properties

blackPoint: number

Specifies the amount of displacement for the black color in the texture.

-
fairing: number

Specifies the number of steps for the fairing process. Fairing straightens rough feature edges.

-
fairingOn: boolean

Specifies whether or not to perform a fairing step. Fairing straightens rough feature edges.

-
finalMaxFaces: number

Specifies how many faces the reduction post process should target.

-
finalMaxFacesOn: boolean

Specifies whether to perform a mesh reduction as a post process to simplify the result of displacement.

-
initialQuality: number

Specifies how densely the object is initially subdivided. The lower the value, the higher the resolution of the displaced mesh.

-
mappingChannel: number

Specifies which texture mapping channel is used for the displacement texture.

-
meshMemoryLimit: number

Specifies in megabytes how much memory can be allocated for use by the displacement mesh.

-
on: boolean

Specifies whether the displacement feature is enabled or not.

-
postWeldAngle: number

Specifies the maximum angle between face normals of adjacent faces that will get welded together.

-
refineSensitivity: number

Specifies how sensitive the divider for contrasts is on the displacement texture- Specify 1 to split all mesh edges on each refine step. Specify 0.99 to make even slight contrasts on the displacement texture cause edges to be split. Specifying 0.01 only splits edges where heavy contrast exists.

-
refineSteps: number

Specifies the number of refinement passes

-
sweepResolutionFormula: DisplacementSweepResolutionFormulas

Specifies which formula is used to calculate sweep resolution from initial quality.

-
texture: string

Specifies whether the displacement feature is enabled or not.

-
whitePoint: number

Specifies the amount of displacement for the white color in the texture.

-

Generated using TypeDoc

\ No newline at end of file +
fairing: number

Specifies the number of steps for the fairing process. Fairing straightens rough feature edges.

+
fairingOn: boolean

Specifies whether or not to perform a fairing step. Fairing straightens rough feature edges.

+
finalMaxFaces: number

Specifies how many faces the reduction post process should target.

+
finalMaxFacesOn: boolean

Specifies whether to perform a mesh reduction as a post process to simplify the result of displacement.

+
initialQuality: number

Specifies how densely the object is initially subdivided. The lower the value, the higher the resolution of the displaced mesh.

+
mappingChannel: number

Specifies which texture mapping channel is used for the displacement texture.

+
meshMemoryLimit: number

Specifies in megabytes how much memory can be allocated for use by the displacement mesh.

+
on: boolean

Specifies whether the displacement feature is enabled or not.

+
postWeldAngle: number

Specifies the maximum angle between face normals of adjacent faces that will get welded together.

+
refineSensitivity: number

Specifies how sensitive the divider for contrasts is on the displacement texture- Specify 1 to split all mesh edges on each refine step. Specify 0.99 to make even slight contrasts on the displacement texture cause edges to be split. Specifying 0.01 only splits edges where heavy contrast exists.

+
refineSteps: number

Specifies the number of refinement passes

+
sweepResolutionFormula: DisplacementSweepResolutionFormulas

Specifies which formula is used to calculate sweep resolution from initial quality.

+
texture: string

Specifies whether the displacement feature is enabled or not.

+
whitePoint: number

Specifies the amount of displacement for the white color in the texture.

+

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Dithering.html b/docs/javascript/api/classes/Dithering.html index f564fdef3..c7f51d20b 100644 --- a/docs/javascript/api/classes/Dithering.html +++ b/docs/javascript/api/classes/Dithering.html @@ -1,4 +1,4 @@ -Dithering | rhino3dm

Class Dithering

Constructors

constructor +Dithering | rhino3dm

Class Dithering

Constructors

Properties

Constructors

Properties

enabled: boolean

Generated using TypeDoc

\ No newline at end of file +

Constructors

Properties

enabled: boolean

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/DracoCompression.html b/docs/javascript/api/classes/DracoCompression.html index f13299abe..82c1c2307 100644 --- a/docs/javascript/api/classes/DracoCompression.html +++ b/docs/javascript/api/classes/DracoCompression.html @@ -1,12 +1,12 @@ -DracoCompression | rhino3dm

Class DracoCompression

Constructors

constructor +DracoCompression | rhino3dm

Class DracoCompression

Constructors

Methods

Generated using TypeDoc

\ No newline at end of file +

Returns string

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/DracoCompressionOptions.html b/docs/javascript/api/classes/DracoCompressionOptions.html index 7c9d38bb7..e4d620f36 100644 --- a/docs/javascript/api/classes/DracoCompressionOptions.html +++ b/docs/javascript/api/classes/DracoCompressionOptions.html @@ -1,4 +1,4 @@ -DracoCompressionOptions | rhino3dm

Class DracoCompressionOptions

Constructors

constructor +DracoCompressionOptions | rhino3dm

Class DracoCompressionOptions

Constructors

Properties

compressionLevel: number
includeNormals: boolean
includeTextureCoordinates: boolean
includeVertexColors: boolean
normalQuantizationBits: number
positionQuantizationBits: number
textureCoordintateQuantizationBits: number

Generated using TypeDoc

\ No newline at end of file +

Constructors

Properties

compressionLevel: number
includeNormals: boolean
includeTextureCoordinates: boolean
includeVertexColors: boolean
normalQuantizationBits: number
positionQuantizationBits: number
textureCoordintateQuantizationBits: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/EarthAnchorPoint.html b/docs/javascript/api/classes/EarthAnchorPoint.html index 24228c780..7be8be55c 100644 --- a/docs/javascript/api/classes/EarthAnchorPoint.html +++ b/docs/javascript/api/classes/EarthAnchorPoint.html @@ -1,4 +1,4 @@ -EarthAnchorPoint | rhino3dm

Class EarthAnchorPoint

Constructors

constructor +EarthAnchorPoint | rhino3dm

Class EarthAnchorPoint

Constructors

Properties

description: string

Gets or sets the long form of the identifying information about this location.

-
earthBasepointElevation: number

Gets or sets the point elevation on earth, in meters.

-
earthBasepointElevationZero: BasepointZero

Gets or sets a value indicating the zero level convention relating to a location on Earth.

-
earthBasepointLatitude: number

Gets or sets a point latitude on earth, in degrees. +

earthBasepointElevation: number

Gets or sets the point elevation on earth, in meters.

+
earthBasepointElevationZero: BasepointZero

Gets or sets a value indicating the zero level convention relating to a location on Earth.

+
earthBasepointLatitude: number

Gets or sets a point latitude on earth, in degrees. +90 = north pole, 0 = equator, -90 = south pole.

-
earthBasepointLongitude: number

Gets or sets the point longitude on earth, in degrees.

-
modelBasePoint: number[]

Corresponding model point in model coordinates.

-
modelEast: number[]

Earth directions in model coordinates.

-
modelNorth: number[]

Earth directions in model coordinates.

-
name: string

Gets or sets the short form of the identifying information about this location.

-

Methods

  • Returns boolean

    Boolean value, true if set else false

    +
earthBasepointLongitude: number

Gets or sets the point longitude on earth, in degrees.

+
modelBasePoint: number[]

Corresponding model point in model coordinates.

+
modelEast: number[]

Earth directions in model coordinates.

+
modelNorth: number[]

Earth directions in model coordinates.

+
name: string

Gets or sets the short form of the identifying information about this location.

+

Methods

  • Returns boolean

    Boolean value, true if set else false

    Description

    Checks if the earth location is set or not.

    -
  • Returns Plane

    A plane value. This might be invalid on error.

    +
  • Returns Plane

    A plane value. This might be invalid on error.

    Description

    Returns a plane in model coordinates whose X axis points East, Y axis points North and Z axis points Up. The origin is set to ModelBasepoint.

    -
  • Parameters

    • modelUnitSystem: UnitSystem

      The model unit system.

    Returns Transform

    Transform on success. Invalid Transform on error.

    Description

    Gets a transformation from model coordinates to earth coordinates. This transformation assumes the model is small enough that the curvature of the earth can be ignored.

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/EdgeSoftening.html b/docs/javascript/api/classes/EdgeSoftening.html index 348bde655..89a1e73f5 100644 --- a/docs/javascript/api/classes/EdgeSoftening.html +++ b/docs/javascript/api/classes/EdgeSoftening.html @@ -1,4 +1,4 @@ -EdgeSoftening | rhino3dm

Class EdgeSoftening

Constructors

constructor +EdgeSoftening | rhino3dm

Class EdgeSoftening

Constructors

Properties

Constructors

Properties

chamfer: boolean

Specifies whether to chamfer the edges.

-
edgeAngleThreshold: number

Threshold angle (in degrees) which controls whether an edge is softened or not. The angle refers to the angles between the adjacent faces of an edge.

-
faceted: boolean

Specifies whether the edges are faceted.

-
forceSoftening: boolean

Specifies whether to soften edges despite too large a radius.

-
on: boolean

Specifies whether edge softening is enabled or not.

-
softening: number

The softening radius.

-

Generated using TypeDoc

\ No newline at end of file +
edgeAngleThreshold: number

Threshold angle (in degrees) which controls whether an edge is softened or not. The angle refers to the angles between the adjacent faces of an edge.

+
faceted: boolean

Specifies whether the edges are faceted.

+
forceSoftening: boolean

Specifies whether to soften edges despite too large a radius.

+
on: boolean

Specifies whether edge softening is enabled or not.

+
softening: number

The softening radius.

+

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Ellipse.html b/docs/javascript/api/classes/Ellipse.html index 600a687c5..13f4e5f63 100644 --- a/docs/javascript/api/classes/Ellipse.html +++ b/docs/javascript/api/classes/Ellipse.html @@ -1,2 +1,2 @@ -Ellipse | rhino3dm

Class Ellipse

Constructors

constructor +Ellipse | rhino3dm

Class Ellipse

Constructors

Constructors

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/EmbeddedFile.html b/docs/javascript/api/classes/EmbeddedFile.html index 43ebd92d6..7df75df23 100644 --- a/docs/javascript/api/classes/EmbeddedFile.html +++ b/docs/javascript/api/classes/EmbeddedFile.html @@ -1,13 +1,13 @@ -EmbeddedFile | rhino3dm

Class EmbeddedFile

Constructors

constructor +EmbeddedFile | rhino3dm

Class EmbeddedFile

Constructors

Properties

Methods

Constructors

Properties

fileName: string

Returns

the fully-qualified filename of the embedded file. This filename may or may not refer to a local file depending on the way the embedded file was loaded. For example, if it was loaded from an archive, the filename could be that of a file on a different computer.

-
length: number

Methods

  • Saves the contents of the embedded file to a local file.

    +
length: number

Methods

  • Saves the contents of the embedded file to a local file.

    Parameters

    • path: string

    Returns boolean

    Returns true if successful, else false.

    -

Generated using TypeDoc

\ No newline at end of file +

Returns EmbeddedFile

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Environment.html b/docs/javascript/api/classes/Environment.html index 8aba293dd..763baf7ef 100644 --- a/docs/javascript/api/classes/Environment.html +++ b/docs/javascript/api/classes/Environment.html @@ -1,10 +1,10 @@ -Environment | rhino3dm

Class Environment

Constructors

constructor +Environment | rhino3dm

Class Environment

Constructors

Properties

backgroundColor: object

The background color in js object format: {r:number, g:number, b:number)} where number is from 0 - 255

-
backgroundProjection: EnvironmentBackgroundProjections

The background projection.

-

Methods

Generated using TypeDoc

\ No newline at end of file +
backgroundProjection: EnvironmentBackgroundProjections

The background projection.

+

Methods

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Extrusion.html b/docs/javascript/api/classes/Extrusion.html index 342b59534..c20a337c0 100644 --- a/docs/javascript/api/classes/Extrusion.html +++ b/docs/javascript/api/classes/Extrusion.html @@ -1,4 +1,4 @@ -Extrusion | rhino3dm

Class Extrusion

Hierarchy (view full)

Constructors

constructor +Extrusion | rhino3dm

Class Extrusion

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

capCount: number

Gets the amount of capping surfaces.

-
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isCappedAtBottom: boolean

Gets a value indicating whether the surface that fills the bottom profile is existing.

-
isCappedAtTop: boolean

Gets a value indicating whether the surface that fills the top profile is existing.

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

+
isCappedAtBottom: boolean

Gets a value indicating whether the surface that fills the bottom profile is existing.

+
isCappedAtTop: boolean

Gets a value indicating whether the surface that fills the top profile is existing.

+
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isMiteredAtEnd: boolean

Gets a value indicating whether a miter plane at the end is defined.

-
isMiteredAtStart: boolean

Returns a value indicating whether a miter plane at start is defined.

-
isSolid: boolean

Gets a value indicating whether there is no gap among all surfaces constructing this object.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
miterPlaneNormalAtEnd: number[]

Gets or sets the normal of the miter plane at the end in profile coordinates. +

isMiteredAtEnd: boolean

Gets a value indicating whether a miter plane at the end is defined.

+
isMiteredAtStart: boolean

Returns a value indicating whether a miter plane at start is defined.

+
isSolid: boolean

Gets a value indicating whether there is no gap among all surfaces constructing this object.

+
isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
miterPlaneNormalAtEnd: number[]

Gets or sets the normal of the miter plane at the end in profile coordinates. In profile coordinates, 0,0,1 always maps to the extrusion axis

-
miterPlaneNormalAtStart: number[]

Gets or sets the normal of the miter plane at the start in profile coordinates. +

miterPlaneNormalAtStart: number[]

Gets or sets the normal of the miter plane at the start in profile coordinates. In profile coordinates, 0,0,1 always maps to the extrusion axis

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
pathEnd: number[]

Gets the end point of the path.

-
pathStart: number[]

Gets the start point of the path.

-
pathTangent: number[]

Gets the up vector of the path.

-
profileCount: number

Gets the amount of profile curves.

-
userStringCount: number

Gets the amount of user strings.

-

Methods

pathEnd: number[]

Gets the end point of the path.

+
pathStart: number[]

Gets the start point of the path.

+
pathTangent: number[]

Gets the up vector of the path.

+
profileCount: number

Gets the amount of profile curves.

+
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • innerProfile: Curve

      Closed curve in the XY plane or a 2d curve.

    Returns boolean

    true if the profile was set.

    Description

    Adds an inner profile.

    -
  • Parameters

    • direction: number

      0 gets first parameter's domain, 1 gets second parameter's domain.

      +
  • Parameters

    • direction: number

      0 gets first parameter's domain, 1 gets second parameter's domain.

    Returns number

    The maximum degree.

    Description

    Returns the maximum algebraic degree of any span (or a good estimate if curve spans are not algebraic).

    -
  • Parameters

  • Parameters

    • direction: number

      0 gets first parameter, 1 gets second parameter.

    Returns number[]

    An interval value.

    Description

    Gets the domain in a direction.

    -
  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
  • Parameters

    • u: number

      A first parameter.

    • v: number

      A second parameter.

    Returns object

    [boolean, Plane] (boolean) true if this operation succeeded; otherwise false. (Plane) A frame plane that will be computed during this call.

    Description

    Computes the orient plane on a surface given a U and V parameter. This is the simple evaluation call with no error handling.

    -
  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -122,76 +122,76 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

    Returns Mesh

    A mesh.

    Description

    Obtains a reference to a specified type of mesh for this extrusion.

    -
  • Parameters

    • surfaceS: number

      The parameter in the S, or sometimes U, direction, of this surface.

      +
  • Parameters

    • surfaceS: number

      The parameter in the S, or sometimes U, direction, of this surface.

    • surfaceT: number

      The parameter in the T, or sometimes V, direction of this surface.

    Returns object

    [boolean, number, number] (boolean) True if the operation succeeded; otherwise, false. (number) S on the NURBS form. (number) T on the NURBS form.

    Description

    Translates a parameter from the current surface to the parameter space of the surface returned by .

    -
  • Parameters

    • s: number

      0.0 = starting profile 1.0 = ending profile.

    Returns Plane

    A plane. The plane is Invalid on failure.

    Description

    Gets the 3D plane perpendicular to the path at a normalized path parameter.

    -
  • Parameters

    • s: number

      0.0 = starting profile 1.0 = ending profile.

    Returns Plane

    A plane. The plane is Invalid on failure.

    Description

    Gets the 3D plane containing the profile curve at a normalized path parameter.

    -
  • Parameters

    • s: number

      0.0 = starting profile 1.0 = ending profile.

    Returns Transform

    A Transformation. The transform is Invalid on failure.

    Description

    Gets the transformation that maps the XY profile curve to its 3d location.

    -
  • Parameters

    • direction: number

      0 gets first parameter's domain, 1 gets second parameter's domain.

      +
  • Parameters

    • direction: number

      0 gets first parameter's domain, 1 gets second parameter's domain.

    Returns number[]

    An array with span vectors; or null on error.

    Description

    Gets array of span "knots".

    -
  • Parameters

  • Parameters

    • nurbsS: number

      The parameter in the S, or sometimes U, direction of the NURBS form surface.

    • nurbsT: number

      The parameter in the T, or sometimes V, direction of the NURBS form surface.

    Returns object

    [boolean, number, number] (boolean) True if the operation succeeded; otherwise, false. (number) S on this surface. (number) T o n this surface.

    Description

    Translates a parameter from a value on the surface returned by to the current surface.

    -
  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns string[]

    Description

    Gets a copy of all (user key string, user value string) pairs attached to this geometry.

    -
  • Returns string[]

    Description

    Gets a copy of all (user key string, user value string) pairs attached to this geometry.

    +
  • Parameters

    • u: number

      Surface u parameter to test.

    • v: number

      Surface v parameter to test.

    Returns number

    0 if not a seam, 1 if u == Domain(0)[i] and srf(u, v) == srf(Domain(0)[1-i], v) 2 if v == Domain(1)[i] and srf(u, v) == srf(u, Domain(1)[1-i]) 3 if 1 and 2 are true.

    Description

    Tests if a surface parameter value is at a seam.

    -
  • Parameters

    • u: number

      Surface u parameter to test.

    • v: number

      Surface v parameter to test.

    • exact: boolean

      If true, test if (u,v) is exactly at a singularity. If false, test if close enough to cause numerical problems.

    Returns boolean

    true if surface is singular at (s,t)

    Description

    Tests if a surface parameter value is at a singularity.

    -
  • Parameters

    • direction: number

      0 = U, 1 = V.

    Returns boolean

    The indicating boolean value.

    Description

    Gets a value indicating if the surface is closed in a direction.

    -
  • Returns boolean

    true if the surface is a portion of a cone.

    +
  • Returns boolean

    true if the surface is a portion of a cone.

    Description

    Determines if the surface is a portion of a cone within RhinoMath.ZeroTolerance.

    -
  • Returns boolean

    true if the surface is a portion of a cylinder.

    +
  • Returns boolean

    true if the surface is a portion of a cylinder.

    Description

    Determines if the surface is a portion of a cylinder within RhinoMath.ZeroTolerance.

    -
  • Parameters

    • direction: number

      0 = U, 1 = V.

    Returns boolean

    The indicating boolean value.

    Description

    Gets a value indicating if the surface is periodic in a direction (default is false).

    -
  • Returns boolean

    true if the surface is planar (flat) to within RhinoMath.ZeroTolerance units (1e-12).

    +
  • Returns boolean

    true if the surface is planar (flat) to within RhinoMath.ZeroTolerance units (1e-12).

    Description

    Tests a surface to see if it is planar to zero tolerance.

    -
  • Parameters

    • side: number

      side of parameter space to test 0 = south, 1 = east, 2 = north, 3 = west.

    Returns boolean

    True if this specific side of the surface is singular; otherwise, false.

    Description

    true if surface side is collapsed to a point.

    -
  • Returns boolean

    true if the surface is a portion of a sphere.

    +
  • Returns boolean

    true if the surface is a portion of a sphere.

    Description

    Determines if the surface is a portion of a sphere within RhinoMath.ZeroTolerance.

    -
  • Returns boolean

    true if the surface is a portion of a torus.

    +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/File3dm.html b/docs/javascript/api/classes/File3dm.html index 03ce8f26d..bafa9fbca 100644 --- a/docs/javascript/api/classes/File3dm.html +++ b/docs/javascript/api/classes/File3dm.html @@ -1,4 +1,4 @@ -File3dm | rhino3dm

Class File3dm

Constructors

constructor +File3dm | rhino3dm

Class File3dm

Constructors

Properties

applicationDetails: string

Gets or sets details for the application that wrote this file.

-
applicationName: string

Gets or sets the name of the application that wrote this file.

-
applicationUrl: string

Gets or sets a URL for the application that wrote this file.

-
archiveVersion: number

Gets the 3dm file archive version.

-
created: Date

Get the DateTime that this file was originally created. If the +

applicationName: string

Gets or sets the name of the application that wrote this file.

+
applicationUrl: string

Gets or sets a URL for the application that wrote this file.

+
archiveVersion: number

Gets the 3dm file archive version.

+
created: Date

Get the DateTime that this file was originally created. If the value is not set in the 3dm file, then DateTime.MinValue is returned

-
createdBy: string

Gets a string that names the user who created the file.

-
lastEdited: Date

Get the DateTime that this file was last edited. If the +

createdBy: string

Gets a string that names the user who created the file.

+
lastEdited: Date

Get the DateTime that this file was last edited. If the value is not set in the 3dm file, then DateTime.MinValue is returned

-
lastEditedBy: string

Gets a string that names the user who last edited the file.

-
revision: number

Gets or sets the revision number.

-
startSectionComments: string

Gets or sets the start section comments, which are the comments with which the 3dm file begins.

-

Methods

  • ...

    -

    Parameters

    • path: string

    Returns void

  • ...

    -

    Parameters

    • path: string
    • string: boolean

    Returns void

  • Returns Uint8Array

    Description

    Write to an in-memory byte[]

    -
  • Parameters

    • length: number
    • buffer: Uint8Array

    Returns File3dm

    New File3dm on success, null on error.

    +
lastEditedBy: string

Gets a string that names the user who last edited the file.

+
revision: number

Gets or sets the revision number.

+
startSectionComments: string

Gets or sets the start section comments, which are the comments with which the 3dm file begins.

+

Methods

  • ...

    +

    Parameters

    • path: string

    Returns void

  • ...

    +

    Parameters

    • path: string
    • string: boolean

    Returns void

  • Returns Uint8Array

    Description

    Write to an in-memory byte[]

    +
  • Parameters

    • buffer: Uint8Array

    Returns File3dm

    New File3dm on success, null on error.

    Description

    Read a 3dm file from a byte array

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/File3dmBitmapTable.html b/docs/javascript/api/classes/File3dmBitmapTable.html index 3c5638e3a..bd83cca3c 100644 --- a/docs/javascript/api/classes/File3dmBitmapTable.html +++ b/docs/javascript/api/classes/File3dmBitmapTable.html @@ -1,11 +1,13 @@ -File3dmBitmapTable | rhino3dm

Class File3dmBitmapTable

Constructors

constructor +File3dmBitmapTable | rhino3dm

Class File3dmBitmapTable

Constructors

Properties

Methods

Constructors

Properties

count: number

Methods

Generated using TypeDoc

\ No newline at end of file +

Constructors

Properties

count: number

Methods

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/File3dmDecalTable.html b/docs/javascript/api/classes/File3dmDecalTable.html index f6eba956b..f0f4b50cf 100644 --- a/docs/javascript/api/classes/File3dmDecalTable.html +++ b/docs/javascript/api/classes/File3dmDecalTable.html @@ -1,7 +1,7 @@ -File3dmDecalTable | rhino3dm

Class File3dmDecalTable

Constructors

constructor +File3dmDecalTable | rhino3dm

Class File3dmDecalTable

Constructors

Properties

Methods

Constructors

Properties

count: number

Methods

Generated using TypeDoc

\ No newline at end of file +

Constructors

Properties

count: number

Methods

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/File3dmDimStyleTable.html b/docs/javascript/api/classes/File3dmDimStyleTable.html index 704fa53b2..df84be6e8 100644 --- a/docs/javascript/api/classes/File3dmDimStyleTable.html +++ b/docs/javascript/api/classes/File3dmDimStyleTable.html @@ -1,14 +1,16 @@ -File3dmDimStyleTable | rhino3dm

Class File3dmDimStyleTable

Constructors

constructor +File3dmDimStyleTable | rhino3dm

Class File3dmDimStyleTable

Constructors

Properties

Methods

Constructors

Properties

count: number

Methods

  • Parameters

    • index: number

      The index to search for.

      +

Constructors

Properties

count: number

Methods

  • Parameters

    • index: number

      The index to search for.

    Returns DimensionStyle

    A DimensionStyle object, or null if none was found.

    Description

    Retrieves a DimensionStyle object based on Index. This search type of search is discouraged. We are moving towards using only IDs for all tables.

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/File3dmEmbeddedFileTable.html b/docs/javascript/api/classes/File3dmEmbeddedFileTable.html index ee56329ff..aca504807 100644 --- a/docs/javascript/api/classes/File3dmEmbeddedFileTable.html +++ b/docs/javascript/api/classes/File3dmEmbeddedFileTable.html @@ -1,9 +1,9 @@ -File3dmEmbeddedFileTable | rhino3dm

Class File3dmEmbeddedFileTable

Constructors

constructor +File3dmEmbeddedFileTable | rhino3dm

Class File3dmEmbeddedFileTable

Constructors

Properties

Methods

Constructors

Properties

count: number

Methods

Generated using TypeDoc

\ No newline at end of file +

Constructors

Properties

count: number

Methods

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/File3dmGroupTable.html b/docs/javascript/api/classes/File3dmGroupTable.html index f662d28f0..6930a062d 100644 --- a/docs/javascript/api/classes/File3dmGroupTable.html +++ b/docs/javascript/api/classes/File3dmGroupTable.html @@ -1,4 +1,4 @@ -File3dmGroupTable | rhino3dm

Class File3dmGroupTable

Constructors

constructor +File3dmGroupTable | rhino3dm

Class File3dmGroupTable

Constructors

Properties

Methods

add delete @@ -7,16 +7,16 @@ findIndex findName get -

Constructors

Properties

count: number

Methods

  • ...

    -

    Parameters

    • Group: any

    Returns boolean

  • ...

    -

    Parameters

    • id: string

    Returns boolean

  • ...

    -

    Parameters

    • index: number

    Returns boolean

  • Parameters

    • groupIndex: number

      The index to search for.

      +

Constructors

Properties

count: number

Methods

  • ...

    +

    Parameters

    • id: string

    Returns boolean

  • ...

    +

    Parameters

    • index: number

    Returns boolean

  • Parameters

    • groupIndex: number

      The index to search for.

    Returns Group

    A Group object, or null if none was found.

    Description

    Retrieves a Group object based on an index. This search type of search is discouraged. We are moving towards using only IDs for all tables.

    -
  • Parameters

    • name: string

      The name of the Group to be searched.

    Returns Group

    A Group, or null on error.

    Description

    Finds a Group given its name.

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/File3dmInstanceDefinitionTable.html b/docs/javascript/api/classes/File3dmInstanceDefinitionTable.html index db4f8dff5..f8ceb416c 100644 --- a/docs/javascript/api/classes/File3dmInstanceDefinitionTable.html +++ b/docs/javascript/api/classes/File3dmInstanceDefinitionTable.html @@ -1,11 +1,11 @@ -File3dmInstanceDefinitionTable | rhino3dm

Class File3dmInstanceDefinitionTable

Constructors

constructor +File3dmInstanceDefinitionTable | rhino3dm

Class File3dmInstanceDefinitionTable

Constructors

Properties

count: number

Methods

  • Parameters

    • name: string

      The definition name.

      +

Constructors

Properties

count: number

Methods

  • Parameters

    • name: string

      The definition name.

    • description: string

      The definition description.

    • url: string

      A URL or hyperlink.

    • urlTag: string

      A description of the URL or hyperlink.

      @@ -16,8 +16,8 @@

      =0 index of instance definition in the instance definition table. -1 on failure.

      Description

      Adds an instance definition to the instance definition table.

      -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/File3dmLayerTable.html b/docs/javascript/api/classes/File3dmLayerTable.html index 37118afa8..30043dda3 100644 --- a/docs/javascript/api/classes/File3dmLayerTable.html +++ b/docs/javascript/api/classes/File3dmLayerTable.html @@ -1,24 +1,26 @@ -File3dmLayerTable | rhino3dm

Class File3dmLayerTable

Constructors

constructor +File3dmLayerTable | rhino3dm

Class File3dmLayerTable

Constructors

Properties

Methods

Constructors

Properties

count: number

Methods

  • Parameters

    • name: string

      new layer name

      +

Constructors

Properties

count: number

Methods

  • Parameters

    • name: string

      new layer name

    • color: object

      new layer color in js object format: {r:number, g:number, b:number)} where number is from 0 - 255

    Returns number

    If layer_name is valid, the layer's index (>=0) is returned. Otherwise, RhinoMath.UnsetIntIndex is returned.

    Description

    Easy way to add a new layer to the model

    -
  • Parameters

    • index: number

      The index to search for.

    Returns Layer

    A Layer object, or null if none was found.

    Description

    Retrieves a Layer object based on Index. This search type of search is discouraged. We are moving towards using only IDs for all tables.

    -
  • Parameters

  • Parameters

    • name: string

      The name of the Layer to be searched.

    • parentId: string

      The id of the parent Layer to be searched.

    Returns Layer

    A Layer, or null on error.

    Description

    Finds a Layer given its name.

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/File3dmLinetypeTable.html b/docs/javascript/api/classes/File3dmLinetypeTable.html index e79ca6dc0..bcbd27982 100644 --- a/docs/javascript/api/classes/File3dmLinetypeTable.html +++ b/docs/javascript/api/classes/File3dmLinetypeTable.html @@ -1,4 +1,4 @@ -File3dmLinetypeTable | rhino3dm

Class File3dmLinetypeTable

Constructors

constructor +File3dmLinetypeTable | rhino3dm

Class File3dmLinetypeTable

Constructors

Properties

Methods

Constructors

Properties

count: number

Methods

  • Parameters

    • index: number

      The index to search for.

      +

Constructors

Properties

count: number

Methods

  • Parameters

    • index: number

      The index to search for.

    Returns Linetype

    A Linetype, or null if none was found.

    Description

    Retrieves a Linetype object based on Index. This search type of search is discouraged. We are moving towards using only IDs for all tables.

    -
  • Parameters

    • name: string

      The name of the Linetype to be searched.

    Returns Linetype

    A Linetype, or null on error.

    Description

    Finds a Linetype given its name.

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/File3dmMaterialTable.html b/docs/javascript/api/classes/File3dmMaterialTable.html index 12ddf6356..1d91bd431 100644 --- a/docs/javascript/api/classes/File3dmMaterialTable.html +++ b/docs/javascript/api/classes/File3dmMaterialTable.html @@ -1,16 +1,18 @@ -File3dmMaterialTable | rhino3dm

Class File3dmMaterialTable

Constructors

constructor +File3dmMaterialTable | rhino3dm

Class File3dmMaterialTable

Constructors

Properties

count: number

Methods

  • Parameters

    • index: number

      The index to search for.

      +

Constructors

Properties

count: number

Methods

  • Parameters

    • index: number

      The index to search for.

    Returns Material

    A material, or null if none was found.

    Description

    Retrieves a material based on Index. This search type of search is discouraged. We are moving towards using only IDs for all tables.

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/File3dmMeshModifiers.html b/docs/javascript/api/classes/File3dmMeshModifiers.html index 72967e414..fa00e0f56 100644 --- a/docs/javascript/api/classes/File3dmMeshModifiers.html +++ b/docs/javascript/api/classes/File3dmMeshModifiers.html @@ -1,4 +1,4 @@ -File3dmMeshModifiers | rhino3dm

Class File3dmMeshModifiers

Constructors

constructor +File3dmMeshModifiers | rhino3dm

Class File3dmMeshModifiers

Constructors

Methods

Generated using TypeDoc

\ No newline at end of file +

Returns CurvePiping

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/File3dmObject.html b/docs/javascript/api/classes/File3dmObject.html index 740f940fb..3d8a1e738 100644 --- a/docs/javascript/api/classes/File3dmObject.html +++ b/docs/javascript/api/classes/File3dmObject.html @@ -1,6 +1,6 @@ -File3dmObject | rhino3dm

Class File3dmObject

Constructors

constructor +File3dmObject | rhino3dm

Class File3dmObject

Constructors

Methods

Constructors

Methods

Generated using TypeDoc

\ No newline at end of file +

Returns ObjectAttributes

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/File3dmObjectTable.html b/docs/javascript/api/classes/File3dmObjectTable.html index 7dd0184a4..883bb29ac 100644 --- a/docs/javascript/api/classes/File3dmObjectTable.html +++ b/docs/javascript/api/classes/File3dmObjectTable.html @@ -1,4 +1,4 @@ -File3dmObjectTable | rhino3dm

Class File3dmObjectTable

Constructors

constructor +File3dmObjectTable | rhino3dm

Class File3dmObjectTable

Constructors

Properties

Methods

Constructors

Properties

count: number

Returns the total amount of items in the object table, including lights.

-

Methods

  • Parameters

    Returns string

    A unique identifier for the object.

    +

Methods

  • Parameters

    Returns string

    A unique identifier for the object.

    Description

    Duplicates the object, then adds a copy of the object to the document.

    -
  • Parameters

    • arc: Arc

      An arc.

    Returns string

    A unique identifier for the object.

    Description

    Adds a curve object to the document representing an arc.

    -
  • Parameters

  • Parameters

    • brep: Brep

      A duplicate of this brep is added to Rhino.

    Returns string

    A unique identifier for the object.

    Description

    Adds a brep object to Rhino.

    -
  • Parameters

    • circle: Circle

      A circle to add.

    Returns string

    A unique identifier for the object.

    Description

    Adds a curve object to the document representing a circle.

    -
  • Parameters

    • curve: Curve

      A curve to add.

    Returns string

    A unique identifier for the object.

    Description

    Adds a curve object to the table.

    -
  • Parameters

    • ellipse: Ellipse

      An ellipse to add.

    Returns string

    A unique identifier for the object.

    Description

    Adds a curve object to the document representing an ellipse.

    -
  • Parameters

  • Parameters

    • extrusion: Extrusion

      A duplicate of this extrusion is added to Rhino.

    Returns string

    A unique identifier for the object.

    Description

    Adds an extrusion object to Rhino.

    -
  • Parameters

    Returns string

    A unique identifier for the object.

    Description

    Adds an instance reference geometry object to the table.

    -
  • Parameters

  • Parameters

    • from: number[]

      A line start point.

    • to: number[]

      A line end point.

    Returns string

    A unique identifier of new rhino object.

    Description

    Adds a line object to Rhino.

    -
  • Parameters

  • Parameters

    • mesh: Mesh

      A duplicate of this mesh is added to Rhino.

    Returns string

    A unique identifier for the object.

    Description

    Adds a mesh object to Rhino.

    -
  • Parameters

    • point: number[]

    Returns string

  • Parameters

    • point: number[]

    Returns string

  • Parameters

    Returns string

    A unique identifier for the object.

    Description

    Adds a point cloud object to the document.

    -
  • Parameters

  • Parameters

    • x: number

      X component of point coordinate.

    • y: number

      Y component of point coordinate.

    • z: number

      Z component of point coordinate.

    Returns string

    id of new object.

    Description

    Adds a point object to the table.

    -
  • Parameters

  • Parameters

    • points: Point3dList | number[][]

      An array of points in [x, y, z] format or Point3dList.

    Returns string

    A unique identifier for the object.

    Description

    Adds a polyline object to Rhino.

    -
  • Parameters

    • sphere: Sphere

      A sphere to add.

    Returns string

    A unique identifier for the object.

    Description

    Adds a surface object to the document representing a sphere.

    -
  • Parameters

  • Parameters

    • surface: Surface

      A duplicate of this surface is added to Rhino.

    Returns string

    A unique identifier for the object.

    Description

    Adds a surface object to Rhino.

    -
  • Parameters

  • Parameters

    • text: string

      The text.

    • location: number[]

      The location.

    Returns string

    A unique identifier for the object.

    Description

    Adds a text dot object to the table.

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/File3dmPlugInData.html b/docs/javascript/api/classes/File3dmPlugInData.html index 8ac8445ef..915cb6a8d 100644 --- a/docs/javascript/api/classes/File3dmPlugInData.html +++ b/docs/javascript/api/classes/File3dmPlugInData.html @@ -1,2 +1,2 @@ -File3dmPlugInData | rhino3dm

Class File3dmPlugInData

Hierarchy (view full)

Constructors

constructor +File3dmPlugInData | rhino3dm

Class File3dmPlugInData

Hierarchy (view full)

Constructors

Constructors

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/File3dmPlugInDataTable.html b/docs/javascript/api/classes/File3dmPlugInDataTable.html index c643e5189..901ed5c8b 100644 --- a/docs/javascript/api/classes/File3dmPlugInDataTable.html +++ b/docs/javascript/api/classes/File3dmPlugInDataTable.html @@ -1,6 +1,6 @@ -File3dmPlugInDataTable | rhino3dm

Class File3dmPlugInDataTable

Constructors

constructor +File3dmPlugInDataTable | rhino3dm

Class File3dmPlugInDataTable

Constructors

Properties

Methods

Constructors

Properties

count: number

Gets the number of objects in this table.

-

Methods

Generated using TypeDoc

\ No newline at end of file +

Methods

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/File3dmPostEffectTable.html b/docs/javascript/api/classes/File3dmPostEffectTable.html index ca234a465..49aca173a 100644 --- a/docs/javascript/api/classes/File3dmPostEffectTable.html +++ b/docs/javascript/api/classes/File3dmPostEffectTable.html @@ -1,9 +1,9 @@ -File3dmPostEffectTable | rhino3dm

Class File3dmPostEffectTable

Constructors

constructor +File3dmPostEffectTable | rhino3dm

Class File3dmPostEffectTable

Constructors

Properties

Methods

Constructors

Properties

count: number

Methods

Generated using TypeDoc

\ No newline at end of file +

Constructors

Properties

count: number

Methods

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/File3dmRdkDocumentData.html b/docs/javascript/api/classes/File3dmRdkDocumentData.html index a144cd92e..2454e4437 100644 --- a/docs/javascript/api/classes/File3dmRdkDocumentData.html +++ b/docs/javascript/api/classes/File3dmRdkDocumentData.html @@ -1,4 +1,4 @@ -File3dmRdkDocumentData | rhino3dm

Class File3dmRdkDocumentData

Hierarchy (view full)

Constructors

constructor +File3dmRdkDocumentData | rhino3dm

Class File3dmRdkDocumentData

Hierarchy (view full)

Constructors

Methods

Constructors

Methods

Generated using TypeDoc

\ No newline at end of file +

Returns string

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/File3dmRenderContentTable.html b/docs/javascript/api/classes/File3dmRenderContentTable.html index 1acd85e24..ed98c581c 100644 --- a/docs/javascript/api/classes/File3dmRenderContentTable.html +++ b/docs/javascript/api/classes/File3dmRenderContentTable.html @@ -1,9 +1,9 @@ -File3dmRenderContentTable | rhino3dm

Class File3dmRenderContentTable

Constructors

constructor +File3dmRenderContentTable | rhino3dm

Class File3dmRenderContentTable

Constructors

Properties

Methods

Constructors

Properties

count: number

Methods

Generated using TypeDoc

\ No newline at end of file +

Constructors

Properties

count: number

Methods

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/File3dmSettings.html b/docs/javascript/api/classes/File3dmSettings.html index 7ca49de70..ab3300a9e 100644 --- a/docs/javascript/api/classes/File3dmSettings.html +++ b/docs/javascript/api/classes/File3dmSettings.html @@ -1,4 +1,4 @@ -File3dmSettings | rhino3dm

Class File3dmSettings

Constructors

constructor +File3dmSettings | rhino3dm

Class File3dmSettings

Constructors

Properties

earthAnchorPoint: EarthAnchorPoint
modelAbsoluteTolerance: number

Gets or sets the model space absolute tolerance.

-
modelAngleToleranceDegrees: number

Gets or sets the model space angle tolerance.

-
modelAngleToleranceRadians: number

Gets or sets the model space angle tolerance.

-
modelBasePoint: number[]

Gets or sets the model base point that is used when the file is read as an instance definition. +

Constructors

Properties

earthAnchorPoint: EarthAnchorPoint
modelAbsoluteTolerance: number

Gets or sets the model space absolute tolerance.

+
modelAngleToleranceDegrees: number

Gets or sets the model space angle tolerance.

+
modelAngleToleranceRadians: number

Gets or sets the model space angle tolerance.

+
modelBasePoint: number[]

Gets or sets the model base point that is used when the file is read as an instance definition. This point is mapped to the origin in the instance definition.

-
modelRelativeTolerance: number

Gets or sets the model space relative tolerance.

-
modelUnitSystem: UnitSystem

Gets or sets the model unit system, using enumeration.

-
modelUrl: string

Gets or sets a Uniform Resource Locator (URL) direction for the model.

-
pageAbsoluteTolerance: number

Gets or sets the page space absolute tolerance.

-
pageAngleToleranceDegrees: number

Gets or sets the page space angle tolerance.

-
pageAngleToleranceRadians: number

Gets or sets the page space angle tolerance.

-
pageRelativeTolerance: number

Gets or sets the page space relative tolerance.

-
pageUnitSystem: UnitSystem

Gets or sets the page unit system, using enumeration.

-

Methods

Generated using TypeDoc

\ No newline at end of file +
modelRelativeTolerance: number

Gets or sets the model space relative tolerance.

+
modelUnitSystem: UnitSystem

Gets or sets the model unit system, using enumeration.

+
modelUrl: string

Gets or sets a Uniform Resource Locator (URL) direction for the model.

+
pageAbsoluteTolerance: number

Gets or sets the page space absolute tolerance.

+
pageAngleToleranceDegrees: number

Gets or sets the page space angle tolerance.

+
pageAngleToleranceRadians: number

Gets or sets the page space angle tolerance.

+
pageRelativeTolerance: number

Gets or sets the page space relative tolerance.

+
pageUnitSystem: UnitSystem

Gets or sets the page unit system, using enumeration.

+

Methods

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/File3dmShutLiningCurveTable.html b/docs/javascript/api/classes/File3dmShutLiningCurveTable.html index 5855fe460..86d58d44e 100644 --- a/docs/javascript/api/classes/File3dmShutLiningCurveTable.html +++ b/docs/javascript/api/classes/File3dmShutLiningCurveTable.html @@ -1,11 +1,11 @@ -File3dmShutLiningCurveTable | rhino3dm

Class File3dmShutLiningCurveTable

Constructors

constructor +File3dmShutLiningCurveTable | rhino3dm

Class File3dmShutLiningCurveTable

Constructors

Properties

Methods

Constructors

Properties

count: number

Methods

Generated using TypeDoc

\ No newline at end of file +

Constructors

Properties

count: number

Methods

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/File3dmStringTable.html b/docs/javascript/api/classes/File3dmStringTable.html index daec40862..180208d5e 100644 --- a/docs/javascript/api/classes/File3dmStringTable.html +++ b/docs/javascript/api/classes/File3dmStringTable.html @@ -1,4 +1,4 @@ -File3dmStringTable | rhino3dm

Class File3dmStringTable

Constructors

constructor +File3dmStringTable | rhino3dm

Class File3dmStringTable

Constructors

Properties

Methods

Constructors

Properties

count: number

Returns the number of document strings in the 3dm file.

-

Methods

  • Parameters

    • section: string

      name of section to delete. If null, all sections will be deleted.

      +

Methods

  • Parameters

    • section: string

      name of section to delete. If null, all sections will be deleted.

    • entry: string

      name of entry to delete. If null, all entries will be deleted for a given section.

    Returns void

    Description

    Removes document strings from the 3dm file.

    -
  • Parameters

  • Parameters

    • i: number

      The index at which to get the value.

    Returns string

    The string value if successful.

    Description

    Returns a string value at a given index.

    -
  • ...

    -

    Parameters

    • key: string
    • value: string

    Returns void

Generated using TypeDoc

\ No newline at end of file +
  • ...

    +

    Parameters

    • key: string
    • value: string

    Returns void

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/File3dmViewTable.html b/docs/javascript/api/classes/File3dmViewTable.html index 0ac0f12d2..69d0b2b75 100644 --- a/docs/javascript/api/classes/File3dmViewTable.html +++ b/docs/javascript/api/classes/File3dmViewTable.html @@ -1,10 +1,10 @@ -File3dmViewTable | rhino3dm

Class File3dmViewTable

Constructors

constructor +File3dmViewTable | rhino3dm

Class File3dmViewTable

Constructors

Properties

Methods

Constructors

Properties

count: number

Gets the amount of items in the table.

-

Methods

Generated using TypeDoc

\ No newline at end of file +

Methods

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/File3dmWriteOptions.html b/docs/javascript/api/classes/File3dmWriteOptions.html index 8ca837eb3..d5342c14c 100644 --- a/docs/javascript/api/classes/File3dmWriteOptions.html +++ b/docs/javascript/api/classes/File3dmWriteOptions.html @@ -1,6 +1,6 @@ -File3dmWriteOptions | rhino3dm

Class File3dmWriteOptions

Constructors

constructor +File3dmWriteOptions | rhino3dm

Class File3dmWriteOptions

Constructors

Properties

Constructors

Properties

saveUserData: boolean

Include custom user data in the file. Default is true

-
version: number

File version. Default is major version number of this assembly version.Must be in range [2; current version].Alternatively, 0 is a placeholder for the last valid version.Rhino can read its current version, plus earlier file versions except 1.Use latest version when possible.

-

Generated using TypeDoc

\ No newline at end of file +
version: number

File version. Default is major version number of this assembly version.Must be in range [2; current version].Alternatively, 0 is a placeholder for the last valid version.Rhino can read its current version, plus earlier file versions except 1.Use latest version when possible.

+

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/FileReference.html b/docs/javascript/api/classes/FileReference.html index 582c54e04..e49bc5fe9 100644 --- a/docs/javascript/api/classes/FileReference.html +++ b/docs/javascript/api/classes/FileReference.html @@ -1,15 +1,15 @@ -FileReference | rhino3dm

Class FileReference

Constructors

constructor +FileReference | rhino3dm

Class FileReference

Constructors

Properties

fullPath: string

Gets the absolute path of this file reference.

-
relativePath: string

Gets the relative path of this file reference.

-

Methods

  • Parameters

    • fullPath: string

      A full path. This parameter cannot be null.

      +
relativePath: string

Gets the relative path of this file reference.

+

Methods

  • Parameters

    • fullPath: string

      A full path. This parameter cannot be null.

    • relativePath: string

      A relative path. This parameter can be null.

    Returns FileReference

    A file reference to the specified paths.

    Description

    Returns a new file reference. This returns a new instance even if the path does not exist.

    -
  • Parameters

    • fullPath: string

      A full path.

    Returns FileReference

    A file reference to the specified path.

    Description

    Returns a new file reference. This returns a new instance even if the path does not exist.

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Font.html b/docs/javascript/api/classes/Font.html index 96926d8fa..40e236011 100644 --- a/docs/javascript/api/classes/Font.html +++ b/docs/javascript/api/classes/Font.html @@ -1,4 +1,4 @@ -Font | rhino3dm

Class Font

Constructors

constructor +Font | rhino3dm

Class Font

Constructors

Properties

Constructors

Properties

bold: boolean
faceName: string

Returns Face name

-
familyName: string
isEngravingFont: boolean
isSimulated: boolean
isSingleStrokeFont: boolean
isSymbolFont: boolean
italic: boolean
pointSize: number
postScriptName: string

Returns the Font PostScriptName - "Apple font name"

-
quartetName: string
richTextFontName: string

Returns the Font RichTextFontName used in RTF strings: +

Constructors

Properties

bold: boolean
faceName: string

Returns Face name

+
familyName: string
isEngravingFont: boolean
isSimulated: boolean
isSingleStrokeFont: boolean
isSymbolFont: boolean
italic: boolean
pointSize: number
postScriptName: string

Returns the Font PostScriptName - "Apple font name"

+
quartetName: string
richTextFontName: string

Returns the Font RichTextFontName used in RTF strings: {\fonttbl...{\fN RichTextFontName;}...}

-
strikeOut: boolean
underlined: boolean

Generated using TypeDoc

\ No newline at end of file +
strikeOut: boolean
underlined: boolean

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/GeometryBase.html b/docs/javascript/api/classes/GeometryBase.html index 40cf2506c..54f85d8ca 100644 --- a/docs/javascript/api/classes/GeometryBase.html +++ b/docs/javascript/api/classes/GeometryBase.html @@ -1,4 +1,4 @@ -GeometryBase | rhino3dm

Class GeometryBase

Hierarchy (view full)

Constructors

constructor +GeometryBase | rhino3dm

Class GeometryBase

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. +

  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -38,40 +38,40 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns boolean

    false if object cannot be converted to a deformable object. true if object was +

  • Returns boolean

    false if object cannot be converted to a deformable object. true if object was already deformable or was converted into a deformable object.

    Description

    If possible, converts the object into a form that can be accurately modified with "squishy" transformations like projections, shears, an non-uniform scaling.

    -
  • Parameters

  • Parameters

    • angleRadians: number

      Angle of rotation in radians.

    • rotationAxis: number[]

      Direction of the axis of rotation.

    • rotationCenter: number[]

      Point on the axis of rotation.

    Returns boolean

    true if geometry successfully rotated.

    Description

    Rotates the object about the specified axis. A positive rotation angle results in a counter-clockwise rotation about the axis (right hand rule).

    -
  • Parameters

  • Parameters

    • scaleFactor: number

      The uniform scaling factor.

    Returns boolean

    true if geometry successfully scaled.

    Description

    Scales the object by the specified factor. The scale is centered at the origin.

    -
  • Parameters

  • Parameters

    • key: string

      id used to retrieve this string.

    • value: string

      string associated with key.

    Returns boolean

    true if successful, false if not.

    Description

    Attach a user string (key,value combination) to this geometry.

    -
  • Parameters

    • xform: Transform

      Transformation to apply to geometry.

    Returns boolean

    true if geometry successfully transformed.

    Description

    Transforms the geometry. If the input Transform has a SimilarityType of OrientationReversing, you may want to consider flipping the transformed geometry after calling this function when it makes sense. For example, you may want to call Flip() on a Brep after transforming it.

    -
  • Parameters

  • Parameters

    • translationVector: number[]

      A moving vector.

    Returns boolean

    true if geometry successfully translated.

    Description

    Translates the object along the specified vector.

    -
  • Parameters

    • json: object

      A json formatted object in the following format (values are orientative):

      +
  • Parameters

    • json: object

      A json formatted object in the following format (values are orientative):

      {
      version: 10000,
      archive3dm: 60,
      opennurbs: -1877964208,
      data: 'encoded 3dm object data'
      }

    Returns CommonObject

    Description

    Decodes a Rhino Object

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/GroundPlane.html b/docs/javascript/api/classes/GroundPlane.html index a53f278b7..81df146a2 100644 --- a/docs/javascript/api/classes/GroundPlane.html +++ b/docs/javascript/api/classes/GroundPlane.html @@ -1,4 +1,4 @@ -GroundPlane | rhino3dm

Class GroundPlane

Constructors

constructor +GroundPlane | rhino3dm

Class GroundPlane

Constructors

Properties

Constructors

Properties

altitude: number

Height above world XY plane in model units. Auto-altitude is computed if enabled.

-
autoAltitude: boolean

Determines whether the ground plane is fixed by the Altitude property, or whether it is automatically placed at the lowest point in the model.

-
enabled: boolean

Determines whether the document ground plane is enabled.

-
materialInstanceId: string

Id of material in material table for this ground plane.

-
shadowOnly: boolean

Determines whether the ground plane shows the material assigned, or whether it is transparent, but captures shadows.

-
showUnderside: boolean

If this is off, the ground plane will not be visible when seen from below.

-
textureOffset: number[]

Texture mapping offset in world units.

-
textureOffsetLocked: boolean

Texture offset locked.

-
textureRotation: number

Texture mapping rotation around world origin + offset in degrees.

-
textureSize: number[]

Texture mapping single UV span size in world units.

-
textureSizeLocked: boolean

Texture size locked.

-

Generated using TypeDoc

\ No newline at end of file +
autoAltitude: boolean

Determines whether the ground plane is fixed by the Altitude property, or whether it is automatically placed at the lowest point in the model.

+
enabled: boolean

Determines whether the document ground plane is enabled.

+
materialInstanceId: string

Id of material in material table for this ground plane.

+
shadowOnly: boolean

Determines whether the ground plane shows the material assigned, or whether it is transparent, but captures shadows.

+
showUnderside: boolean

If this is off, the ground plane will not be visible when seen from below.

+
textureOffset: number[]

Texture mapping offset in world units.

+
textureOffsetLocked: boolean

Texture offset locked.

+
textureRotation: number

Texture mapping rotation around world origin + offset in degrees.

+
textureSize: number[]

Texture mapping single UV span size in world units.

+
textureSizeLocked: boolean

Texture size locked.

+

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Group.html b/docs/javascript/api/classes/Group.html index cab1509f2..0354cb519 100644 --- a/docs/javascript/api/classes/Group.html +++ b/docs/javascript/api/classes/Group.html @@ -1,4 +1,4 @@ -Group | rhino3dm

Class Group

Hierarchy (view full)

Constructors

constructor +Group | rhino3dm

Class Group

Hierarchy (view full)

Constructors

Properties

id index isValid @@ -12,22 +12,22 @@ setUserString toJSON decode -

Constructors

Properties

id: string
index: number
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
name: string
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Parameters

    • key: string

      id used to retrieve the string.

      +

Constructors

Properties

id: string
index: number
isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
name: string
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Parameters

    • key: string

      id used to retrieve this string.

    • value: string

      string associated with key.

    Returns boolean

    true if successful, false if not.

    Description

    Attach a user string (key,value combination) to this geometry.

    -
  • Parameters

    • json: object

      A json formatted object in the following format (values are orientative):

      {
      version: 10000,
      archive3dm: 60,
      opennurbs: -1877964208,
      data: 'encoded 3dm object data'
      }

    Returns CommonObject

    Description

    Decodes a Rhino Object

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Hatch.html b/docs/javascript/api/classes/Hatch.html index fa40f7faa..72db6f7e5 100644 --- a/docs/javascript/api/classes/Hatch.html +++ b/docs/javascript/api/classes/Hatch.html @@ -1,4 +1,4 @@ -Hatch | rhino3dm

Class Hatch

Hierarchy (view full)

Constructors

constructor +Hatch | rhino3dm

Class Hatch

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

basePoint: number[]

Gets or sets the hatch pattern base point

-
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

+
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
patternIndex: number

Gets or sets the index of the pattern in the document hatch pattern table.

-
patternRotation: number

Gets or sets the relative rotation of the pattern.

-
patternScale: number

Gets or sets the scaling factor of the pattern.

-
plane: Plane

Gets or sets the hatch plane

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
patternIndex: number

Gets or sets the index of the pattern in the document hatch pattern table.

+
patternRotation: number

Gets or sets the relative rotation of the pattern.

+
patternScale: number

Gets or sets the scaling factor of the pattern.

+
plane: Plane

Gets or sets the hatch plane

+
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -49,41 +49,41 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns boolean

    false if object cannot be converted to a deformable object. true if object was +

  • Returns boolean

    false if object cannot be converted to a deformable object. true if object was already deformable or was converted into a deformable object.

    Description

    If possible, converts the object into a form that can be accurately modified with "squishy" transformations like projections, shears, an non-uniform scaling.

    -
  • Parameters

    • angleRadians: number

      Angle of rotation in radians.

    • rotationAxis: number[]

      Direction of the axis of rotation.

    • rotationCenter: number[]

      Point on the axis of rotation.

    Returns boolean

    true if geometry successfully rotated.

    Description

    Rotates the object about the specified axis. A positive rotation angle results in a counter-clockwise rotation about the axis (right hand rule).

    -
  • Parameters

    • scaleFactor: number

      The uniform scaling factor.

    Returns boolean

    true if geometry successfully scaled.

    Description

    Scales the object by the specified factor. The scale is centered at the origin.

    -
  • Returns void

    Description

    Scale the hatch's pattern

    -
  • Returns void

    Description

    Scale the hatch's pattern

    +
  • Parameters

    • key: string

      id used to retrieve this string.

    • value: string

      string associated with key.

    Returns boolean

    true if successful, false if not.

    Description

    Attach a user string (key,value combination) to this geometry.

    -
  • Parameters

    • xform: Transform

      Transformation to apply to geometry.

    Returns boolean

    true if geometry successfully transformed.

    Description

    Transforms the geometry. If the input Transform has a SimilarityType of OrientationReversing, you may want to consider flipping the transformed geometry after calling this function when it makes sense. For example, you may want to call Flip() on a Brep after transforming it.

    -
  • Parameters

    • translationVector: number[]

      A moving vector.

    Returns boolean

    true if geometry successfully translated.

    Description

    Translates the object along the specified vector.

    -
  • Parameters

    • json: object

      A json formatted object in the following format (values are orientative):

      {
      version: 10000,
      archive3dm: 60,
      opennurbs: -1877964208,
      data: 'encoded 3dm object data'
      }

    Returns CommonObject

    Description

    Decodes a Rhino Object

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/InstanceDefinition.html b/docs/javascript/api/classes/InstanceDefinition.html index cc8a45e45..e1e29f0d1 100644 --- a/docs/javascript/api/classes/InstanceDefinition.html +++ b/docs/javascript/api/classes/InstanceDefinition.html @@ -1,4 +1,4 @@ -InstanceDefinition | rhino3dm

Class InstanceDefinition

Hierarchy (view full)

Constructors

constructor +InstanceDefinition | rhino3dm

Class InstanceDefinition

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

description: string
id: string
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
name: string
sourceArchive: string
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Parameters

    • key: string

      id used to retrieve the string.

      +

Constructors

Properties

description: string
id: string
isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
name: string
sourceArchive: string
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • ...

    -

    Parameters

    • id: string

    Returns boolean

  • ...

    +

    Parameters

    • id: string

    Returns boolean

  • Parameters

    • key: string

      id used to retrieve this string.

    • value: string

      string associated with key.

    Returns boolean

    true if successful, false if not.

    Description

    Attach a user string (key,value combination) to this geometry.

    -
  • Parameters

    • json: object

      A json formatted object in the following format (values are orientative):

      {
      version: 10000,
      archive3dm: 60,
      opennurbs: -1877964208,
      data: 'encoded 3dm object data'
      }

    Returns CommonObject

    Description

    Decodes a Rhino Object

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/InstanceReference.html b/docs/javascript/api/classes/InstanceReference.html index a567168a3..365e0d26b 100644 --- a/docs/javascript/api/classes/InstanceReference.html +++ b/docs/javascript/api/classes/InstanceReference.html @@ -1,4 +1,4 @@ -InstanceReference | rhino3dm

Class InstanceReference

Hierarchy (view full)

Constructors

constructor +InstanceReference | rhino3dm

Class InstanceReference

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
parentIdefId: string
userStringCount: number

Gets the amount of user strings.

-
xform: Transform

Methods

  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
parentIdefId: string
userStringCount: number

Gets the amount of user strings.

+
xform: Transform

Methods

  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -40,40 +40,40 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns boolean

    false if object cannot be converted to a deformable object. true if object was +

  • Returns boolean

    false if object cannot be converted to a deformable object. true if object was already deformable or was converted into a deformable object.

    Description

    If possible, converts the object into a form that can be accurately modified with "squishy" transformations like projections, shears, an non-uniform scaling.

    -
  • Parameters

    • angleRadians: number

      Angle of rotation in radians.

    • rotationAxis: number[]

      Direction of the axis of rotation.

    • rotationCenter: number[]

      Point on the axis of rotation.

    Returns boolean

    true if geometry successfully rotated.

    Description

    Rotates the object about the specified axis. A positive rotation angle results in a counter-clockwise rotation about the axis (right hand rule).

    -
  • Parameters

    • scaleFactor: number

      The uniform scaling factor.

    Returns boolean

    true if geometry successfully scaled.

    Description

    Scales the object by the specified factor. The scale is centered at the origin.

    -
  • Parameters

    • key: string

      id used to retrieve this string.

    • value: string

      string associated with key.

    Returns boolean

    true if successful, false if not.

    Description

    Attach a user string (key,value combination) to this geometry.

    -
  • Parameters

    • xform: Transform

      Transformation to apply to geometry.

    Returns boolean

    true if geometry successfully transformed.

    Description

    Transforms the geometry. If the input Transform has a SimilarityType of OrientationReversing, you may want to consider flipping the transformed geometry after calling this function when it makes sense. For example, you may want to call Flip() on a Brep after transforming it.

    -
  • Parameters

    • translationVector: number[]

      A moving vector.

    Returns boolean

    true if geometry successfully translated.

    Description

    Translates the object along the specified vector.

    -
  • Parameters

    • json: object

      A json formatted object in the following format (values are orientative):

      {
      version: 10000,
      archive3dm: 60,
      opennurbs: -1877964208,
      data: 'encoded 3dm object data'
      }

    Returns CommonObject

    Description

    Decodes a Rhino Object

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Intersection.html b/docs/javascript/api/classes/Intersection.html index 492197540..e24b4748b 100644 --- a/docs/javascript/api/classes/Intersection.html +++ b/docs/javascript/api/classes/Intersection.html @@ -1,4 +1,4 @@ -Intersection | rhino3dm

Class Intersection

Constructors

constructor +Intersection | rhino3dm

Class Intersection

Constructors

Methods

lineBox lineCircle lineCylinder @@ -18,7 +18,7 @@ (boolean) true if the line intersects the box, false if no intersection occurs. (number[]) The chord from line.PointAt(lineParameters.T0) to line.PointAt(lineParameters.T1) is the intersection.

Description

Intersects an infinite line and an axis aligned bounding box.

-
  • Parameters

    • line: Line

      Line for intersection.

    • circle: Circle

      Circle for intersection.

    Returns object

    [LineCircleIntersection, number, number[], number, number[]] (LineCircleIntersection) If is returned, only t1 and point1 will have valid values. @@ -28,7 +28,7 @@ (number) Parameter on line for second intersection. (number[]) Point on circle closest to second intersection.

    Description

    Intersects a line with a circle using exact calculations.

    -
  • Parameters

    • line: Line

      Line for intersection.

    • cylinder: Cylinder

      Cylinder for intersection.

    Returns object

    [LineCylinderIntersection, number[], number[]] (LineCylinderIntersection) If None is returned, the first point is the point on the line closest @@ -40,7 +40,7 @@ (number[]) First intersection point. (number[]) Second intersection point.

    Description

    Intersects a line with a cylinder using exact calculations.

    -
  • Parameters

  • Parameters

    • lineA: Line

      First line for intersection.

    • lineB: Line

      Second line for intersection.

    Returns object

    [boolean, number, number] (boolean) true if a closest point can be calculated and the result passes the tolerance parameter test; otherwise false. @@ -49,7 +49,7 @@ (number) Parameter on lineB that is closest to LineA. The shortest distance between the lines is the chord from lineA.PointAt(a) to lineB.PointAt(b)

    Description

    Intersects two lines.

    -
  • Parameters

  • Parameters

    • lineA: Line

      First line for intersection.

    • lineB: Line

      Second line for intersection.

    • tolerance: number

      If tolerance > 0.0, then an intersection is reported only if the distance between the points is <= tolerance. If tolerance <= 0.0, then the closest point between the lines is reported.

      @@ -62,7 +62,7 @@ (number) Parameter on lineB that is closest to LineA. The shortest distance between the lines is the chord from lineA.PointAt(a) to lineB.PointAt(b)

      Description

      Intersects two lines.

      -
  • Parameters

    • line: Line

      Line for intersection.

    • plane: Plane

      Plane to intersect.

    Returns object

    [boolean, number] (boolean) true on success, false on failure. @@ -72,7 +72,7 @@

    Description

    Intersects a line and a plane. This function only returns true if the intersection result is a single point (i.e. if the line is coincident with the plane then no intersection is assumed).

    -
  • Parameters

    • line: Line

      Line for intersection.

    • sphere: Sphere

      Sphere for intersection.

    Returns object

    [LineSphereIntersection, number[], number[]] (LineSphereIntersection) If is returned, the first point is the point on the line closest to the sphere and @@ -82,7 +82,7 @@ (number[]) First intersection point. (number[]) Second intersection point.

    Description

    Intersects a line with a sphere using exact calculations.

    -
  • Parameters

  • Parameters

    • planeA: Plane

      First plane for intersection.

    • planeB: Plane

      Second plane for intersection.

    Returns object

    [boolean, Line] (boolean) true on success, false on failure. @@ -90,7 +90,7 @@ the intersectionLine parameter will return the line where the planes intersect.

    Description

    Intersects two planes and return the intersection line. If the planes are parallel or coincident, no intersection is assumed.

    -
  • Parameters

  • Parameters

    • planeA: Plane

      First plane for intersection.

    • planeB: Plane

      Second plane for intersection.

    • planeC: Plane

      Third plane for intersection.

    Returns object

    [boolean, number[]] @@ -98,17 +98,17 @@ are parallel or coincident, failure is assumed. (number[]) Point where all three planes converge.

    Description

    Intersects three planes to find the single point they all share.

    -
  • Parameters

    • plane: Plane

      Plane to intersect.

    • sphere: Sphere

      Sphere to intersect.

    Returns object

    [PlaneSphereIntersection, Circle] (PlaneSphereIntersection) If is returned, the intersectionCircle has a radius of zero and the center point is the point on the plane closest to the sphere. (Circle) Intersection result.

    Description

    Intersects a plane with a sphere using exact calculations.

    -
  • Parameters

  • Parameters

    • sphereA: Sphere

      First sphere to intersect.

    • sphereB: Sphere

      Second sphere to intersect.

    Returns object

    [SphereSphereIntersection, Circle] (SphereSphereIntersection) The intersection type. (Circle) If intersection is a point, then that point will be the center, radius 0.

    Description

    Intersects two spheres using exact calculations.

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Layer.html b/docs/javascript/api/classes/Layer.html index 93280c4b9..320bafc62 100644 --- a/docs/javascript/api/classes/Layer.html +++ b/docs/javascript/api/classes/Layer.html @@ -1,9 +1,10 @@ -Layer | rhino3dm

Class Layer

Hierarchy (view full)

Constructors

constructor +Layer | rhino3dm

Class Layer

Hierarchy (view full)

Constructors

Properties

color: object

Gets or sets the display color for this layer in js object format: {r:number, g:number, b:number)} where number is from 0 - 255

-
expanded: boolean
fullPath: string

Gets the full path to this layer. The full path includes nesting information.

-
id: string

Gets or sets the ID of this layer object. +

expanded: boolean
fullPath: string

Gets the full path to this layer. The full path includes nesting information.

+
id: string

Gets or sets the ID of this layer object. You typically do not need to assign a custom ID.

-
igesLevel: number

Gets or sets the IGES level for this layer.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
linetypeIndex: number

Gets or sets the line-type index for this layer.

-
locked: boolean
name: string

Gets or sets the name of this layer.

-
parentLayerId: string

Gets the ID of the parent layer. Layers can be organized in a hierarchical structure, +

igesLevel: number

Gets or sets the IGES level for this layer.

+
index: number
isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
linetypeIndex: number

Gets or sets the line-type index for this layer.

+
locked: boolean
name: string

Gets or sets the name of this layer.

+
parentLayerId: string

Gets the ID of the parent layer. Layers can be organized in a hierarchical structure, in which case this returns the parent layer ID. If the layer has no parent, Guid.Empty will be returned.

-
plotColor: object

Gets or sets the plot color for this layer in js object format: {r:number, g:number, b:number)} where number is from 0 - 255

-
plotWeight: number

Gets or sets the weight of the plotting pen in millimeters. +

plotColor: object

Gets or sets the plot color for this layer in js object format: {r:number, g:number, b:number)} where number is from 0 - 255

+
plotWeight: number

Gets or sets the weight of the plotting pen in millimeters. A weight of 0.0 indicates the "default" pen weight should be used. A weight of -1.0 indicates the layer should not be printed.

-
renderMaterialIndex: number

Gets or sets the index of render material for objects on this layer that have +

renderMaterialIndex: number

Gets or sets the index of render material for objects on this layer that have MaterialSource() == MaterialFromLayer. A material index of -1 indicates no material has been assigned and the material created by the default Material constructor should be used.

-
userStringCount: number

Gets the amount of user strings.

-
visible: boolean

Methods

  • Parameters

    • viewportId: string

      If not Guid.Empty, then the setting for this viewport will be deleted. +

userStringCount: number

Gets the amount of user strings.

+
visible: boolean

Methods

  • Parameters

    • viewportId: string

      If not Guid.Empty, then the setting for this viewport will be deleted. If Guid.Empty, the all per viewport layer color settings will be removed.

    Returns void

    Description

    Remove any per viewport layer color setting so the layer's overall setting will be used for all viewports.

    -
  • Parameters

    • viewportId: string

      If not Guid.Empty, then the settings for that viewport are deleted. +

  • Parameters

    • viewportId: string

      If not Guid.Empty, then the settings for that viewport are deleted. If Guid.Empty, then all per viewport settings are deleted.

    Returns void

    Description

    Deletes per viewport layer settings.

    -
  • Returns boolean

    Description

    The persistent locking setting is used for layers that can be locked by +

  • Returns boolean

    Description

    The persistent locking setting is used for layers that can be locked by a "parent" object. A common case is when a layer is a child layer (Layer.ParentI is not nil). In this case, when a parent layer is locked, then child layers are also locked. The persistent locking setting determines what happens when the parent is unlocked again.

    -
  • Returns boolean

    Description

    The global persistent visibility setting is used for layers whose visibility can +

  • Returns boolean

    Description

    The global persistent visibility setting is used for layers whose visibility can be changed by a "parent" object. A common case is when a layer is a child layer (ParentId is not nil). In this case, when a parent layer is turned off, then child layers are also turned off. The persistent visibility setting determines what happens when the parent is turned on again.

    -
  • Parameters

  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Parameters

    • viewportId: string

      If not Guid.Empty, then checks for settings for that specific viewport. If Guid.Empty, then checks for any viewport settings.

    Returns boolean

    True if the layer has per viewport settings, false otherwise.

    Description

    Verifies that a layer has per viewport settings.

    -
  • Parameters

    • viewportId: string

      If not Guid.Empty, then the setting applies only to the viewport with the specified id.

      +
  • Parameters

    • viewportId: string

      If not Guid.Empty, then the setting applies only to the viewport with the specified id.

    Returns object

    The display color in js object format: {r:number, g:number, b:number)} where number is from 0 - 255

    Description

    Gets the display color for this layer.

    -
  • Parameters

    • viewportId: string

      If not Guid.Empty, then the setting applies only to the viewport with the specified id.

      +
  • Parameters

    • viewportId: string

      If not Guid.Empty, then the setting applies only to the viewport with the specified id.

    • color: object

      The display color in js object format: {r:number, g:number, b:number)} where number is from 0 - 255

    Returns void

    Description

    Sets the display color for this layer.

    -
  • Returns void

    Description

    Set the persistent locking setting for this layer

    -
  • Returns void

    Description

    Set the global persistent visibility setting for this layer.

    -
  • Parameters

  • Returns void

    Description

    Set the persistent locking setting for this layer

    +
  • Returns void

    Description

    Set the global persistent visibility setting for this layer.

    +
  • Parameters

    • key: string

      id used to retrieve this string.

    • value: string

      string associated with key.

    Returns boolean

    true if successful, false if not.

    Description

    Attach a user string (key,value combination) to this geometry.

    -
  • Returns void

    Description

    Remove any explicitly persistent locking settings from this layer

    -
  • Returns void

    Description

    Remove any explicit persistent visibility setting from this layer

    -
  • Returns void

    Description

    Remove any explicitly persistent locking settings from this layer

    +
  • Returns void

    Description

    Remove any explicit persistent visibility setting from this layer

    +
  • Parameters

    • json: object

      A json formatted object in the following format (values are orientative):

      {
      version: 10000,
      archive3dm: 60,
      opennurbs: -1877964208,
      data: 'encoded 3dm object data'
      }

    Returns CommonObject

    Description

    Decodes a Rhino Object

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Leader.html b/docs/javascript/api/classes/Leader.html index b768b8880..01b28f0b9 100644 --- a/docs/javascript/api/classes/Leader.html +++ b/docs/javascript/api/classes/Leader.html @@ -1,4 +1,4 @@ -Leader | rhino3dm

Class Leader

Hierarchy (view full)

Constructors

constructor +Leader | rhino3dm

Class Leader

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

annotationType: AnnotationTypes

Type of annotation

-
dimensionStyleId: string

Id of this annotation's parent dimstyle +

Constructors

Properties

annotationType: AnnotationType

Type of annotation

+
dimensionStyleId: string

Id of this annotation's parent dimstyle If this annotation has overrides to dimstyle properties, those overrides will be represented in the DimensionStyle returned by DimensionStyle(ParentStyle)

-
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

+
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
plainText: string

Text stripped of RTF formatting information

-
plainTextWithFields: string

Text stripped of RTF formatting information and with field expressions intact

-
plane: Plane

Plane that this annotation lies on

-
points: number[][]
richText: string

Text including additional RTF formatting information

-
textIsWrapped: boolean

Is text wrapping on

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
plainText: string

Text stripped of RTF formatting information

+
plainTextWithFields: string

Text stripped of RTF formatting information and with field expressions intact

+
plane: Plane

Plane that this annotation lies on

+
points: number[][]
richText: string

Text including additional RTF formatting information

+
textIsWrapped: boolean

Is text wrapping on

+
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -58,42 +58,42 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns boolean

    false if object cannot be converted to a deformable object. true if object was +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Light.html b/docs/javascript/api/classes/Light.html index fba142410..91894e02e 100644 --- a/docs/javascript/api/classes/Light.html +++ b/docs/javascript/api/classes/Light.html @@ -1,4 +1,4 @@ -Light | rhino3dm

Class Light

Hierarchy (view full)

Constructors

constructor +Light | rhino3dm

Class Light

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

ambient: object

Gets or sets the ambient color in js object format: {r:number, g:number, b:number)} where number is from 0 - 255

-
attenuationVector: number[]

Gets or Sets the attenuation vector.

-
diffuse: object

Gets or sets the diffuse color in js object format: {r:number, g:number, b:number)} where number is from 0 - 255

-
direction: number[]

Gets or sets the vector direction of the camera.

-
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
hotSpot: number

The hot spot setting runs from 0.0 to 1.0 and is used to +

attenuationVector: number[]

Gets or Sets the attenuation vector.

+
diffuse: object

Gets or sets the diffuse color in js object format: {r:number, g:number, b:number)} where number is from 0 - 255

+
direction: number[]

Gets or sets the vector direction of the camera.

+
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

+
hotSpot: number

The hot spot setting runs from 0.0 to 1.0 and is used to provides a linear interface for controlling the focus or concentration of a spotlight. A hot spot setting of 0.0 corresponds to a spot exponent of 128. A hot spot setting of 1.0 corresponds to a spot exponent of 0.0.

-
intensity: number

Gets or sets the light intensity.

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

intensity: number

Gets or sets the light intensity.

+
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isDirectionalLight: boolean

Gets a value indicating whether the light style +

isDirectionalLight: boolean

Gets a value indicating whether the light style is CameraDirectional or WorldDirectional.

-
isEnabled: boolean

Gets or sets a value that defines if the light is turned on (true) or off (false).

-
isLinearLight: boolean

Gets a value indicating whether the light style +

isEnabled: boolean

Gets or sets a value that defines if the light is turned on (true) or off (false).

+
isLinearLight: boolean

Gets a value indicating whether the light style is WorldLinear.

-
isPointLight: boolean

Gets a value indicating whether the light style +

isPointLight: boolean

Gets a value indicating whether the light style is CameraPoint or WorldPoint.

-
isRectangularLight: boolean

Gets a value indicating whether the light style +

isRectangularLight: boolean

Gets a value indicating whether the light style is WorldRectangular.

-
isSpotLight: boolean

Gets a value indicating whether the light style +

isSpotLight: boolean

Gets a value indicating whether the light style is CameraSpot or WorldSpot.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
length: number[]

Gets or sets the height in linear and rectangular lights. +

isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
length: number[]

Gets or sets the height in linear and rectangular lights. (ignored for non-linear/rectangular lights.)

-
lightStyle: LightStyle

Gets or sets a light style on this camera.

-
location: number[]

Gets or sets the light or 3D position or location.

-
name: string

Gets or sets the spot light name.

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

lightStyle: LightStyle

Gets or sets a light style on this camera.

+
location: number[]

Gets or sets the light or 3D position or location.

+
name: string

Gets or sets the spot light name.

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
perpendicularDirection: number[]

Gets a perpendicular vector to the camera direction.

-
powerCandela: number

Gets or sets the light power in candelas (cd).

-
powerLumens: number

Gets or sets the light power in lumens (lm).

-
powerWatts: number

Gets or sets the light power in watts (W).

-
shadowIntensity: number

Gets or sets the shadow intensity for the light.

-
specular: object

Gets or sets the specular color in js object format: {r:number, g:number, b:number)} where number is from 0 - 255

-
spotAngleRadians: number

Gets or sets the spot angle in radians. +

perpendicularDirection: number[]

Gets a perpendicular vector to the camera direction.

+
powerCandela: number

Gets or sets the light power in candelas (cd).

+
powerLumens: number

Gets or sets the light power in lumens (lm).

+
powerWatts: number

Gets or sets the light power in watts (W).

+
shadowIntensity: number

Gets or sets the shadow intensity for the light.

+
specular: object

Gets or sets the specular color in js object format: {r:number, g:number, b:number)} where number is from 0 - 255

+
spotAngleRadians: number

Gets or sets the spot angle in radians. Ignored for non-spot lights.angle = 0 to pi/2 (0 to 90 degrees).

-
spotExponent: number

The spot exponent varies from 0.0 to 128.0 and provides +

spotExponent: number

The spot exponent varies from 0.0 to 128.0 and provides an exponential interface for controlling the focus or concentration of a spotlight (like the OpenGL GL_SPOT_EXPONENT parameter). The spot exponent @@ -96,17 +96,17 @@ change the other. A hot spot setting of 0.0 corresponds to a spot exponent of 128. A hot spot setting of 1.0 corresponds to a spot exponent of 0.0.

-
userStringCount: number

Gets the amount of user strings.

-
width: number[]

Gets or sets the width in linear and rectangular lights. +

userStringCount: number

Gets the amount of user strings.

+
width: number[]

Gets or sets the width in linear and rectangular lights. (ignored for non-linear/rectangular lights.)

-

Methods

  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +

Methods

  • Parameters

    • d: number

      The distance to evaluate.

    Returns number

    0 if a0 + da1 + d^2a2 <= 0.

    Description

    Gets the attenuation settings (ignored for "directional" and "ambient" lights). attenuation = 1/(a0 + da1 + d^2a2) where d = distance to light.

    -
  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. +

  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -114,50 +114,50 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Returns object

    [boolean, number, number] +

  • Returns object

    [boolean, number, number] (boolean) true if operation succeeded; otherwise, false. (number) The inner radius. This out parameter is assigned during this call. (number) The outer radius. This out parameter is assigned during this call.

    Description

    Gets the spot light radii.

    -
  • Parameters

  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns boolean

    false if object cannot be converted to a deformable object. true if object was +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Line.html b/docs/javascript/api/classes/Line.html index 16bb3083a..7dc819767 100644 --- a/docs/javascript/api/classes/Line.html +++ b/docs/javascript/api/classes/Line.html @@ -1,4 +1,4 @@ -Line | rhino3dm

Class Line

Constructors

constructor +Line | rhino3dm

Class Line

Constructors

Properties

direction from isValid @@ -7,23 +7,23 @@ unitTangent

Methods

Constructors

Properties

direction: number[]

Gets the direction of this line segment. +

Constructors

Properties

direction: number[]

Gets the direction of this line segment. The length of the direction vector equals the length of the line segment.

-
from: number[]

Start point of line segment.

-
isValid: boolean

Gets a value indicating whether or not this line is valid. +

from: number[]

Start point of line segment.

+
isValid: boolean

Gets a value indicating whether or not this line is valid. Valid lines must have valid start and end points, and the points must not be equal.

-
length: number

Gets or sets the length of this line segment. +

length: number

Gets or sets the length of this line segment. Note that a negative length will invert the line segment without making the actual length negative. The line From point will remain fixed when a new Length is set.

-
to: number[]

End point of line segment.

-
unitTangent: number[]

Gets the tangent of the line segment. +

to: number[]

End point of line segment.

+
unitTangent: number[]

Gets the tangent of the line segment. Note that tangent vectors are always unit vectors.

-

Methods

  • Parameters

    • t: number

      Parameter to evaluate line segment at. Line parameters are normalized parameters.

      +

Methods

  • Parameters

    • t: number

      Parameter to evaluate line segment at. Line parameters are normalized parameters.

    Returns number[]

    The point at the specified parameter.

    Description

    Evaluates the line at the specified parameter.

    -
  • Parameters

    • xform: Transform

      Transform to apply to this line.

    Returns boolean

    true on success, false on failure.

    Description

    Transform the line using a Transformation matrix.

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/LineCurve.html b/docs/javascript/api/classes/LineCurve.html index e51075ce4..ff339afa2 100644 --- a/docs/javascript/api/classes/LineCurve.html +++ b/docs/javascript/api/classes/LineCurve.html @@ -1,4 +1,4 @@ -LineCurve | rhino3dm

Class LineCurve

Hierarchy (view full)

Constructors

constructor +LineCurve | rhino3dm

Class LineCurve

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

degree: number

Gets the maximum algebraic degree of any span +

Constructors

Properties

degree: number

Gets the maximum algebraic degree of any span or a good estimate if curve spans are not algebraic.

-
dimension: number

Gets the dimension of the object. +

dimension: number

Gets the dimension of the object. The dimension is typically three. For parameter space trimming curves the dimension is two. In rare cases the dimension can be one or greater than three.

-
domain: number[]

Gets or sets the domain of the curve.

-
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isClosed: boolean

Gets a value indicating whether or not this curve is a closed curve.

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

domain: number[]

Gets or sets the domain of the curve.

+
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

+
isClosed: boolean

Gets a value indicating whether or not this curve is a closed curve.

+
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isPeriodic: boolean

Gets a value indicating whether or not this curve is considered to be Periodic.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
line: Line

Gets or sets the Line value inside this curve.

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isPeriodic: boolean

Gets a value indicating whether or not this curve is considered to be Periodic.

+
isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
line: Line

Gets or sets the Line value inside this curve.

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
pointAtEnd: number[]

Evaluates point at the end of the curve.

-
pointAtStart: number[]

Evaluates point at the start of the curve.

-
spanCount: number

Gets the number of non-empty smooth (c-infinity) spans in the curve.

-
tangentAtEnd: number[]

Evaluate unit tangent vector at the end of the curve.

-
tangentAtStart: number[]

Evaluates the unit tangent vector at the start of the curve.

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Parameters

pointAtEnd: number[]

Evaluates point at the end of the curve.

+
pointAtStart: number[]

Evaluates point at the start of the curve.

+
spanCount: number

Gets the number of non-empty smooth (c-infinity) spans in the curve.

+
tangentAtEnd: number[]

Evaluate unit tangent vector at the end of the curve.

+
tangentAtStart: number[]

Evaluates the unit tangent vector at the start of the curve.

+
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • t: number

      Curve parameter of new start/end point. The returned curves domain will start at t.

    Returns boolean

    true on success, false on failure.

    Description

    If this curve is closed, then modify it so that the start/end point is at curve parameter t.

    -
  • Parameters

    • desiredDimension: number

      The desired dimension.

    Returns boolean

    true if the curve's dimension was already desiredDimension or if the curve's dimension was successfully changed to desiredDimension; otherwise false.

    Description

    Changes the dimension of a curve.

    -
  • Returns CurveOrientation

    The orientation of this curve with respect to world XY plane.

    Description

    Determines the orientation (counterclockwise or clockwise) of a closed, planar curve in the world XY plane. Only works with simple (no self intersections) closed, planar curves.

    -
  • Parameters

    • plane: Plane

      The plane in which to solve the orientation.

    Returns CurveOrientation

    The orientation of this curve with respect to world XY plane.

    Description

    Determines the orientation (counterclockwise or clockwise) of a closed, planar curve in a given plane. Only works with simple (no self intersections) closed, planar curves.

    -
  • Parameters

    • t: number

      Evaluation parameter.

    Returns number[]

    Curvature vector of the curve at the parameter t.

    Description

    Evaluate the curvature vector at a curve parameter.

    -
  • Parameters

    • t: number

      Curve parameter to evaluate.

    • derivativeCount: number

      Number of derivatives to evaluate, must be at least 0.

    Returns number[][]

    An array of vectors that represents all the derivatives starting at zero.

    Description

    Evaluate the derivatives at the specified curve parameter.

    -
  • Parameters

    • t: number

      Curve parameter to evaluate.

    • derivativeCount: number

      Number of derivatives to evaluate, must be at least 0.

    • side: CurveEvaluationSide

      Side of parameter to evaluate. If the parameter is at a kink, it makes a big difference whether the evaluation is from below or above.

    Returns void

    An array of vectors that represents all the derivatives starting at zero.

    Description

    Evaluate the derivatives at the specified curve parameter.

    -
  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/LinearWorkflow.html b/docs/javascript/api/classes/LinearWorkflow.html index 385d45463..8e45636fd 100644 --- a/docs/javascript/api/classes/LinearWorkflow.html +++ b/docs/javascript/api/classes/LinearWorkflow.html @@ -1,4 +1,4 @@ -LinearWorkflow | rhino3dm

Class LinearWorkflow

Constructors

constructor +LinearWorkflow | rhino3dm

Class LinearWorkflow

Constructors

Properties

postProcessGamma: number

Linear workflow post-process gamma value.

-
postProcessGammaOn: boolean

Linear workflow post-process gamma enabled state.

-
preProcessColorsOn: boolean
preProcessGamma: number

Linear workflow pre-process gamma value. This is currently the same as the post-process gamma value.

-
preProcessGammaOn: boolean
preProcessTexturesOn: boolean

Generated using TypeDoc

\ No newline at end of file +
postProcessGammaOn: boolean

Linear workflow post-process gamma enabled state.

+
preProcessColorsOn: boolean
preProcessGamma: number

Linear workflow pre-process gamma value. This is currently the same as the post-process gamma value.

+
preProcessGammaOn: boolean
preProcessTexturesOn: boolean

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Linetype.html b/docs/javascript/api/classes/Linetype.html index 15331fc44..aba219c74 100644 --- a/docs/javascript/api/classes/Linetype.html +++ b/docs/javascript/api/classes/Linetype.html @@ -1,4 +1,4 @@ -Linetype | rhino3dm

Class Linetype

Hierarchy (view full)

Constructors

constructor +Linetype | rhino3dm

Class Linetype

Hierarchy (view full)

Constructors

Properties

id index isSystemComponent @@ -32,67 +32,67 @@ dots hidden

Constructors

Properties

id: string

Gets or sets the ID of the current instance.

-
index: number
isSystemComponent: boolean

True if this model component is a system constant. +

index: number
isSystemComponent: boolean

True if this model component is a system constant. An incomplete list of system constant model components is below:ON_ModelComponent::Unset ON_InstanceDefinition::Empty ON_Linetype::UnsetON_Linetype::ContinuousON_Linetype::ByLayerON_Linetype::ByParent ON_Layer::UnsetON_Layer::Default ON_TextStyle::UnsetON_TextStyle::DefaultON_TextStyle::ByLayerON_TextStyle::ByParent ON_DimStyle::UnsetON_DimStyle::DefaultON_DimStyle::DefaultInchDecimalON_DimStyle::DefaultInchFractionalON_DimStyle::DefaultFootInchArchitectureON_DimStyle::DefaultMillimeterSmallON_DimStyle::DefaultMillimeterLargeON_DimStyle::DefaultMillimeterArchitecture

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
name: string

The name of this linetype.

-
patternLength: number

Total length of one repeat of the pattern.

-
segmentCount: number

Number of segments in the pattern.

-
userStringCount: number

Gets the amount of user strings.

-

Methods

isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
name: string

The name of this linetype.

+
patternLength: number

Total length of one repeat of the pattern.

+
segmentCount: number

Number of segments in the pattern.

+
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • length: number

      The length of the segment to be added.

    • isSolid: boolean

      If true, the length is interpreted as a line. If false, then the length is interpreted as a space.

    Returns number

    Index of the added segment.

    Description

    Adds a segment to the pattern.

    -
  • Parameters

  • Parameters

    • currentRemainder: number

      The current remainder value.

    Returns number

    The updated remainder value.

    Description

    Increments the Cyclic Redundancy Check value by this instance.

    -
  • Parameters

    • index: number

      Zero based index of the segment.

    Returns object

    [void, number, boolean] (void) (number) The length of the segment in millimeters. (boolean) If the length is interpreted as a line, true is assigned during the call to this out parameter. If the length is interpreted as a space, then false is assigned during the call to this out parameter.

    Description

    Gets the segment information at a index.

    -
  • Parameters

  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Parameters

    • index: number

      Zero based index of the segment to remove.

    Returns boolean

    true if the segment index was removed.

    Description

    Removes a segment in the linetype.

    -
  • Parameters

  • Parameters

    • index: number

      Zero based index of the segment.

    • length: number

      The length of the segment to be added in millimeters.

    • isSolid: boolean

      If true, the length is interpreted as a line. If false, then the length is interpreted as a space.

    Returns boolean

    true if the operation was successful; otherwise false.

    Description

    Sets the length and type of the segment at index.

    -
  • Parameters

  • Parameters

    • key: string

      id used to retrieve this string.

    • value: string

      string associated with key.

    Returns boolean

    true if successful, false if not.

    Description

    Attach a user string (key,value combination) to this geometry.

    -
  • Parameters

    • json: object

      A json formatted object in the following format (values are orientative):

      {
      version: 10000,
      archive3dm: 60,
      opennurbs: -1877964208,
      data: 'encoded 3dm object data'
      }

    Returns CommonObject

    Description

    Decodes a Rhino Object

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Material.html b/docs/javascript/api/classes/Material.html index 920f2c96f..f419ad8ba 100644 --- a/docs/javascript/api/classes/Material.html +++ b/docs/javascript/api/classes/Material.html @@ -1,4 +1,4 @@ -Material | rhino3dm

Class Material

Hierarchy (view full)

Constructors

constructor +Material | rhino3dm

Class Material

Hierarchy (view full)

Constructors

Properties

ambientColor: number[]
diffuseColor: number[]
disableLighting: boolean
emissionColor: number[]
fresnelIndexOfRefraction: number

Gets or sets the Fresnel index of refraction of the material, +

Constructors

Properties

ambientColor: number[]
diffuseColor: number[]
disableLighting: boolean
emissionColor: number[]
fresnelIndexOfRefraction: number

Gets or sets the Fresnel index of refraction of the material, default is 1.56

-
fresnelReflections: boolean

Gets or sets if Fresnel reflections are used.

-
id: string

Gets or sets the ID of the current instance.

-
indexOfRefraction: number

Gets or sets the index of refraction of the material, generally

+
fresnelReflections: boolean

Gets or sets if Fresnel reflections are used.

+
id: string

Gets or sets the ID of the current instance.

+
indexOfRefraction: number

Gets or sets the index of refraction of the material, generally

= 1.0 (speed of light in vacuum)/(speed of light in material)

-
isSystemComponent: boolean

True if this model component is a system constant. +

isSystemComponent: boolean

True if this model component is a system constant. An incomplete list of system constant model components is below:ON_ModelComponent::Unset ON_InstanceDefinition::Empty ON_Linetype::UnsetON_Linetype::ContinuousON_Linetype::ByLayerON_Linetype::ByParent ON_Layer::UnsetON_Layer::Default ON_TextStyle::UnsetON_TextStyle::DefaultON_TextStyle::ByLayerON_TextStyle::ByParent ON_DimStyle::UnsetON_DimStyle::DefaultON_DimStyle::DefaultInchDecimalON_DimStyle::DefaultInchFractionalON_DimStyle::DefaultFootInchArchitectureON_DimStyle::DefaultMillimeterSmallON_DimStyle::DefaultMillimeterLargeON_DimStyle::DefaultMillimeterArchitecture

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
name: string
previewColor: number[]

Very simple preview color function for GUIs.

-
reflectionColor: number[]
reflectionGlossiness: number

Gets or sets the reflection glossiness.

-
reflectivity: number

Gets or sets how reflective a material is, 0f is no reflection +

isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
name: string
previewColor: number[]

Very simple preview color function for GUIs.

+
reflectionColor: number[]
reflectionGlossiness: number

Gets or sets the reflection glossiness.

+
reflectivity: number

Gets or sets how reflective a material is, 0f is no reflection 1f is 100% reflective.

-
refractionGlossiness: number

Gets or sets the refraction glossiness.

-
renderMaterialInstanceId: string
renderPlugInId: string

The Id of the RenderPlugIn that is associated with this material.

-
shine: number

Gets or sets the shine factor of the material.

-
specularColor: number[]
transparency: number

Gets or sets the transparency of the material (0.0 = opaque to 1.0 = transparent)

-
transparentColor: number[]
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Parameters

refractionGlossiness: number

Gets or sets the refraction glossiness.

+
renderMaterialInstanceId: string
renderPlugInId: string

The Id of the RenderPlugIn that is associated with this material.

+
shine: number

Gets or sets the shine factor of the material.

+
specularColor: number[]
transparency: number

Gets or sets the transparency of the material (0.0 = opaque to 1.0 = transparent)

+
transparentColor: number[]
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • currentRemainder: number

      The current remainder value.

    Returns number

    The updated remainder value.

    Description

    Increments the Cyclic Redundancy Check value by this instance.

    -
  • Returns void

    Description

    Set material to default settings.

    -
  • Returns Texture

    A texture; or null if no bump texture has been added to this material.

    +
  • Returns void

    Description

    Set material to default settings.

    +
  • Returns Texture

    A texture; or null if no bump texture has been added to this material.

    Description

    Gets the bump texture of this material.

    -
  • Parameters

  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • ...

    -

    Parameters

    • filename: string

    Returns boolean

  • ...

    -

    Parameters

    • filename: string

    Returns boolean

  • ...

    -

    Parameters

    • filename: string

    Returns boolean

  • ...

    -

    Parameters

    • filename: string

    Returns boolean

  • ...

    +

    Parameters

    • filename: string

    Returns boolean

  • ...

    +

    Parameters

    • filename: string

    Returns boolean

  • ...

    +

    Parameters

    • filename: string

    Returns boolean

  • ...

    +

    Parameters

    • filename: string

    Returns boolean

  • Parameters

    • key: string

      id used to retrieve this string.

    • value: string

      string associated with key.

    Returns boolean

    true if successful, false if not.

    Description

    Attach a user string (key,value combination) to this geometry.

    -
  • Parameters

    • json: object

      A json formatted object in the following format (values are orientative):

      {
      version: 10000,
      archive3dm: 60,
      opennurbs: -1877964208,
      data: 'encoded 3dm object data'
      }

    Returns CommonObject

    Description

    Decodes a Rhino Object

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Mesh.html b/docs/javascript/api/classes/Mesh.html index 20e15e293..014a4a432 100644 --- a/docs/javascript/api/classes/Mesh.html +++ b/docs/javascript/api/classes/Mesh.html @@ -1,4 +1,4 @@ -Mesh | rhino3dm

Class Mesh

Hierarchy (view full)

Constructors

constructor +Mesh | rhino3dm

Class Mesh

Hierarchy (view full)

Constructors

Properties

hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
hasCachedTextureCoordinates: boolean

Will return true if SetCachedTextureCoordinates has been called; +

hasCachedTextureCoordinates: boolean

Will return true if SetCachedTextureCoordinates has been called; otherwise will return false.

-
hasPrincipalCurvatures: boolean

HasPrincipalCurvatures

-
isClosed: boolean

Returns true if every mesh "edge" has two or more faces.

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

hasPrincipalCurvatures: boolean

HasPrincipalCurvatures

+
isClosed: boolean

Returns true if every mesh "edge" has two or more faces.

+
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
partitionCount: number

Number of partition information chunks stored on this mesh based +

partitionCount: number

Number of partition information chunks stored on this mesh based on the last call to CreatePartitions

-
userStringCount: number

Gets the amount of user strings.

-

Methods

userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • other: Mesh

      Mesh to append to this one.

    Returns void

    Description

    Appends a copy of another mesh to this one and updates indices of appended mesh parts.

    -
  • Returns void

    Description

    Removes surface parameters, curvature parameters and surface statistics from the mesh.

    -
  • Returns void

    Description

    Removes all texture coordinate information from this mesh.

    -
  • Returns boolean

    true on success, false on failure.

    +
  • Returns void

    Description

    Removes surface parameters, curvature parameters and surface statistics from the mesh.

    +
  • Returns void

    Description

    Removes all texture coordinate information from this mesh.

    +
  • Returns boolean

    true on success, false on failure.

    Description

    Removes any unreferenced objects from arrays, re-indexes as needed and shrinks arrays to minimum required size.

    -
  • Returns boolean

    true on success

    +
  • Returns boolean

    true on success

    Description

    In ancient times (or modern smart phone times), some rendering engines were only able to process small batches of triangles and the CreatePartitions() function was provided to partition the mesh into subsets of vertices and faces that those rendering engines could handle.

    -
  • Returns void

    Description

    Destroys mesh partition.

    -
  • Returns void

    Description

    Removes topology data, forcing all topology information to be recomputed.

    -
  • Returns void

    Description

    Destroys the mesh vertex access tree.

    -
  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
  • Returns void

    Description

    Destroys mesh partition.

    +
  • Returns void

    Description

    Removes topology data, forcing all topology information to be recomputed.

    +
  • Returns void

    Description

    Destroys the mesh vertex access tree.

    +
  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -86,69 +86,69 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

    • textureMappingId: string

      Texture mapping Id

    Returns CachedTextureCoordinates

    Object which allows access to coordinates and other props.

    Description

    Call this method to get cached texture coordinates for a texture mapping with the specified Id.

    -
  • Parameters

  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns object

    Description

    Returns true if every mesh "edge" has at most two faces.

    -
  • Returns boolean

    false if object cannot be converted to a deformable object. true if object was +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/MeshFaceList.html b/docs/javascript/api/classes/MeshFaceList.html index e09f20624..1d892be15 100644 --- a/docs/javascript/api/classes/MeshFaceList.html +++ b/docs/javascript/api/classes/MeshFaceList.html @@ -1,4 +1,4 @@ -MeshFaceList | rhino3dm

Class MeshFaceList

Constructors

constructor +MeshFaceList | rhino3dm

Class MeshFaceList

Constructors

Properties

Constructors

Properties

capacity: number

Gets or sets the total number of mesh triangles and quads the internal data structure can hold without resizing.

-
count: number

Gets or sets the number of mesh faces. When getting this can includes invalid faces.

-
quadCount: number

Gets the number of faces that are valid quads (4 corners).

-
triangleCount: number

Gets the number of faces that are valid triangles (3 corners).

-

Methods

  • ...

    -

    Parameters

    • vertex1: number
    • vertex2: number
    • vertex3: number
    • vertex4: number

    Returns number

  • ...

    -

    Parameters

    • vertex1: number
    • vertex2: number
    • vertex3: number

    Returns number

  • Returns void

    Description

    Clears the Face list on the mesh.

    -
  • Parameters

    • planarTolerance: number

      If planarTolerance >= 0, then a quad is split if its vertices +

count: number

Gets or sets the number of mesh faces. When getting this can includes invalid faces.

+
quadCount: number

Gets the number of faces that are valid quads (4 corners).

+
triangleCount: number

Gets the number of faces that are valid triangles (3 corners).

+

Methods

  • ...

    +

    Parameters

    • vertex1: number
    • vertex2: number
    • vertex3: number
    • vertex4: number

    Returns number

  • ...

    +

    Parameters

    • vertex1: number
    • vertex2: number
    • vertex3: number

    Returns number

  • Returns void

    Description

    Clears the Face list on the mesh.

    +
  • Parameters

    • planarTolerance: number

      If planarTolerance >= 0, then a quad is split if its vertices are not coplanar. If both planarTolerance = Rhino.RhinoMath.UnsetValue and angleToleranceRadians >= 0.0, then the planarity test is skipped.

      @@ -49,9 +49,9 @@ 6 maximize angle between triangle normals

    Returns number

    Number of quads that were converted to triangles.

    Description

    Splits non-planar quads into two triangles based on given parameters.

    -
  • Returns boolean

    true on success, false on failure.

    +
  • Returns boolean

    true on success, false on failure.

    Description

    Splits all quads along the short diagonal.

    -
  • Parameters

    • angleToleranceRadians: number

      Used to compare adjacent triangles' face normals. For two triangles +

  • Parameters

    • angleToleranceRadians: number

      Used to compare adjacent triangles' face normals. For two triangles to be considered, the angle between their face normals has to be <= angleToleranceRadians. When in doubt use RhinoMath.PI/90.0 (2 degrees).

    • minimumDiagonalLengthRatio: number

      ( <= 1.0) For two triangles to be considered the ratio of the @@ -60,19 +60,19 @@ has to be >= minimumDiagonalLengthRatio. When in doubt us .875.

    Returns boolean

    true on success, false on failure.

    Description

    Joins adjacent triangles into quads if the resulting quad is 'nice'.

    -
  • Returns number

    The number of degenerate faces that were removed.

    +
  • Returns number

    The number of degenerate faces that were removed.

    Description

    Attempts to removes degenerate faces from the mesh. Degenerate faces are faces that contains such a combination of indices, that their final shape collapsed in a line or point.Before returning, this method also attempts to repair faces by juggling vertex indices.

    -
  • Returns void

    Description

    Releases all memory allocated to store faces. The list capacity will be 0 after this call. +

  • Returns void

    Description

    Releases all memory allocated to store faces. The list capacity will be 0 after this call. Subsequent calls can add new items.

    -
  • ...

    -

    Parameters

    • index: number

    Returns number[]

  • Parameters

  • ...

    +

    Parameters

    • index: number

    Returns number[]

  • Parameters

    • faceIndex: number

      A face index.

    Returns number[]

    The center point.

    Description

    Gets the center point of a face. For a triangular face, this is the centroid or barycenter.For a quad, this is the average of four comer points.

    -
  • Parameters

  • Parameters

    • faceIndex: number

      A face index.

    Returns object

    [boolean, Point3f, Point3f, Point3f, Point3f] (boolean) true if the operation succeeded, otherwise false. (Point3f) A first point. This out argument is assigned during the call. @@ -80,14 +80,14 @@ (Point3f) A third point. This out argument is assigned during the call. (Point3f) A fourth point. This out argument is assigned during the call.

    Description

    Gets the 3D location of the vertices forming a face.

    -
  • Parameters

  • Parameters

    • faceIndex: number

      A face index.

    Returns boolean

    true if that face makes the mesh open, otherwise false.

    Description

    Returns true if at least one of the face edges are not topologically connected to any other faces.

    -
  • Parameters

  • Parameters

    • faceIndex: number

      A face index.

    Returns boolean

    true if hidden, false if fully visible.

    Description

    Gets a value indicating whether a face is hidden. A face is hidden if, and only if, at least one of its vertices is hidden.

    -
  • ...

    -

    Parameters

    • index: number
    • vertex1: number
    • vertex2: number
    • vertex3: number
    • vertex4: number

    Returns boolean

  • ...

    -

    Parameters

    • index: number
    • vertex1: number
    • vertex2: number
    • vertex3: number

    Returns boolean

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/MeshNormalList.html b/docs/javascript/api/classes/MeshNormalList.html index 8d416bfc2..8dd6b357d 100644 --- a/docs/javascript/api/classes/MeshNormalList.html +++ b/docs/javascript/api/classes/MeshNormalList.html @@ -1,4 +1,4 @@ -MeshNormalList | rhino3dm

Class MeshNormalList

Constructors

constructor +MeshNormalList | rhino3dm

Class MeshNormalList

Constructors

Properties

Methods

add clear @@ -8,12 +8,12 @@ get set unitizeNormals -

Constructors

Properties

count: number

Methods

  • ...

    -

    Parameters

    • x: number
    • y: number
    • z: number

    Returns number

  • ...

    -

    Parameters

    • index: number

    Returns number[]

  • ...

    -

    Parameters

    • index: number
    • normal: number[]

    Returns void

Generated using TypeDoc

\ No newline at end of file +

Constructors

Properties

count: number

Methods

  • ...

    +

    Parameters

    • x: number
    • y: number
    • z: number

    Returns number

  • ...

    +

    Parameters

    • index: number

    Returns number[]

  • ...

    +

    Parameters

    • index: number
    • normal: number[]

    Returns void

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/MeshTextureCoordinateList.html b/docs/javascript/api/classes/MeshTextureCoordinateList.html index 7a42f8c63..aed0154a7 100644 --- a/docs/javascript/api/classes/MeshTextureCoordinateList.html +++ b/docs/javascript/api/classes/MeshTextureCoordinateList.html @@ -1,13 +1,13 @@ -MeshTextureCoordinateList | rhino3dm

Class MeshTextureCoordinateList

Constructors

constructor +MeshTextureCoordinateList | rhino3dm

Class MeshTextureCoordinateList

Constructors

Properties

Methods

Constructors

Properties

count: number

Gets or sets the number of texture coordinates.

-

Methods

  • Parameters

Methods

  • Parameters

    • s: number

      S component of new texture coordinate.

    • t: number

      T component of new texture coordinate.

    Returns number

    The index of the newly added texture coordinate.

    Description

    Adds a new texture coordinate to the end of the Texture list.

    -
  • ...

    -

    Parameters

    • index: number

    Returns number[]

  • ...

    -

    Parameters

    • index: number
    • coordinate: number[]

    Returns void

Generated using TypeDoc

\ No newline at end of file +
  • ...

    +

    Parameters

    • index: number

    Returns number[]

  • ...

    +

    Parameters

    • index: number
    • coordinate: number[]

    Returns void

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/MeshTopologyEdgeList.html b/docs/javascript/api/classes/MeshTopologyEdgeList.html index 05a244232..5e9cf5751 100644 --- a/docs/javascript/api/classes/MeshTopologyEdgeList.html +++ b/docs/javascript/api/classes/MeshTopologyEdgeList.html @@ -1,8 +1,8 @@ -MeshTopologyEdgeList | rhino3dm

Class MeshTopologyEdgeList

Constructors

constructor +MeshTopologyEdgeList | rhino3dm

Class MeshTopologyEdgeList

Constructors

Properties

Methods

Constructors

Properties

count: number

Gets the amount of edges in this list.

-

Methods

  • Parameters

Methods

  • Parameters

    • topologyEdgeIndex: number

      The topology edge index.

    Returns Line

    Line along edge. If input is not valid, an Invalid Line is returned.

    Description

    Gets the 3d line along an edge.

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/MeshVertexColorList.html b/docs/javascript/api/classes/MeshVertexColorList.html index 09b6f016b..d56ceecf4 100644 --- a/docs/javascript/api/classes/MeshVertexColorList.html +++ b/docs/javascript/api/classes/MeshVertexColorList.html @@ -1,4 +1,4 @@ -MeshVertexColorList | rhino3dm

Class MeshVertexColorList

Constructors

constructor +MeshVertexColorList | rhino3dm

Class MeshVertexColorList

Constructors

Properties

Methods

add @@ -6,13 +6,13 @@ get set

Constructors

Properties

capacity: number

Gets or sets the total number of vertex colors the internal data structure can hold without resizing.

-
count: number

Gets or sets the number of mesh colors.

-

Methods

  • Parameters

    • red: number

      Red component of color, must be in the 0~255 range.

      +
count: number

Gets or sets the number of mesh colors.

+

Methods

  • Parameters

    • red: number

      Red component of color, must be in the 0~255 range.

    • green: number

      Green component of color, must be in the 0~255 range.

    • blue: number

      Blue component of color, must be in the 0~255 range.

    Returns number

    The index of the newly added color.

    Description

    Adds a new vertex color to the end of the color list.

    -
  • Returns void

    Description

    Clears the vertex color list on the mesh.

    -
  • ...

    -

    Parameters

    • index: number
    • color: object

    Returns void

Generated using TypeDoc

\ No newline at end of file +
  • Returns void

    Description

    Clears the vertex color list on the mesh.

    +
  • ...

    +

    Parameters

    • index: number
    • color: object

    Returns void

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/MeshVertexList.html b/docs/javascript/api/classes/MeshVertexList.html index 84f63a696..0a2c8a71c 100644 --- a/docs/javascript/api/classes/MeshVertexList.html +++ b/docs/javascript/api/classes/MeshVertexList.html @@ -1,4 +1,4 @@ -MeshVertexList | rhino3dm

Class MeshVertexList

Constructors

constructor +MeshVertexList | rhino3dm

Class MeshVertexList

Constructors

Properties

Methods

add @@ -15,32 +15,32 @@ show showAll

Constructors

Properties

count: number

Gets or sets the number of mesh vertices.

-
useDoublePrecisionVertices: boolean

Set to true if the vertices should be stored in double precision

-

Methods

  • Parameters

useDoublePrecisionVertices: boolean

Set to true if the vertices should be stored in double precision

+

Methods

  • Parameters

    • x: number

      X component of new vertex coordinate.

    • y: number

      Y component of new vertex coordinate.

    • z: number

      Z component of new vertex coordinate.

    Returns number

    The index of the newly added vertex.

    Description

    Adds a new vertex to the end of the Vertex list.

    -
  • Returns void

    Description

    Clears the Vertex list on the mesh.

    -
  • Parameters

    • ignoreNormals: boolean

      If true, vertex normals will not be taken into consideration when comparing vertices.

      +
  • Returns void

    Description

    Clears the Vertex list on the mesh.

    +
  • Parameters

    • ignoreNormals: boolean

      If true, vertex normals will not be taken into consideration when comparing vertices.

    • ignoreAdditional: boolean

      If true, texture coordinates, colors, and principal curvatures will not be taken into consideration when comparing vertices.

    Returns boolean

    true if the mesh is changed, in which case the mesh will have fewer vertices than before.

    Description

    Merges identical vertices.

    -
  • Returns number

    The number of unused vertices that were removed.

    +
  • Returns number

    The number of unused vertices that were removed.

    Description

    Removes all vertices that are currently not used by the Face list.

    -
  • Returns void

    Description

    Releases all memory allocated to store faces. The list capacity will be 0 after this call. +

  • Returns void

    Description

    Releases all memory allocated to store faces. The list capacity will be 0 after this call. Subsequent calls can add new items.

    -
  • ...

    -

    Parameters

    • index: number

    Returns number[]

  • Parameters

  • ...

    +

    Parameters

    • index: number

    Returns number[]

  • Parameters

    • vertexIndex: number

      Index of vertex to hide.

    Returns void

    Description

    Hides the vertex at the given index.

    -
  • Returns void

    Description

    Hides all vertices in the mesh.

    -
  • Parameters

  • Returns void

    Description

    Hides all vertices in the mesh.

    +
  • Parameters

    • vertexIndex: number

      Index of vertex to query.

    Returns boolean

    true if the vertex is hidden, false if it is not.

    Description

    Gets a value indicating whether or not a vertex is hidden.

    -
  • ...

    -

    Parameters

    • index: number
    • vertex: number[]

    Returns void

  • ...

    -

    Parameters

    • capacity: number

    Returns void

  • Parameters

  • ...

    +

    Parameters

    • index: number
    • vertex: number[]

    Returns void

  • ...

    +

    Parameters

    • capacity: number

    Returns void

  • Parameters

    • vertexIndex: number

      Index of vertex to show.

    Returns void

    Description

    Shows the vertex at the given index.

    -
  • Returns void

    Description

    Shows all vertices in the mesh.

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/MeshingParameters.html b/docs/javascript/api/classes/MeshingParameters.html index 2992a396c..d295a4526 100644 --- a/docs/javascript/api/classes/MeshingParameters.html +++ b/docs/javascript/api/classes/MeshingParameters.html @@ -1,4 +1,4 @@ -MeshingParameters | rhino3dm

Class MeshingParameters

Constructors

constructor +MeshingParameters | rhino3dm

Class MeshingParameters

Constructors

Properties

closedObjectPostProcess: boolean

Gets or sets a value indicating whether or not to post process non-closed meshes +

Constructors

Properties

closedObjectPostProcess: boolean

Gets or sets a value indicating whether or not to post process non-closed meshes that should be closed. If the Brep being meshed is closed, JaggedSeams = false, and ClosedObjectPostProcess = true, and the resulting mesh is not closed, then a post meshing process is applied to find and close gaps in the mesh. Typically the resulting mesh is not closed because the input Brep has a geometric flaw, like loops in trimming curve.

-
computeCurvature: boolean

Gets or sets a value indicating whether or not surface curvature +

computeCurvature: boolean

Gets or sets a value indicating whether or not surface curvature data will be embedded in the mesh.

-
gridAmplification: number

Gets or sets the grid amplification factor. +

gridAmplification: number

Gets or sets the grid amplification factor. Values lower than 1.0 will decrease the number of initial quads, values higher than 1.0 will increase the number of initial quads.

-
gridAngle: number

Gets or sets the maximum allowed angle difference (in radians) +

gridAngle: number

Gets or sets the maximum allowed angle difference (in radians) for a single sampling quad. The angle pertains to the surface normals.

-
gridAspectRatio: number

Gets or sets the maximum allowed aspect ratio of sampling quads.

-
gridMaxCount: number

Gets or sets the maximum number of grid quads in the initial sampling grid.

-
gridMinCount: number

Gets or sets the minimum number of grid quads in the initial sampling grid.

-
jaggedSeams: boolean

Gets or sets whether or not the mesh is allowed to have jagged seams. +

gridAspectRatio: number

Gets or sets the maximum allowed aspect ratio of sampling quads.

+
gridMaxCount: number

Gets or sets the maximum number of grid quads in the initial sampling grid.

+
gridMinCount: number

Gets or sets the minimum number of grid quads in the initial sampling grid.

+
jaggedSeams: boolean

Gets or sets whether or not the mesh is allowed to have jagged seams. When this flag is set to true, meshes on either side of a Brep Edge will not match up.

-
maximumEdgeLength: number

Gets or sets the maximum allowed mesh edge length.

-
minimumEdgeLength: number

Gets or sets the minimum allowed mesh edge length.

-
minimumTolerance: number

Gets or sets the minimum tolerance.

-
refineAngle: number

Gets or sets the mesh parameter refine angle in radians.

-
refineGrid: boolean

Gets or sets a value indicating whether or not the sampling grid can be refined +

maximumEdgeLength: number

Gets or sets the maximum allowed mesh edge length.

+
minimumEdgeLength: number

Gets or sets the minimum allowed mesh edge length.

+
minimumTolerance: number

Gets or sets the minimum tolerance.

+
refineAngle: number

Gets or sets the mesh parameter refine angle in radians.

+
refineGrid: boolean

Gets or sets a value indicating whether or not the sampling grid can be refined when certain tolerances are not met.

-
relativeTolerance: number

Gets or sets the relative tolerance.

-
simplePlanes: boolean

Gets or sets a value indicating whether or not planar areas are allowed +

relativeTolerance: number

Gets or sets the relative tolerance.

+
simplePlanes: boolean

Gets or sets a value indicating whether or not planar areas are allowed to be meshed in a simplified manner.

-
textureRange: number

Gets or sets how and if textures will be packed.

-
tolerance: number

Gets or sets the maximum allowed edge deviation. +

textureRange: number

Gets or sets how and if textures will be packed.

+
tolerance: number

Gets or sets the maximum allowed edge deviation. This tolerance is measured between the center of the mesh edge and the surface.

-

Methods

Methods

  • Parameters

    • json: object

      A js object in the following format (values are orientative):

          {	TextureRange: 2,
      JaggedSeams: false,
      RefineGrid: true,
      SimplePlanes: false,
      ComputeCurvature: false,
      ClosedObjectPostProcess: false,
      GridMinCount: 0,
      GridMaxCount: 0,
      GridAngle: 0.3490658503988659,
      GridAspectRatio: 6,
      GridAmplification: 1,
      Tolerance: 0,
      MinimumTolerance: 0,
      RelativeTolerance: 0,
      MinimumEdgeLength: 0.0001,
      MaximumEdgeLength: 0,
      RefineAngle: 0.3490658503988659
      }

    Returns MeshingParameters

    Description

    Creates a MeshingParameters object from json data

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/ModelComponent.html b/docs/javascript/api/classes/ModelComponent.html index 706799fb6..6c3abfce7 100644 --- a/docs/javascript/api/classes/ModelComponent.html +++ b/docs/javascript/api/classes/ModelComponent.html @@ -1,4 +1,4 @@ -ModelComponent | rhino3dm

Class ModelComponent

Hierarchy (view full)

Constructors

constructor +ModelComponent | rhino3dm

Class ModelComponent

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

id: string

Gets or sets the ID of the current instance.

-
isSystemComponent: boolean

True if this model component is a system constant. +

isSystemComponent: boolean

True if this model component is a system constant. An incomplete list of system constant model components is below:ON_ModelComponent::Unset ON_InstanceDefinition::Empty ON_Linetype::UnsetON_Linetype::ContinuousON_Linetype::ByLayerON_Linetype::ByParent ON_Layer::UnsetON_Layer::Default ON_TextStyle::UnsetON_TextStyle::DefaultON_TextStyle::ByLayerON_TextStyle::ByParent ON_DimStyle::UnsetON_DimStyle::DefaultON_DimStyle::DefaultInchDecimalON_DimStyle::DefaultInchFractionalON_DimStyle::DefaultFootInchArchitectureON_DimStyle::DefaultMillimeterSmallON_DimStyle::DefaultMillimeterLargeON_DimStyle::DefaultMillimeterArchitecture

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Returns void

    Description

    Resets the HasId property of the model component to false, if possible.

    -
  • Parameters

isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Returns void

    Description

    Resets the HasId property of the model component to false, if possible.

    +
  • Parameters

    • currentRemainder: number

      The current remainder value.

    Returns number

    The updated remainder value.

    Description

    Increments the Cyclic Redundancy Check value by this instance.

    -
  • Parameters

  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Parameters

    • key: string

      id used to retrieve this string.

    • value: string

      string associated with key.

    Returns boolean

    true if successful, false if not.

    Description

    Attach a user string (key,value combination) to this geometry.

    -
  • Parameters

    • json: object

      A json formatted object in the following format (values are orientative):

      {
      version: 10000,
      archive3dm: 60,
      opennurbs: -1877964208,
      data: 'encoded 3dm object data'
      }

    Returns CommonObject

    Description

    Decodes a Rhino Object

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/NurbsCurve.html b/docs/javascript/api/classes/NurbsCurve.html index 4cabdd041..02470d4d2 100644 --- a/docs/javascript/api/classes/NurbsCurve.html +++ b/docs/javascript/api/classes/NurbsCurve.html @@ -1,4 +1,4 @@ -NurbsCurve | rhino3dm

Class NurbsCurve

Hierarchy (view full)

Constructors

constructor +NurbsCurve | rhino3dm

Class NurbsCurve

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

degree: number

Gets the maximum algebraic degree of any span +

Constructors

Properties

degree: number

Gets the maximum algebraic degree of any span or a good estimate if curve spans are not algebraic.

-
dimension: number

Gets the dimension of the object. +

dimension: number

Gets the dimension of the object. The dimension is typically three. For parameter space trimming curves the dimension is two. In rare cases the dimension can be one or greater than three.

-
domain: number[]

Gets or sets the domain of the curve.

-
hasBezierSpans: boolean

Returns true if the NURBS curve has Bezier spans (all distinct knots have multiplicity = degree)

-
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isClosed: boolean

Gets a value indicating whether or not this curve is a closed curve.

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

domain: number[]

Gets or sets the domain of the curve.

+
hasBezierSpans: boolean

Returns true if the NURBS curve has Bezier spans (all distinct knots have multiplicity = degree)

+
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

+
isClosed: boolean

Gets a value indicating whether or not this curve is a closed curve.

+
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isPeriodic: boolean

Gets a value indicating whether or not this curve is considered to be Periodic.

-
isRational: boolean

Gets a value indicating whether or not the curve is rational. +

isPeriodic: boolean

Gets a value indicating whether or not this curve is considered to be Periodic.

+
isRational: boolean

Gets a value indicating whether or not the curve is rational. Rational curves have control-points with custom weights.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
order: number

Gets the order of the curve. Order = Degree + 1.

-
pointAtEnd: number[]

Evaluates point at the end of the curve.

-
pointAtStart: number[]

Evaluates point at the start of the curve.

-
spanCount: number

Gets the number of non-empty smooth (c-infinity) spans in the curve.

-
tangentAtEnd: number[]

Evaluate unit tangent vector at the end of the curve.

-
tangentAtStart: number[]

Evaluates the unit tangent vector at the start of the curve.

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Parameters

order: number

Gets the order of the curve. Order = Degree + 1.

+
pointAtEnd: number[]

Evaluates point at the end of the curve.

+
pointAtStart: number[]

Evaluates point at the start of the curve.

+
spanCount: number

Gets the number of non-empty smooth (c-infinity) spans in the curve.

+
tangentAtEnd: number[]

Evaluate unit tangent vector at the end of the curve.

+
tangentAtStart: number[]

Evaluates the unit tangent vector at the start of the curve.

+
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • t: number

      Curve parameter of new start/end point. The returned curves domain will start at t.

    Returns boolean

    true on success, false on failure.

    Description

    If this curve is closed, then modify it so that the start/end point is at curve parameter t.

    -
  • Parameters

    • desiredDimension: number

      The desired dimension.

    Returns boolean

    true if the curve's dimension was already desiredDimension or if the curve's dimension was successfully changed to desiredDimension; otherwise false.

    Description

    Changes the dimension of a curve.

    -
  • Returns CurveOrientation

    The orientation of this curve with respect to world XY plane.

    Description

    Determines the orientation (counterclockwise or clockwise) of a closed, planar curve in the world XY plane. Only works with simple (no self intersections) closed, planar curves.

    -
  • Parameters

    • plane: Plane

      The plane in which to solve the orientation.

    Returns CurveOrientation

    The orientation of this curve with respect to world XY plane.

    Description

    Determines the orientation (counterclockwise or clockwise) of a closed, planar curve in a given plane. Only works with simple (no self intersections) closed, planar curves.

    -
  • Parameters

    • spanIndex: number

      The span index, where (0 <= spanIndex <= Points.Count - Order).

    Returns BezierCurve

    Bezier curve if successful, null otherwise.

    Description

    Converts a span of the NURBS curve into a Bezier.

    -
  • Parameters

  • Parameters

    • t: number

      Evaluation parameter.

    Returns number[]

    Curvature vector of the curve at the parameter t.

    Description

    Evaluate the curvature vector at a curve parameter.

    -
  • Parameters

    • t: number

      Curve parameter to evaluate.

    • derivativeCount: number

      Number of derivatives to evaluate, must be at least 0.

    Returns number[][]

    An array of vectors that represents all the derivatives starting at zero.

    Description

    Evaluate the derivatives at the specified curve parameter.

    -
  • Parameters

    • t: number

      Curve parameter to evaluate.

    • derivativeCount: number

      Number of derivatives to evaluate, must be at least 0.

    • side: CurveEvaluationSide

      Side of parameter to evaluate. If the parameter is at a kink, it makes a big difference whether the evaluation is from below or above.

    Returns void

    An array of vectors that represents all the derivatives starting at zero.

    Description

    Evaluate the derivatives at the specified curve parameter.

    -
  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/NurbsCurveKnotList.html b/docs/javascript/api/classes/NurbsCurveKnotList.html index 3fb4c1957..462936765 100644 --- a/docs/javascript/api/classes/NurbsCurveKnotList.html +++ b/docs/javascript/api/classes/NurbsCurveKnotList.html @@ -1,4 +1,4 @@ -NurbsCurveKnotList | rhino3dm

Class NurbsCurveKnotList

Constructors

constructor +NurbsCurveKnotList | rhino3dm

Class NurbsCurveKnotList

Constructors

Properties

Constructors

Properties

count: number

Total number of knots in this curve.

-
isClampedEnd: boolean

Gets a value indicating whether or not the knot vector is clamped at the end of the curve. +

isClampedEnd: boolean

Gets a value indicating whether or not the knot vector is clamped at the end of the curve. Clamped curves are coincident with the first and last control-point. This requires fully multiple knots.

-
isClampedStart: boolean

Gets a value indicating whether or not the knot vector is clamped at the start of the curve. +

isClampedStart: boolean

Gets a value indicating whether or not the knot vector is clamped at the start of the curve. Clamped curves start at the first control-point. This requires fully multiple knots.

-

Methods

  • Parameters

Methods

  • Parameters

    • knotSpacing: number

      Spacing of subsequent knots.

    Returns boolean

    true on success, false on failure.

    Description

    Compute a clamped, uniform, periodic knot vector based on the current degree and control point count. Does not change values of control vertices.

    -
  • Parameters

  • Parameters

    • knotSpacing: number

      Spacing of subsequent knots.

    Returns boolean

    true on success, false on failure.

    Description

    Compute a clamped, uniform knot vector based on the current degree and control point count. Does not change values of control vertices.

    -
  • Parameters

  • Parameters

    • value: number

      Knot value to insert.

    Returns boolean

    true on success, false on failure.

    Description

    Inserts a knot and update control point locations. Does not change parameterization or locus of curve.

    -
  • Parameters

  • Parameters

    • index: number

      Index of knot to query.

    Returns number

    The multiplicity (valence) of the knot.

    Description

    Get knot multiplicity.

    -
  • ...

    -

    Parameters

    • index: number
    • knot: number

    Returns void

  • Parameters

    • start: boolean

      true if the query targets the first knot. Otherwise, the last knot.

      +
  • ...

    +

    Parameters

    • index: number
    • knot: number

    Returns void

  • Parameters

    • start: boolean

      true if the query targets the first knot. Otherwise, the last knot.

    Returns number

    A component.

    Description

    Computes the knots that are superfluous because they are not used in NURBs evaluation. These make it appear so that the first and last curve spans are different from interior spans. http://wiki.mcneel.com/developer/onsuperfluousknot

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/NurbsCurvePointList.html b/docs/javascript/api/classes/NurbsCurvePointList.html index e68382983..a0a02c608 100644 --- a/docs/javascript/api/classes/NurbsCurvePointList.html +++ b/docs/javascript/api/classes/NurbsCurvePointList.html @@ -1,4 +1,4 @@ -NurbsCurvePointList | rhino3dm

Class NurbsCurvePointList

Constructors

constructor +NurbsCurvePointList | rhino3dm

Class NurbsCurvePointList

Constructors

Properties

Methods

changeEndWeights @@ -7,15 +7,15 @@ makeRational set

Constructors

Properties

controlPolygonLength: number

Gets the length of the polyline connecting all control points.

-
count: number

Gets the number of control points in this curve.

-

Methods

  • Parameters

count: number

Gets the number of control points in this curve.

+

Methods

  • Parameters

    • w0: number

      Weight for first control point.

    • w1: number

      Weight for last control point.

    Returns boolean

    true on success, false on failure.

    Description

    Use a combination of scaling and reparameterization to change the end weights to the specified values.

    -
  • ...

    -

    Parameters

    • index: number

    Returns number[]

  • Returns boolean

    true on success, false on failure.

    +
  • ...

    +

    Parameters

    • index: number

    Returns number[]

  • Returns boolean

    true on success, false on failure.

    Description

    Converts the curve to a Non-rational NURBS curve. Non-rational curves have unweighted control points.

    -
  • Returns boolean

    true on success, false on failure.

    +
  • Returns boolean

    true on success, false on failure.

    Description

    Converts the curve to a Rational NURBS curve. Rational NURBS curves have weighted control points.

    -
  • ...

    -

    Parameters

    • index: number
    • point: number[]

    Returns void

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/NurbsSurface.html b/docs/javascript/api/classes/NurbsSurface.html index 18d359af0..ac7dcfaeb 100644 --- a/docs/javascript/api/classes/NurbsSurface.html +++ b/docs/javascript/api/classes/NurbsSurface.html @@ -1,4 +1,4 @@ -NurbsSurface | rhino3dm

Class NurbsSurface

Hierarchy (view full)

Constructors

constructor +NurbsSurface | rhino3dm

Class NurbsSurface

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isRational: boolean

Gets a value indicating whether or not the NURBS surface is rational.

-
isSolid: boolean

Gets a values indicating whether a surface is solid.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isRational: boolean

Gets a value indicating whether or not the NURBS surface is rational.

+
isSolid: boolean

Gets a values indicating whether a surface is solid.

+
isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
orderU: number

Gets the order in the U direction.

-
orderV: number

Gets the order in the V direction.

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Parameters

orderU: number

Gets the order in the U direction.

+
orderV: number

Gets the order in the V direction.

+
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • direction: number

      0 gets first parameter's domain, 1 gets second parameter's domain.

    Returns number

    The maximum degree.

    Description

    Returns the maximum algebraic degree of any span (or a good estimate if curve spans are not algebraic).

    -
  • Parameters

  • Parameters

    • direction: number

      0 gets first parameter, 1 gets second parameter.

    Returns number[]

    An interval value.

    Description

    Gets the domain in a direction.

    -
  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
  • Parameters

    • u: number

      A first parameter.

    • v: number

      A second parameter.

    Returns object

    [boolean, Plane] (boolean) true if this operation succeeded; otherwise false. (Plane) A frame plane that will be computed during this call.

    Description

    Computes the orient plane on a surface given a U and V parameter. This is the simple evaluation call with no error handling.

    -
  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -95,69 +95,69 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

  • Parameters

    • surfaceS: number

      The parameter in the S, or sometimes U, direction, of this surface.

    • surfaceT: number

      The parameter in the T, or sometimes V, direction of this surface.

    Returns object

    [boolean, number, number] (boolean) True if the operation succeeded; otherwise, false. (number) S on the NURBS form. (number) T on the NURBS form.

    Description

    Translates a parameter from the current surface to the parameter space of the surface returned by .

    -
  • Parameters

    • direction: number

      0 gets first parameter's domain, 1 gets second parameter's domain.

    Returns number[]

    An array with span vectors; or null on error.

    Description

    Gets array of span "knots".

    -
  • Parameters

  • Parameters

    • nurbsS: number

      The parameter in the S, or sometimes U, direction of the NURBS form surface.

    • nurbsT: number

      The parameter in the T, or sometimes V, direction of the NURBS form surface.

    Returns object

    [boolean, number, number] (boolean) True if the operation succeeded; otherwise, false. (number) S on this surface. (number) T o n this surface.

    Description

    Translates a parameter from a value on the surface returned by to the current surface.

    -
  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns string[]

    Description

    Gets a copy of all (user key string, user value string) pairs attached to this geometry.

    -
  • Returns string[]

    Description

    Gets a copy of all (user key string, user value string) pairs attached to this geometry.

    +
  • Parameters

    • desiredDegree: number

      The desired degree. Degrees should be number between and including 1 and 11.

    Returns boolean

    true on success, false on failure.

    Description

    Increase the degree of this surface in U direction.

    -
  • Parameters

  • Parameters

    • desiredDegree: number

      The desired degree. Degrees should be number between and including 1 and 11.

    Returns boolean

    true on success, false on failure.

    Description

    Increase the degree of this surface in V direction.

    -
  • Parameters

  • Parameters

    • u: number

      Surface u parameter to test.

    • v: number

      Surface v parameter to test.

    Returns number

    0 if not a seam, 1 if u == Domain(0)[i] and srf(u, v) == srf(Domain(0)[1-i], v) 2 if v == Domain(1)[i] and srf(u, v) == srf(u, Domain(1)[1-i]) 3 if 1 and 2 are true.

    Description

    Tests if a surface parameter value is at a seam.

    -
  • Parameters

    • u: number

      Surface u parameter to test.

    • v: number

      Surface v parameter to test.

    • exact: boolean

      If true, test if (u,v) is exactly at a singularity. If false, test if close enough to cause numerical problems.

    Returns boolean

    true if surface is singular at (s,t)

    Description

    Tests if a surface parameter value is at a singularity.

    -
  • Parameters

    • direction: number

      0 = U, 1 = V.

    Returns boolean

    The indicating boolean value.

    Description

    Gets a value indicating if the surface is closed in a direction.

    -
  • Returns boolean

    true if the surface is a portion of a cone.

    +
  • Returns boolean

    true if the surface is a portion of a cone.

    Description

    Determines if the surface is a portion of a cone within RhinoMath.ZeroTolerance.

    -
  • Returns boolean

    true if the surface is a portion of a cylinder.

    +
  • Returns boolean

    true if the surface is a portion of a cylinder.

    Description

    Determines if the surface is a portion of a cylinder within RhinoMath.ZeroTolerance.

    -
  • Parameters

    • direction: number

      0 = U, 1 = V.

    Returns boolean

    The indicating boolean value.

    Description

    Gets a value indicating if the surface is periodic in a direction (default is false).

    -
  • Returns boolean

    true if the surface is planar (flat) to within RhinoMath.ZeroTolerance units (1e-12).

    +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/NurbsSurfaceKnotList.html b/docs/javascript/api/classes/NurbsSurfaceKnotList.html index 402e812e3..93e593cff 100644 --- a/docs/javascript/api/classes/NurbsSurfaceKnotList.html +++ b/docs/javascript/api/classes/NurbsSurfaceKnotList.html @@ -1,4 +1,4 @@ -NurbsSurfaceKnotList | rhino3dm

Class NurbsSurfaceKnotList

Constructors

constructor +NurbsSurfaceKnotList | rhino3dm

Class NurbsSurfaceKnotList

Constructors

Properties

Constructors

Properties

count: number

Gets the total number of knots in this curve.

-
isClampedEnd: boolean
isClampedStart: boolean

Methods

  • Parameters

isClampedEnd: boolean
isClampedStart: boolean

Methods

  • Parameters

    • knotSpacing: number

      Spacing of subsequent knots.

    Returns boolean

    true on success, false on failure.

    Description

    Compute a clamped, uniform, periodic knot vector based on the current degree and control point count. Does not change values of control vertices.

    -
  • Parameters

  • Parameters

    • knotSpacing: number

      Spacing of subsequent knots.

    Returns boolean

    true on success, false on failure.

    Description

    Compute a clamped, uniform knot vector based on the current degree and control point count. Does not change values of control vertices.

    -
  • Parameters

  • Parameters

    • value: number

      Knot value to insert.

    Returns boolean

    true on success, false on failure.

    Description

    Inserts a knot and update control point locations. Does not change parameterization or locus of curve.

    -
  • Parameters

  • Parameters

    • index: number

      Index of knot to query.

    Returns number

    The multiplicity (valence) of the knot.

    Description

    Get knot multiplicity.

    -
  • ...

    -

    Parameters

    • index: number
    • knot: number

    Returns void

  • Parameters

    • start: boolean

      true if the query targets the first knot. Otherwise, the last knot.

      +
  • ...

    +

    Parameters

    • index: number
    • knot: number

    Returns void

  • Parameters

    • start: boolean

      true if the query targets the first knot. Otherwise, the last knot.

    Returns number

    A component.

    Description

    Computes the knots that are superfluous because they are not used in NURBs evaluation. These make it appear so that the first and last surface spans are different from interior spans. http://wiki.mcneel.com/developer/onsuperfluousknot

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/NurbsSurfacePointList.html b/docs/javascript/api/classes/NurbsSurfacePointList.html index 49e4cfc26..243a9bdd7 100644 --- a/docs/javascript/api/classes/NurbsSurfacePointList.html +++ b/docs/javascript/api/classes/NurbsSurfacePointList.html @@ -1,4 +1,4 @@ -NurbsSurfacePointList | rhino3dm

Class NurbsSurfacePointList

Constructors

constructor +NurbsSurfacePointList | rhino3dm

Class NurbsSurfacePointList

Constructors

Properties

Constructors

Properties

count: number
countU: number

Gets the number of control points in the U direction of this surface.

-
countV: number

Gets the number of control points in the V direction of this surface.

-

Methods

  • Parameters

    • u: number

      Index of control point in the surface U direction.

      +

Constructors

Properties

count: number
countU: number

Gets the number of control points in the U direction of this surface.

+
countV: number

Gets the number of control points in the V direction of this surface.

+

Methods

  • Parameters

    • u: number

      Index of control point in the surface U direction.

    • v: number

      Index of control point in the surface V direction.

    Returns number[]

    [boolean, number[]] (boolean) true on success, false on failure. (number[]) Coordinate of control point.

    Description

    Gets a world 3-D, or Euclidean, control point at the given (u, v) index. The 4-D representation is (x, y, z, 1.0).

    -
  • Parameters

    • uv: number[]

      Index of control point in the surface U and V direction.

      +
  • Parameters

    • uv: number[]

      Index of control point in the surface U and V direction.

    Returns number[]

    [boolean, number[]] (boolean) true on success, false on failure. (number[]) Coordinate of control point.

    Description

    Gets a world 3-D, or Euclidean, control point at the given (u, v) index. The 4-D representation is (x, y, z, 1.0).

    -
  • ...

    -

    Parameters

    • u: number
    • v: number
    • point: number[]

    Returns void

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/ObjectAttributes.html b/docs/javascript/api/classes/ObjectAttributes.html index 4581aa150..26c668e6c 100644 --- a/docs/javascript/api/classes/ObjectAttributes.html +++ b/docs/javascript/api/classes/ObjectAttributes.html @@ -1,4 +1,4 @@ -ObjectAttributes | rhino3dm

Class ObjectAttributes

Hierarchy (view full)

Constructors

constructor +ObjectAttributes | rhino3dm

Class ObjectAttributes

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

activeSpace: ActiveSpace
castsShadows: boolean

Gets or sets an object's casts shadows property, or whether or not an object casts shadows on other objects and a ground plane.

-
colorSource: ObjectColorSource

The color used to display an object is specified in one of three ways. +

Constructors

Properties

activeSpace: ActiveSpace
castsShadows: boolean

Gets or sets an object's casts shadows property, or whether or not an object casts shadows on other objects and a ground plane.

+
colorSource: ObjectColorSource

The color used to display an object is specified in one of three ways. If ColorSource is ON::color_from_layer, then the object's layer ON_Layer::Color() is used. If ColorSource is ON::color_from_object, then value of m_color is used. If ColorSource is ON::color_from_material, then the diffuse color of the object's render material is used. See ON_3dmObjectAttributes::MaterialSource() to determine where to get the definition of the object's render material.

-
displayOrder: number

Display order used to force objects to be drawn on top or behind each other. +

displayOrder: number

Display order used to force objects to be drawn on top or behind each other. Larger numbers draw on top of smaller numbers. 0 = draw object in standard depth buffered order<0 = draw object behind "normal" draw order objects>0 = draw object on top of "normal" draw order objects

-
groupCount: number

number of groups object belongs to.

-
id: string
isInstanceDefinitionObject: boolean

Use this query to determine if an object is part of an instance definition.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
layerIndex: number

Gets or sets an associated layer index. +

groupCount: number

number of groups object belongs to.

+
id: string
isInstanceDefinitionObject: boolean

Use this query to determine if an object is part of an instance definition.

+
isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
layerIndex: number

Gets or sets an associated layer index. Layer definitions in an OpenNURBS model are stored in a layer table. The layer table is conceptually an array of ON_Layer classes. Every OpenNURBS object in a model is on some layer. The object's layer is specified by zero based indices into the ON_Layer array.

-
linetypeSource: ObjectLinetypeSource

The Linetype used to display an object is specified in one of two ways. +

linetypeSource: ObjectLinetypeSource

The Linetype used to display an object is specified in one of two ways. If LinetypeSource is ON::linetype_from_layer, then the object's layer ON_Layer::Linetype() is used. If LinetypeSource is ON::linetype_from_object, then value of m_linetype is used.

-
materialIndex: number

Gets or sets the material index. +

materialIndex: number

Gets or sets the material index. If you want something simple and fast, set the index of the rendering material.

-
materialSource: ObjectMaterialSource

Determines if the simple material should come from the object or from it's layer. +

materialSource: ObjectMaterialSource

Determines if the simple material should come from the object or from it's layer. High quality rendering plug-ins should use m_rendering_attributes.

-

An object must be in one of three modes: normal, locked or hidden. +

An object must be in one of three modes: normal, locked or hidden. If an object is in normal mode, then the object's layer controls visibility and selectability. If an object is locked, then the object's layer controls visibility by the object cannot be selected. If the object is hidden, it is not visible and it cannot be selected.

-
name: string

Gets or sets an object optional text name. +

name: string

Gets or sets an object optional text name. More than one object in a model can have the same name and some objects may have no name.

-
objectColor: object

If ON::color_from_object == ColorSource, then color is the object's display color in js object format: {r:number, g:number, b:number)} where number is from 0 - 255

-
objectDecoration: ObjectDecoration

Used to indicate an object has a decoration (like an arrowhead on a curve)

-
plotColor: object

If plot_color_from_object == PlotColorSource, then PlotColor is the object's plotting color in js object format: {r:number, g:number, b:number)} where number is from 0 - 255

-
plotColorSource: ObjectPlotColorSource

The color used to plot an object on paper is specified in one of three ways. +

objectColor: object

If ON::color_from_object == ColorSource, then color is the object's display color in js object format: {r:number, g:number, b:number)} where number is from 0 - 255

+
objectDecoration: ObjectDecoration

Used to indicate an object has a decoration (like an arrowhead on a curve)

+
plotColor: object

If plot_color_from_object == PlotColorSource, then PlotColor is the object's plotting color in js object format: {r:number, g:number, b:number)} where number is from 0 - 255

+
plotColorSource: ObjectPlotColorSource

The color used to plot an object on paper is specified in one of three ways. If PlotColorSource is ON::plot_color_from_layer, then the object's layer ON_Layer::PlotColor() is used. If PlotColorSource is ON::plot_color_from_object, then value of PlotColor() is used.

-
plotWeight: number

Plot weight in millimeters. +

plotWeight: number

Plot weight in millimeters. =0.0 means use the default width <0.0 means don't plot (visible for screen display, but does not show on plot)

-
plotWeightSource: ObjectPlotWeightSource
receivesShadows: boolean

Gets or sets an object's receives shadows property, or whether or not an object receives shadows from other objects.

-
url: string

Objects may have an URL. There are no restrictions on what value this +

plotWeightSource: ObjectPlotWeightSource
receivesShadows: boolean

Gets or sets an object's receives shadows property, or whether or not an object receives shadows from other objects.

+
url: string

Objects may have an URL. There are no restrictions on what value this URL may have. As an example, if the object came from a commercial part library, the URL might point to the definition of that part.

-
userStringCount: number

Gets the amount of user strings.

-
viewportId: string

If ViewportId is nil, the object is active in all viewports. If ViewportId is not nil, then +

userStringCount: number

Gets the amount of user strings.

+
viewportId: string

If ViewportId is nil, the object is active in all viewports. If ViewportId is not nil, then this object is only active in a specific view. This field is primarily used to assign page space objects to a specific page, but it can also be used to restrict model space to a specific view.

-
visible: boolean

Gets or sets an object's visibility.

-
wireDensity: number

When a surface object is displayed in wireframe, this controls +

visible: boolean

Gets or sets an object's visibility.

+
wireDensity: number

When a surface object is displayed in wireframe, this controls how many isoparametric wires are used. value number of isoparametric wires -1 boundary wires (off) 0 boundary and knot wires 1 boundary and knot wires and, if there are no interior knots, a single interior wire. N>=2 boundary and knot wires and (N+1) interior wires.

-

Methods

  • Parameters

Methods

  • Parameters

    • groupIndex: number

      The index that will be added.

    Returns void

    Description

    Adds object to the group with specified index by appending index to group list. If the object is already in group, nothing is changed.

    -
  • Returns number[]

    An array of group indices. null might be returned in place of an empty array.

    +
  • Returns number[]

    An array of group indices. null might be returned in place of an empty array.

    Description

    Returns an array of GroupCount group indices. If GroupCount is zero, then GetGroupList() returns null.

    -
  • Parameters

  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Parameters

    • viewportId: string

      Id of a Rhino Viewport.

    Returns boolean

    true if the object has a display mode override for the viewport; otherwise, false.

    Description

    Determines if an object has a display mode override for a given viewport.

    -
  • Returns void

    Description

    Removes object from all groups.

    -
  • Parameters

  • Returns void

    Description

    Removes object from all groups.

    +
  • Parameters

    • groupIndex: number

      The index that will be removed.

    Returns void

    Description

    removes object from the group with specified index. If the object is not in the group, nothing is changed.

    -
  • Parameters

  • Parameters

    • key: string

      id used to retrieve this string.

    • value: string

      string associated with key.

    Returns boolean

    true if successful, false if not.

    Description

    Attach a user string (key,value combination) to this geometry.

    -
  • Parameters

    Returns boolean

    true if successful, false otherwise.

    Description

    Apply a transformation.

    -
  • Parameters

    • json: object

      A json formatted object in the following format (values are orientative):

      +
  • Parameters

    • json: object

      A json formatted object in the following format (values are orientative):

      {
      version: 10000,
      archive3dm: 60,
      opennurbs: -1877964208,
      data: 'encoded 3dm object data'
      }

    Returns CommonObject

    Description

    Decodes a Rhino Object

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/PhysicallyBasedMaterial.html b/docs/javascript/api/classes/PhysicallyBasedMaterial.html index c6f3360ed..8fd2ec4e5 100644 --- a/docs/javascript/api/classes/PhysicallyBasedMaterial.html +++ b/docs/javascript/api/classes/PhysicallyBasedMaterial.html @@ -1,4 +1,4 @@ -PhysicallyBasedMaterial | rhino3dm

Class PhysicallyBasedMaterial

Constructors

constructor +PhysicallyBasedMaterial | rhino3dm

Class PhysicallyBasedMaterial

Constructors

Properties

anisotropic: number
anisotropicRotation: number
baseColor: object

Color in js format: {r:number,g:number,b:number,a:number} where number is 0.00 - 1.00

-
clearcoat: number
clearcoatRoughness: number
emissionColor: object
    +

Constructors

Properties

anisotropic: number
anisotropicRotation: number
baseColor: object

Color in js format: {r:number,g:number,b:number,a:number} where number is 0.00 - 1.00

+
clearcoat: number
clearcoatRoughness: number
emissionColor: object
  • Color in js format: {r:number,g:number,b:number,a:number} where number is 0.00 - 1.00
-
metallic: number
opacity: number
opacityIOR: number
opacityRoughness: number
reflectiveIOR: number
roughness: number
sheen: number
sheenTint: number
specular: number
specularTint: number
subsurface: number
subsurfaceScatteringColor: object
    +
metallic: number
opacity: number
opacityIOR: number
opacityRoughness: number
reflectiveIOR: number
roughness: number
sheen: number
sheenTint: number
specular: number
specularTint: number
subsurface: number
subsurfaceScatteringColor: object
  • Color in js format: {r:number,g:number,b:number,a:number} where number is 0.00 - 1.00
-
subsurfaceScatteringRadius: number
supported: boolean

Generated using TypeDoc

\ No newline at end of file +
subsurfaceScatteringRadius: number
supported: boolean

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Plane.html b/docs/javascript/api/classes/Plane.html index 60901ac57..9a66e4901 100644 --- a/docs/javascript/api/classes/Plane.html +++ b/docs/javascript/api/classes/Plane.html @@ -1,4 +1,4 @@ -Plane | rhino3dm

Class Plane

Constructors

constructor +Plane | rhino3dm

Class Plane

Constructors

Methods

Constructors

Methods

Generated using TypeDoc

\ No newline at end of file +

Returns Plane

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/PlaneSurface.html b/docs/javascript/api/classes/PlaneSurface.html index a05adbf13..f82877126 100644 --- a/docs/javascript/api/classes/PlaneSurface.html +++ b/docs/javascript/api/classes/PlaneSurface.html @@ -1,4 +1,4 @@ -PlaneSurface | rhino3dm

Class PlaneSurface

Hierarchy (view full)

Constructors

constructor +PlaneSurface | rhino3dm

Class PlaneSurface

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isSolid: boolean

Gets a values indicating whether a surface is solid.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isSolid: boolean

Gets a values indicating whether a surface is solid.

+
isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Parameters

userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • direction: number

      0 gets first parameter's domain, 1 gets second parameter's domain.

    Returns number

    The maximum degree.

    Description

    Returns the maximum algebraic degree of any span (or a good estimate if curve spans are not algebraic).

    -
  • Parameters

  • Parameters

    • direction: number

      0 gets first parameter, 1 gets second parameter.

    Returns number[]

    An interval value.

    Description

    Gets the domain in a direction.

    -
  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
  • Parameters

    • u: number

      A first parameter.

    • v: number

      A second parameter.

    Returns object

    [boolean, Plane] (boolean) true if this operation succeeded; otherwise false. (Plane) A frame plane that will be computed during this call.

    Description

    Computes the orient plane on a surface given a U and V parameter. This is the simple evaluation call with no error handling.

    -
  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -77,61 +77,61 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

  • Parameters

    • surfaceS: number

      The parameter in the S, or sometimes U, direction, of this surface.

    • surfaceT: number

      The parameter in the T, or sometimes V, direction of this surface.

    Returns object

    [boolean, number, number] (boolean) True if the operation succeeded; otherwise, false. (number) S on the NURBS form. (number) T on the NURBS form.

    Description

    Translates a parameter from the current surface to the parameter space of the surface returned by .

    -
  • Parameters

    • direction: number

      0 gets first parameter's domain, 1 gets second parameter's domain.

    Returns number[]

    An array with span vectors; or null on error.

    Description

    Gets array of span "knots".

    -
  • Parameters

  • Parameters

    • nurbsS: number

      The parameter in the S, or sometimes U, direction of the NURBS form surface.

    • nurbsT: number

      The parameter in the T, or sometimes V, direction of the NURBS form surface.

    Returns object

    [boolean, number, number] (boolean) True if the operation succeeded; otherwise, false. (number) S on this surface. (number) T o n this surface.

    Description

    Translates a parameter from a value on the surface returned by to the current surface.

    -
  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns string[]

    Description

    Gets a copy of all (user key string, user value string) pairs attached to this geometry.

    -
  • Returns string[]

    Description

    Gets a copy of all (user key string, user value string) pairs attached to this geometry.

    +
  • Parameters

    • u: number

      Surface u parameter to test.

    • v: number

      Surface v parameter to test.

    Returns number

    0 if not a seam, 1 if u == Domain(0)[i] and srf(u, v) == srf(Domain(0)[1-i], v) 2 if v == Domain(1)[i] and srf(u, v) == srf(u, Domain(1)[1-i]) 3 if 1 and 2 are true.

    Description

    Tests if a surface parameter value is at a seam.

    -
  • Parameters

    • u: number

      Surface u parameter to test.

    • v: number

      Surface v parameter to test.

    • exact: boolean

      If true, test if (u,v) is exactly at a singularity. If false, test if close enough to cause numerical problems.

    Returns boolean

    true if surface is singular at (s,t)

    Description

    Tests if a surface parameter value is at a singularity.

    -
  • Parameters

    • direction: number

      0 = U, 1 = V.

    Returns boolean

    The indicating boolean value.

    Description

    Gets a value indicating if the surface is closed in a direction.

    -
  • Returns boolean

    true if the surface is a portion of a cone.

    +
  • Returns boolean

    true if the surface is a portion of a cone.

    Description

    Determines if the surface is a portion of a cone within RhinoMath.ZeroTolerance.

    -
  • Returns boolean

    true if the surface is a portion of a cylinder.

    +
  • Returns boolean

    true if the surface is a portion of a cylinder.

    Description

    Determines if the surface is a portion of a cylinder within RhinoMath.ZeroTolerance.

    -
  • Parameters

    • direction: number

      0 = U, 1 = V.

    Returns boolean

    The indicating boolean value.

    Description

    Gets a value indicating if the surface is periodic in a direction (default is false).

    -
  • Returns boolean

    true if the surface is planar (flat) to within RhinoMath.ZeroTolerance units (1e-12).

    +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Point.html b/docs/javascript/api/classes/Point.html index 876b3dc59..7ffeafeb3 100644 --- a/docs/javascript/api/classes/Point.html +++ b/docs/javascript/api/classes/Point.html @@ -1,4 +1,4 @@ -Point | rhino3dm

Class Point

Hierarchy (view full)

Constructors

constructor +Point | rhino3dm

Class Point

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

Constructors

Properties

hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

+
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
location: number[]

Gets or sets the location (position) of this point.

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
location: number[]

Gets or sets the location (position) of this point.

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -40,40 +40,40 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns boolean

    false if object cannot be converted to a deformable object. true if object was +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Point3d.html b/docs/javascript/api/classes/Point3d.html index 0e5e7a43b..4844430a9 100644 --- a/docs/javascript/api/classes/Point3d.html +++ b/docs/javascript/api/classes/Point3d.html @@ -1,6 +1,6 @@ -Point3d | rhino3dm

Class Point3d

Constructors

constructor +Point3d | rhino3dm

Class Point3d

Constructors

Methods

Constructors

Methods

  • Parameters

    Returns void

    Description

    Transforms the present point in place. The transformation matrix acts on the left of the point. i.e., result = transformation*point

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Point3dList.html b/docs/javascript/api/classes/Point3dList.html index 85e20ddac..5cb503449 100644 --- a/docs/javascript/api/classes/Point3dList.html +++ b/docs/javascript/api/classes/Point3dList.html @@ -1,4 +1,4 @@ -Point3dList | rhino3dm

Class Point3dList

Hierarchy (view full)

Constructors

constructor +Point3dList | rhino3dm

Class Point3dList

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

boundingBox: BoundingBox

Even though this is a property, it is not a "fast" calculation. Every point is +

Constructors

Properties

boundingBox: BoundingBox

Even though this is a property, it is not a "fast" calculation. Every point is evaluated in order to get the bounding box of the list.

-
capacity: number
count: number

Methods

capacity: number
count: number

Methods

  • Parameters

    • x: number

      The X coordinate.

    • y: number

      The Y coordinate.

    • z: number

      The Z coordinate.

    Returns void

    Description

    Adds a Point3d to the end of the list with given x,y,z coordinates.

    -
  • Parameters

  • Parameters

    • points: number[][]

      Points to add.

    Returns void

    Description

    Add a range of points to the list.

    -
  • ...

    -

    Parameters

    • index: number

    Returns number[]

  • ...

    -

    Parameters

    • index: number
    • point: number[]

    Returns void

  • ...

    -

    Parameters

    • index: number

    Returns void

  • ...

    -

    Parameters

    • index: number
    • point: number[]

    Returns void

  • Parameters

    • xValue: number

    Returns void

    Description

    Set all the X values for the points to a single value

    -
  • Parameters

    • yValue: number

    Returns void

    Description

    Set all the Y values for the points to a single value

    -
  • Returns void

    Description

    Set all the Z values for the points to a single value

    -
  • ...

    +

    Parameters

    • index: number

    Returns number[]

  • ...

    +

    Parameters

    • index: number
    • point: number[]

    Returns void

  • ...

    +

    Parameters

    • index: number

    Returns void

  • ...

    +

    Parameters

    • index: number
    • point: number[]

    Returns void

  • Parameters

    • xValue: number

    Returns void

    Description

    Set all the X values for the points to a single value

    +
  • Parameters

    • yValue: number

    Returns void

    Description

    Set all the Y values for the points to a single value

    +
  • Returns void

    Description

    Set all the Z values for the points to a single value

    +
  • Parameters

    Returns void

    Description

    Applies a transform to all the points in the list.

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/PointCloud.html b/docs/javascript/api/classes/PointCloud.html index ad09a0674..e224ed6e6 100644 --- a/docs/javascript/api/classes/PointCloud.html +++ b/docs/javascript/api/classes/PointCloud.html @@ -1,4 +1,4 @@ -PointCloud | rhino3dm

Class PointCloud

Hierarchy (view full)

Constructors

constructor +PointCloud | rhino3dm

Class PointCloud

Hierarchy (view full)

Constructors

Properties

containsColors: boolean

Gets a value indicating whether or not the points in this point cloud have colors assigned to them.

-
containsHiddenFlags: boolean

Gets a value indicating whether or not the points in this +

containsHiddenFlags: boolean

Gets a value indicating whether or not the points in this point cloud have hidden flags assigned to them.

-
containsNormals: boolean

Gets a value indicating whether or not the points in this +

containsNormals: boolean

Gets a value indicating whether or not the points in this point cloud have normals assigned to them.

-
containsValues: boolean
count: number

Gets the number of points in this point cloud.

-
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
hiddenPointCount: number

Gets the number of points that have their Hidden flag set.

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

containsValues: boolean
count: number

Gets the number of points in this point cloud.

+
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

+
hiddenPointCount: number

Gets the number of points that have their Hidden flag set.

+
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
userStringCount: number

Gets the amount of user strings.

-

Methods

userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • point: number[]

      Point to append.

    Returns void

    Description

    Append a new point to the end of the list.

    -
  • ...

    -

    Parameters

    • point: number[]
    • color: object

    Returns void

  • ...

    -

    Parameters

    • point: number[]
    • normal: number[]

    Returns void

  • ...

    -

    Parameters

    • point: number[]
    • normal: number[]
    • color: object

    Returns void

  • ...

    -

    Parameters

    • point: number[]
    • normal: number[]
    • color: object
    • value: number

    Returns void

  • ...

    -

    Parameters

    • point: number[]
    • value: number

    Returns void

  • Parameters

  • ...

    +

    Parameters

    • point: number[]
    • color: object

    Returns void

  • ...

    +

    Parameters

    • point: number[]
    • normal: number[]

    Returns void

  • ...

    +

    Parameters

    • point: number[]
    • normal: number[]
    • color: object

    Returns void

  • ...

    +

    Parameters

    • point: number[]
    • normal: number[]
    • color: object
    • value: number

    Returns void

  • ...

    +

    Parameters

    • point: number[]
    • value: number

    Returns void

  • Parameters

    • points: number[][]

      Points to append.

    Returns void

    Description

    Appends a collection of points to this point cloud.

    -
  • ...

    -

    Parameters

    • points: number[][]
    • colors: object[]

    Returns void

  • ...

    -

    Parameters

    • points: number[][]
    • normals: number[][]

    Returns void

  • ...

    -

    Parameters

    • points: number[][]
    • normals: number[][]
    • colors: object[]

    Returns void

  • ...

    -

    Parameters

    • points: number[][]
    • normals: number[][]
    • colors: object[]
    • values: number[]

    Returns void

  • ...

    -

    Parameters

    • points: number[][]
    • values: number[]

    Returns void

  • ...

    +

    Parameters

    • points: number[][]
    • colors: object[]

    Returns void

  • ...

    +

    Parameters

    • points: number[][]
    • normals: number[][]

    Returns void

  • ...

    +

    Parameters

    • points: number[][]
    • normals: number[][]
    • colors: object[]

    Returns void

  • ...

    +

    Parameters

    • points: number[][]
    • normals: number[][]
    • colors: object[]
    • values: number[]

    Returns void

  • ...

    +

    Parameters

    • points: number[][]
    • values: number[]

    Returns void

  • Returns void

    Description

    Destroys the color information in this point cloud.

    -
  • Returns void

    Description

    Destroys the hidden flag information in this point cloud.

    -
  • Returns void

    Description

    Destroys the normal vector information in this point cloud.

    -
  • Parameters

  • Returns void

    Description

    Destroys the color information in this point cloud.

    +
  • Returns void

    Description

    Destroys the hidden flag information in this point cloud.

    +
  • Returns void

    Description

    Destroys the normal vector information in this point cloud.

    +
  • Parameters

    • testPoint: number[]

      .

    Returns number

    Index of point in the point cloud on success. -1 on failure.

    Description

    Returns index of the closest point in the point cloud to a given test point.

    -
  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -107,69 +108,70 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Returns object[]

    An array containing all the colors in this point cloud.

    +
  • Returns object[]

    An array containing all the colors in this point cloud.

    Description

    Copy all the point colors in this point cloud to an array.

    -
  • Returns number[][]

    An array containing all the normals in this point cloud.

    +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/PointCloudItem.html b/docs/javascript/api/classes/PointCloudItem.html index 1e3bac8ea..a8de80095 100644 --- a/docs/javascript/api/classes/PointCloudItem.html +++ b/docs/javascript/api/classes/PointCloudItem.html @@ -1,4 +1,4 @@ -PointCloudItem | rhino3dm

Class PointCloudItem

Constructors

constructor +PointCloudItem | rhino3dm

Class PointCloudItem

Constructors

Properties

color hidden index @@ -10,14 +10,14 @@ z

Constructors

Properties

color: object

Gets or sets the color of this point cloud item in js object format: {r:number, g:number, b:number)} where number is from 0 - 255 If this point cloud item does not have a color, System.Drawing.Color.Black is returned.

-
hidden: boolean

Gets or sets the hidden flag of this point cloud item. +

hidden: boolean

Gets or sets the hidden flag of this point cloud item. If this point cloud item does not have a hidden flag, false is returned.

-
index: number

Gets the index of this point cloud item.

-
location: number[]

Gets or sets the location of this point cloud item.

-
normal: number[]

Gets or sets the normal vector for this point cloud item. +

index: number

Gets the index of this point cloud item.

+
location: number[]

Gets or sets the location of this point cloud item.

+
normal: number[]

Gets or sets the normal vector for this point cloud item. If this point cloud item does not have a normal vector, Vector3d.Unset is returned.

-
value: number
x: number

Gets or sets the X component of this point cloud item location.

-
y: number

Gets or sets the Y component of this point cloud item location.

-
z: number

Gets or sets the Z component of this point cloud item location.

-

Generated using TypeDoc

\ No newline at end of file +
value: number
x: number

Gets or sets the X component of this point cloud item location.

+
y: number

Gets or sets the Y component of this point cloud item location.

+
z: number

Gets or sets the Z component of this point cloud item location.

+

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/PointGrid.html b/docs/javascript/api/classes/PointGrid.html index 30b71e5ce..eefcb3e55 100644 --- a/docs/javascript/api/classes/PointGrid.html +++ b/docs/javascript/api/classes/PointGrid.html @@ -1,4 +1,4 @@ -PointGrid | rhino3dm

Class PointGrid

Hierarchy (view full)

Constructors

constructor +PointGrid | rhino3dm

Class PointGrid

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -38,40 +38,40 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns boolean

    false if object cannot be converted to a deformable object. true if object was +

  • Returns boolean

    false if object cannot be converted to a deformable object. true if object was already deformable or was converted into a deformable object.

    Description

    If possible, converts the object into a form that can be accurately modified with "squishy" transformations like projections, shears, an non-uniform scaling.

    -
  • Parameters

    • angleRadians: number

      Angle of rotation in radians.

    • rotationAxis: number[]

      Direction of the axis of rotation.

    • rotationCenter: number[]

      Point on the axis of rotation.

    Returns boolean

    true if geometry successfully rotated.

    Description

    Rotates the object about the specified axis. A positive rotation angle results in a counter-clockwise rotation about the axis (right hand rule).

    -
  • Parameters

    • scaleFactor: number

      The uniform scaling factor.

    Returns boolean

    true if geometry successfully scaled.

    Description

    Scales the object by the specified factor. The scale is centered at the origin.

    -
  • Parameters

    • key: string

      id used to retrieve this string.

    • value: string

      string associated with key.

    Returns boolean

    true if successful, false if not.

    Description

    Attach a user string (key,value combination) to this geometry.

    -
  • Parameters

    • xform: Transform

      Transformation to apply to geometry.

    Returns boolean

    true if geometry successfully transformed.

    Description

    Transforms the geometry. If the input Transform has a SimilarityType of OrientationReversing, you may want to consider flipping the transformed geometry after calling this function when it makes sense. For example, you may want to call Flip() on a Brep after transforming it.

    -
  • Parameters

    • translationVector: number[]

      A moving vector.

    Returns boolean

    true if geometry successfully translated.

    Description

    Translates the object along the specified vector.

    -
  • Parameters

    • json: object

      A json formatted object in the following format (values are orientative):

      {
      version: 10000,
      archive3dm: 60,
      opennurbs: -1877964208,
      data: 'encoded 3dm object data'
      }

    Returns CommonObject

    Description

    Decodes a Rhino Object

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/PolyCurve.html b/docs/javascript/api/classes/PolyCurve.html index bfbd5fbc8..d313990bb 100644 --- a/docs/javascript/api/classes/PolyCurve.html +++ b/docs/javascript/api/classes/PolyCurve.html @@ -1,4 +1,4 @@ -PolyCurve | rhino3dm

Class PolyCurve

Hierarchy (view full)

Constructors

constructor +PolyCurve | rhino3dm

Class PolyCurve

Hierarchy (view full)

Constructors

Properties

degree dimension domain @@ -74,74 +74,74 @@ decode

Constructors

Properties

degree: number

Gets the maximum algebraic degree of any span or a good estimate if curve spans are not algebraic.

-
dimension: number

Gets the dimension of the object. +

dimension: number

Gets the dimension of the object. The dimension is typically three. For parameter space trimming curves the dimension is two. In rare cases the dimension can be one or greater than three.

-
domain: number[]

Gets or sets the domain of the curve.

-
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
hasGap: boolean

This is a quick way to see if the curve has gaps between the sub curve segments.

-
isClosed: boolean

Gets a value indicating whether or not this curve is a closed curve.

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

domain: number[]

Gets or sets the domain of the curve.

+
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

+
hasGap: boolean

This is a quick way to see if the curve has gaps between the sub curve segments.

+
isClosed: boolean

Gets a value indicating whether or not this curve is a closed curve.

+
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isNested: boolean

Gets a value indicating whether or not a PolyCurve contains nested PolyCurves.

-
isPeriodic: boolean

Gets a value indicating whether or not this curve is considered to be Periodic.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isNested: boolean

Gets a value indicating whether or not a PolyCurve contains nested PolyCurves.

+
isPeriodic: boolean

Gets a value indicating whether or not this curve is considered to be Periodic.

+
isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
pointAtEnd: number[]

Evaluates point at the end of the curve.

-
pointAtStart: number[]

Evaluates point at the start of the curve.

-
segmentCount: number

Gets the number of segments that make up this Polycurve.

-
spanCount: number

Gets the number of non-empty smooth (c-infinity) spans in the curve.

-
tangentAtEnd: number[]

Evaluate unit tangent vector at the end of the curve.

-
tangentAtStart: number[]

Evaluates the unit tangent vector at the start of the curve.

-
userStringCount: number

Gets the amount of user strings.

-

Methods

pointAtEnd: number[]

Evaluates point at the end of the curve.

+
pointAtStart: number[]

Evaluates point at the start of the curve.

+
segmentCount: number

Gets the number of segments that make up this Polycurve.

+
spanCount: number

Gets the number of non-empty smooth (c-infinity) spans in the curve.

+
tangentAtEnd: number[]

Evaluate unit tangent vector at the end of the curve.

+
tangentAtStart: number[]

Evaluates the unit tangent vector at the start of the curve.

+
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • curve: Curve

      Segment to append.

    Returns boolean

    true on success, false on failure.

    Description

    Appends the curve to the polycurve without changing the new segment's geometry. This function will fail if the PolyCurve is closed or if SegmentCount > 0 and the new segment is closed.

    -
  • Parameters

    • t: number

      Curve parameter of new start/end point. The returned curves domain will start at t.

      +
  • Parameters

    • t: number

      Curve parameter of new start/end point. The returned curves domain will start at t.

    Returns boolean

    true on success, false on failure.

    Description

    If this curve is closed, then modify it so that the start/end point is at curve parameter t.

    -
  • Parameters

    • desiredDimension: number

      The desired dimension.

    Returns boolean

    true if the curve's dimension was already desiredDimension or if the curve's dimension was successfully changed to desiredDimension; otherwise false.

    Description

    Changes the dimension of a curve.

    -
  • Returns CurveOrientation

    The orientation of this curve with respect to world XY plane.

    Description

    Determines the orientation (counterclockwise or clockwise) of a closed, planar curve in the world XY plane. Only works with simple (no self intersections) closed, planar curves.

    -
  • Parameters

    • plane: Plane

      The plane in which to solve the orientation.

    Returns CurveOrientation

    The orientation of this curve with respect to world XY plane.

    Description

    Determines the orientation (counterclockwise or clockwise) of a closed, planar curve in a given plane. Only works with simple (no self intersections) closed, planar curves.

    -
  • Parameters

    • t: number

      Evaluation parameter.

    Returns number[]

    Curvature vector of the curve at the parameter t.

    Description

    Evaluate the curvature vector at a curve parameter.

    -
  • Parameters

    • t: number

      Curve parameter to evaluate.

    • derivativeCount: number

      Number of derivatives to evaluate, must be at least 0.

    Returns number[][]

    An array of vectors that represents all the derivatives starting at zero.

    Description

    Evaluate the derivatives at the specified curve parameter.

    -
  • Parameters

    • t: number

      Curve parameter to evaluate.

    • derivativeCount: number

      Number of derivatives to evaluate, must be at least 0.

    • side: CurveEvaluationSide

      Side of parameter to evaluate. If the parameter is at a kink, it makes a big difference whether the evaluation is from below or above.

    Returns void

    An array of vectors that represents all the derivatives starting at zero.

    Description

    Evaluate the derivatives at the specified curve parameter.

    -
  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
  • Returns Curve[]

    An array of polycurve segments.

    +
  • Returns Curve[]

    An array of polycurve segments.

    Description

    Explodes this PolyCurve into a list of Curve segments. This will not explode nested polycurves. Call first if you need all individual segments.

    -
  • Parameters

    • t: number

      Evaluation parameter.

    Returns object

    [boolean, Plane] (boolean) true on success, false on failure. (Plane) The frame is returned here.

    Description

    Returns a 3d frame at a parameter.

    -
  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -149,126 +149,126 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

    • nurbsParameter: number

      NURBS form parameter.

    Returns object

    [boolean, number] (boolean) true on success, false on failure. (number) Curve parameter.

    Description

    Convert a NURBS curve parameter to a curve parameter.

    -
  • Parameters

    • curveParameter: number

      Curve parameter.

    Returns object

    [boolean, number] (boolean) true on success, false on failure. (number) NURBS form parameter.

    Description

    Convert a curve parameter to a NURBS curve parameter.

    -
  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns string[]

    Description

    Gets a copy of all (user key string, user value string) pairs attached to this geometry.

    -
  • Returns boolean

    true if the curve can be represented by an arc or a circle within tolerance.

    +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Polyline.html b/docs/javascript/api/classes/Polyline.html index 348beff5f..106c9e9f8 100644 --- a/docs/javascript/api/classes/Polyline.html +++ b/docs/javascript/api/classes/Polyline.html @@ -1,4 +1,4 @@ -Polyline | rhino3dm

Class Polyline

Hierarchy (view full)

Constructors

constructor +Polyline | rhino3dm

Class Polyline

Hierarchy (view full)

Constructors

Properties

boundingBox: BoundingBox

Even though this is a property, it is not a "fast" calculation. Every point is +

Constructors

Properties

boundingBox: BoundingBox

Even though this is a property, it is not a "fast" calculation. Every point is evaluated in order to get the bounding box of the list.

-
capacity: number
count: number
isClosed: boolean

Gets a value that indicates whether this polyline is closed. +

capacity: number
count: number
isClosed: boolean

Gets a value that indicates whether this polyline is closed. The polyline is considered to be closed if its start is identical to its endpoint.

-
isValid: boolean

Gets a value that indicates whether this polyline is valid. +

isValid: boolean

Gets a value that indicates whether this polyline is valid. Valid polylines have at least one segment, no Invalid points and no zero length segments.Closed polylines with only two segments are also not considered valid.

-
length: number

Gets the total length of the polyline.

-
segmentCount: number

Gets the number of segments for this polyline.

-

Methods

length: number

Gets the total length of the polyline.

+
segmentCount: number

Gets the number of segments for this polyline.

+

Methods

  • Parameters

    • x: number

      The X coordinate.

    • y: number

      The Y coordinate.

    • z: number

      The Z coordinate.

    Returns void

    Description

    Adds a Point3d to the end of the list with given x,y,z coordinates.

    -
  • Parameters

    • points: number[][]

      Points to add.

    Returns void

    Description

    Add a range of points to the list.

    -
  • ...

    -

    Parameters

    • testPoint: number[]

    Returns number[]

  • ...

    +

    Parameters

    • testPoint: number[]

    Returns number[]

  • Parameters

    • testPoint: number[]

      Point to approximate.

    Returns number

    The parameter along the polyline closest to testPoint.

    Description

    Gets the parameter along the polyline which is closest to a test-point.

    -
  • Returns Line[]

    An array of line segments or null if the polyline contains fewer than 2 points.

    +
  • Returns Line[]

    An array of line segments or null if the polyline contains fewer than 2 points.

    Description

    Constructs an array of line segments that make up the entire polyline.

    -
  • Parameters

  • Parameters

    • tolerance: number

      The tolerance.

    Returns boolean

    Returns true if polyline has 4 or more points, the distance between the start and end points is <= tolerance, and there is a point in the polyline whose distance from the start and end points is > tolerance.

    Description

    Test a polyline to see if it is closed.

    -
  • Parameters

    • t: number

      Polyline parameter.

    Returns number[]

    The point on the polyline at t.

    Description

    Gets the point on the polyline at the given parameter. The integer part of the parameter indicates the index of the segment.

    -
  • Parameters

    • index: number

      Index of segment to retrieve.

    Returns Line

    Line segment at index or Line.Unset on failure.

    Description

    Gets the line segment at the given index.

    -
  • Parameters

    • xValue: number

    Returns void

    Description

    Set all the X values for the points to a single value

    -
  • Parameters

    • yValue: number

    Returns void

    Description

    Set all the Y values for the points to a single value

    -
  • Parameters

  • Parameters

    • xValue: number

    Returns void

    Description

    Set all the X values for the points to a single value

    +
  • Parameters

    • yValue: number

    Returns void

    Description

    Set all the Y values for the points to a single value

    +
  • Parameters

    • t: number

      Polyline parameter.

    Returns number[]

    The tangent along the polyline at t.

    Description

    Gets the unit tangent vector along the polyline at the given parameter. The integer part of the parameter indicates the index of the segment.

    -
  • Returns NurbsCurve

    A Nurbs curve shaped like this polyline or null on failure.

    +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/PolylineCurve.html b/docs/javascript/api/classes/PolylineCurve.html index 4813f8d09..15f14d7d5 100644 --- a/docs/javascript/api/classes/PolylineCurve.html +++ b/docs/javascript/api/classes/PolylineCurve.html @@ -1,4 +1,4 @@ -PolylineCurve | rhino3dm

Class PolylineCurve

Hierarchy (view full)

Constructors

constructor +PolylineCurve | rhino3dm

Class PolylineCurve

Hierarchy (view full)

Constructors

Properties

degree dimension domain @@ -64,66 +64,66 @@ decode

Constructors

Properties

degree: number

Gets the maximum algebraic degree of any span +

Properties

degree: number

Gets the maximum algebraic degree of any span or a good estimate if curve spans are not algebraic.

-
dimension: number

Gets the dimension of the object. +

dimension: number

Gets the dimension of the object. The dimension is typically three. For parameter space trimming curves the dimension is two. In rare cases the dimension can be one or greater than three.

-
domain: number[]

Gets or sets the domain of the curve.

-
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isClosed: boolean

Gets a value indicating whether or not this curve is a closed curve.

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

domain: number[]

Gets or sets the domain of the curve.

+
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

+
isClosed: boolean

Gets a value indicating whether or not this curve is a closed curve.

+
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isPeriodic: boolean

Gets a value indicating whether or not this curve is considered to be Periodic.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isPeriodic: boolean

Gets a value indicating whether or not this curve is considered to be Periodic.

+
isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
pointAtEnd: number[]

Evaluates point at the end of the curve.

-
pointAtStart: number[]

Evaluates point at the start of the curve.

-
pointCount: number

Gets the number of points in this polyline.

-
spanCount: number

Gets the number of non-empty smooth (c-infinity) spans in the curve.

-
tangentAtEnd: number[]

Evaluate unit tangent vector at the end of the curve.

-
tangentAtStart: number[]

Evaluates the unit tangent vector at the start of the curve.

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Returns Polyline

    The Polyline if successful, null of the curve has no points.

    +
pointAtEnd: number[]

Evaluates point at the end of the curve.

+
pointAtStart: number[]

Evaluates point at the start of the curve.

+
pointCount: number

Gets the number of points in this polyline.

+
spanCount: number

Gets the number of non-empty smooth (c-infinity) spans in the curve.

+
tangentAtEnd: number[]

Evaluate unit tangent vector at the end of the curve.

+
tangentAtStart: number[]

Evaluates the unit tangent vector at the start of the curve.

+
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Returns Polyline

    The Polyline if successful, null of the curve has no points.

    Description

    Returns the underlying Polyline, or points.

    -
  • Parameters

    • t: number

      Curve parameter of new start/end point. The returned curves domain will start at t.

      +
  • Parameters

    • t: number

      Curve parameter of new start/end point. The returned curves domain will start at t.

    Returns boolean

    true on success, false on failure.

    Description

    If this curve is closed, then modify it so that the start/end point is at curve parameter t.

    -
  • Parameters

    • desiredDimension: number

      The desired dimension.

    Returns boolean

    true if the curve's dimension was already desiredDimension or if the curve's dimension was successfully changed to desiredDimension; otherwise false.

    Description

    Changes the dimension of a curve.

    -
  • Returns CurveOrientation

    The orientation of this curve with respect to world XY plane.

    Description

    Determines the orientation (counterclockwise or clockwise) of a closed, planar curve in the world XY plane. Only works with simple (no self intersections) closed, planar curves.

    -
  • Parameters

    • plane: Plane

      The plane in which to solve the orientation.

    Returns CurveOrientation

    The orientation of this curve with respect to world XY plane.

    Description

    Determines the orientation (counterclockwise or clockwise) of a closed, planar curve in a given plane. Only works with simple (no self intersections) closed, planar curves.

    -
  • Parameters

    • t: number

      Evaluation parameter.

    Returns number[]

    Curvature vector of the curve at the parameter t.

    Description

    Evaluate the curvature vector at a curve parameter.

    -
  • Parameters

    • t: number

      Curve parameter to evaluate.

    • derivativeCount: number

      Number of derivatives to evaluate, must be at least 0.

    Returns number[][]

    An array of vectors that represents all the derivatives starting at zero.

    Description

    Evaluate the derivatives at the specified curve parameter.

    -
  • Parameters

    • t: number

      Curve parameter to evaluate.

    • derivativeCount: number

      Number of derivatives to evaluate, must be at least 0.

    • side: CurveEvaluationSide

      Side of parameter to evaluate. If the parameter is at a kink, it makes a big difference whether the evaluation is from below or above.

    Returns void

    An array of vectors that represents all the derivatives starting at zero.

    Description

    Evaluate the derivatives at the specified curve parameter.

    -
  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/PostEffect.html b/docs/javascript/api/classes/PostEffect.html index 9b95fdb44..426896cc9 100644 --- a/docs/javascript/api/classes/PostEffect.html +++ b/docs/javascript/api/classes/PostEffect.html @@ -1,4 +1,4 @@ -PostEffect | rhino3dm

Class PostEffect

Constructors

constructor +PostEffect | rhino3dm

Class PostEffect

Constructors

Properties

id listable localName @@ -7,6 +7,6 @@ type

Methods

Constructors

Properties

id: string
listable: boolean
localName: string
on: boolean
shown: boolean

Methods

  • ...

    -

    Parameters

    • key: string

    Returns string

  • ...

    -

    Parameters

    • key: string
    • value: string

    Returns boolean

Generated using TypeDoc

\ No newline at end of file +

Constructors

Properties

id: string
listable: boolean
localName: string
on: boolean
shown: boolean

Methods

  • ...

    +

    Parameters

    • key: string

    Returns string

  • ...

    +

    Parameters

    • key: string
    • value: string

    Returns boolean

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/RenderChannels.html b/docs/javascript/api/classes/RenderChannels.html index 19fb09bdd..95810ff3e 100644 --- a/docs/javascript/api/classes/RenderChannels.html +++ b/docs/javascript/api/classes/RenderChannels.html @@ -1,4 +1,4 @@ -RenderChannels | rhino3dm

Class RenderChannels

Constructors

constructor +RenderChannels | rhino3dm

Class RenderChannels

Constructors

Properties

Constructors

Properties

customIds: string[]

Generated using TypeDoc

\ No newline at end of file +

Constructors

Properties

customIds: string[]

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/RenderContent.html b/docs/javascript/api/classes/RenderContent.html index 2c2d60eb9..151f5ab17 100644 --- a/docs/javascript/api/classes/RenderContent.html +++ b/docs/javascript/api/classes/RenderContent.html @@ -1,4 +1,4 @@ -RenderContent | rhino3dm

Class RenderContent

Hierarchy (view full)

Constructors

constructor +RenderContent | rhino3dm

Class RenderContent

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

autoDelete: boolean
childSlotName: string
groupId: string
hidden: boolean
id: string
isChild: boolean
isSystemComponent: boolean

True if this model component is a system constant. +

Constructors

Properties

autoDelete: boolean
childSlotName: string
groupId: string
hidden: boolean
id: string
isChild: boolean
isSystemComponent: boolean

True if this model component is a system constant. An incomplete list of system constant model components is below:ON_ModelComponent::Unset ON_InstanceDefinition::Empty ON_Linetype::UnsetON_Linetype::ContinuousON_Linetype::ByLayerON_Linetype::ByParent ON_Layer::UnsetON_Layer::Default ON_TextStyle::UnsetON_TextStyle::DefaultON_TextStyle::ByLayerON_TextStyle::ByParent ON_DimStyle::UnsetON_DimStyle::DefaultON_DimStyle::DefaultInchDecimalON_DimStyle::DefaultInchFractionalON_DimStyle::DefaultFootInchArchitectureON_DimStyle::DefaultMillimeterSmallON_DimStyle::DefaultMillimeterLargeON_DimStyle::DefaultMillimeterArchitecture

-
isTopLevel: boolean
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
kind: string
name: string
notes: string
plugInId: string
reference: boolean
renderEngineId: string
tags: string
typeId: string
typeName: string
userStringCount: number

Gets the amount of user strings.

-

Methods

  • ...

    -

    Parameters

    • child_slot_name: string

    Returns number

  • ...

    -

    Parameters

    • child_slot_name: string

    Returns boolean

isTopLevel: boolean
isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
kind: string
name: string
notes: string
plugInId: string
reference: boolean
renderEngineId: string
tags: string
typeId: string
typeName: string
userStringCount: number

Gets the amount of user strings.

+

Methods

  • ...

    +

    Parameters

    • child_slot_name: string

    Returns number

  • ...

    +

    Parameters

    • child_slot_name: string

    Returns boolean

  • Parameters

    • currentRemainder: number

      The current remainder value.

    Returns number

    The updated remainder value.

    Description

    Increments the Cyclic Redundancy Check value by this instance.

    -
  • ...

    -

    Parameters

    • child_slot_name: string

    Returns boolean

  • ...

    -

    Parameters

    • parameter: string

    Returns string

  • ...

    +

    Parameters

    • child_slot_name: string

    Returns boolean

  • ...

    +

    Parameters

    • parameter: string

    Returns string

  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • ...

    -

    Parameters

    • recursive: boolean

    Returns string

  • ...

    -

    Parameters

    • amount: number
    • child_slot_name: string

    Returns boolean

  • ...

    -

    Parameters

    • on: boolean
    • child_slot_name: string

    Returns boolean

  • ...

    -

    Parameters

    • key: string
    • value: string

    Returns boolean

  • ...

    -

    Parameters

    • name: string

    Returns void

  • ...

    +

    Parameters

    • recursive: boolean

    Returns string

  • ...

    +

    Parameters

    • amount: number
    • child_slot_name: string

    Returns boolean

  • ...

    +

    Parameters

    • on: boolean
    • child_slot_name: string

    Returns boolean

  • ...

    +

    Parameters

    • key: string
    • value: string

    Returns boolean

  • ...

    +

    Parameters

    • name: string

    Returns void

  • Parameters

    • key: string

      id used to retrieve this string.

    • value: string

      string associated with key.

    Returns boolean

    true if successful, false if not.

    Description

    Attach a user string (key,value combination) to this geometry.

    -
  • ...

    -

    Parameters

    • xml: string

    Returns boolean

  • ...

    +

    Parameters

    • xml: string

    Returns boolean

  • Parameters

    • json: object

      A json formatted object in the following format (values are orientative):

      {
      version: 10000,
      archive3dm: 60,
      opennurbs: -1877964208,
      data: 'encoded 3dm object data'
      }

    Returns CommonObject

    Description

    Decodes a Rhino Object

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/RenderEnvironment.html b/docs/javascript/api/classes/RenderEnvironment.html index d2b9c90cc..07203edcd 100644 --- a/docs/javascript/api/classes/RenderEnvironment.html +++ b/docs/javascript/api/classes/RenderEnvironment.html @@ -1,4 +1,4 @@ -RenderEnvironment | rhino3dm

Class RenderEnvironment

Hierarchy (view full)

Constructors

constructor +RenderEnvironment | rhino3dm

Class RenderEnvironment

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

autoDelete: boolean
childSlotName: string
groupId: string
hidden: boolean
id: string
isChild: boolean
isSystemComponent: boolean

True if this model component is a system constant. +

Constructors

Properties

autoDelete: boolean
childSlotName: string
groupId: string
hidden: boolean
id: string
isChild: boolean
isSystemComponent: boolean

True if this model component is a system constant. An incomplete list of system constant model components is below:ON_ModelComponent::Unset ON_InstanceDefinition::Empty ON_Linetype::UnsetON_Linetype::ContinuousON_Linetype::ByLayerON_Linetype::ByParent ON_Layer::UnsetON_Layer::Default ON_TextStyle::UnsetON_TextStyle::DefaultON_TextStyle::ByLayerON_TextStyle::ByParent ON_DimStyle::UnsetON_DimStyle::DefaultON_DimStyle::DefaultInchDecimalON_DimStyle::DefaultInchFractionalON_DimStyle::DefaultFootInchArchitectureON_DimStyle::DefaultMillimeterSmallON_DimStyle::DefaultMillimeterLargeON_DimStyle::DefaultMillimeterArchitecture

-
isTopLevel: boolean
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
kind: string
name: string
notes: string
plugInId: string
reference: boolean
renderEngineId: string
tags: string
typeId: string
typeName: string
userStringCount: number

Gets the amount of user strings.

-

Methods

isTopLevel: boolean
isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
kind: string
name: string
notes: string
plugInId: string
reference: boolean
renderEngineId: string
tags: string
typeId: string
typeName: string
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • currentRemainder: number

      The current remainder value.

    Returns number

    The updated remainder value.

    Description

    Increments the Cyclic Redundancy Check value by this instance.

    -
  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Parameters

    • key: string

      id used to retrieve this string.

    • value: string

      string associated with key.

    Returns boolean

    true if successful, false if not.

    Description

    Attach a user string (key,value combination) to this geometry.

    -
  • Parameters

    • json: object

      A json formatted object in the following format (values are orientative):

      {
      version: 10000,
      archive3dm: 60,
      opennurbs: -1877964208,
      data: 'encoded 3dm object data'
      }

    Returns CommonObject

    Description

    Decodes a Rhino Object

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/RenderEnvironments.html b/docs/javascript/api/classes/RenderEnvironments.html index 6324d2efa..b5d84b0f7 100644 --- a/docs/javascript/api/classes/RenderEnvironments.html +++ b/docs/javascript/api/classes/RenderEnvironments.html @@ -1,7 +1,7 @@ -RenderEnvironments | rhino3dm

Class RenderEnvironments

Constructors

constructor +RenderEnvironments | rhino3dm

Class RenderEnvironments

Constructors

Properties

backgroundId: string
reflectionId: string
reflectionOverride: boolean
skylightingId: string
skylightingOverride: boolean

Generated using TypeDoc

\ No newline at end of file +

Constructors

Properties

backgroundId: string
reflectionId: string
reflectionOverride: boolean
skylightingId: string
skylightingOverride: boolean

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/RenderMaterial.html b/docs/javascript/api/classes/RenderMaterial.html index 4824c8c57..a2810b49d 100644 --- a/docs/javascript/api/classes/RenderMaterial.html +++ b/docs/javascript/api/classes/RenderMaterial.html @@ -1,4 +1,4 @@ -RenderMaterial | rhino3dm

Class RenderMaterial

Hierarchy (view full)

Constructors

constructor +RenderMaterial | rhino3dm

Class RenderMaterial

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

autoDelete: boolean
childSlotName: string
groupId: string
hidden: boolean
id: string
isChild: boolean
isSystemComponent: boolean

True if this model component is a system constant. +

Constructors

Properties

autoDelete: boolean
childSlotName: string
groupId: string
hidden: boolean
id: string
isChild: boolean
isSystemComponent: boolean

True if this model component is a system constant. An incomplete list of system constant model components is below:ON_ModelComponent::Unset ON_InstanceDefinition::Empty ON_Linetype::UnsetON_Linetype::ContinuousON_Linetype::ByLayerON_Linetype::ByParent ON_Layer::UnsetON_Layer::Default ON_TextStyle::UnsetON_TextStyle::DefaultON_TextStyle::ByLayerON_TextStyle::ByParent ON_DimStyle::UnsetON_DimStyle::DefaultON_DimStyle::DefaultInchDecimalON_DimStyle::DefaultInchFractionalON_DimStyle::DefaultFootInchArchitectureON_DimStyle::DefaultMillimeterSmallON_DimStyle::DefaultMillimeterLargeON_DimStyle::DefaultMillimeterArchitecture

-
isTopLevel: boolean
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
kind: string
name: string
notes: string
plugInId: string
reference: boolean
renderEngineId: string
tags: string
typeId: string
typeName: string
userStringCount: number

Gets the amount of user strings.

-

Methods

isTopLevel: boolean
isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
kind: string
name: string
notes: string
plugInId: string
reference: boolean
renderEngineId: string
tags: string
typeId: string
typeName: string
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • currentRemainder: number

      The current remainder value.

    Returns number

    The updated remainder value.

    Description

    Increments the Cyclic Redundancy Check value by this instance.

    -
  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Parameters

    • key: string

      id used to retrieve this string.

    • value: string

      string associated with key.

    Returns boolean

    true if successful, false if not.

    Description

    Attach a user string (key,value combination) to this geometry.

    -
  • Parameters

    • json: object

      A json formatted object in the following format (values are orientative):

      {
      version: 10000,
      archive3dm: 60,
      opennurbs: -1877964208,
      data: 'encoded 3dm object data'
      }

    Returns CommonObject

    Description

    Decodes a Rhino Object

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/RenderSettings.html b/docs/javascript/api/classes/RenderSettings.html index 54a4cba13..a6531c786 100644 --- a/docs/javascript/api/classes/RenderSettings.html +++ b/docs/javascript/api/classes/RenderSettings.html @@ -1,4 +1,4 @@ -RenderSettings | rhino3dm

Class RenderSettings

Hierarchy (view full)

Constructors

constructor +RenderSettings | rhino3dm

Class RenderSettings

Hierarchy (view full)

Constructors

Properties

ambientLight: object

Gets or sets the ambient light color used in rendering in js object format: {r:number, g:number, b:number)} where number is from 0 - 255

-
backgroundColorBottom: object

Gets or sets the background bottom color used in rendering in js object format: {r:number, g:number, b:number)} where number is from 0 - 255

-
backgroundColorTop: object

Gets or sets the background top color used in rendering in js object format: {r:number, g:number, b:number)} where number is from 0 - 255 +

backgroundColorBottom: object

Gets or sets the background bottom color used in rendering in js object format: {r:number, g:number, b:number)} where number is from 0 - 255

+
backgroundColorTop: object

Gets or sets the background top color used in rendering in js object format: {r:number, g:number, b:number)} where number is from 0 - 255 Sets also the background color if a solid background color is set.

-
depthCue: boolean

Gets or sets a value indicating whether to render using depth cues. +

depthCue: boolean

Gets or sets a value indicating whether to render using depth cues. These are clues to help the perception of position and orientation of objects in the image.

-
dithering: Dithering

If this object is associated with a document, this gets the document dithering. +

dithering: Dithering

If this object is associated with a document, this gets the document dithering. If this object is associated with a File3dm, this gets the File3dm's dithering. Otherwise it gets a 'free-floating' dithering object.

-
flatShade: boolean

Gets or sets a value indicating whether to render using flat shading.

-
groundPlane: GroundPlane

If this object is associated with a document, this gets the document ground plane. +

flatShade: boolean

Gets or sets a value indicating whether to render using flat shading.

+
groundPlane: GroundPlane

If this object is associated with a document, this gets the document ground plane. If this object is associated with a File3dm, this gets the File3dm's ground plane. Otherwise it gets a 'free-floating' ground plane object.

-
imageDpi: number

Number of dots/inch (dots=pixels) to use when printing and saving +

imageDpi: number

Number of dots/inch (dots=pixels) to use when printing and saving bitmaps. The default is 72.0 dots/inch.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
linearWorkflow: LinearWorkflow

If this object is associated with a document, this gets the document linear workflow. +

isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
linearWorkflow: LinearWorkflow

If this object is associated with a document, this gets the document linear workflow. If this object is associated with a File3dm, this gets the File3dm's linear workflow. Otherwise it gets a 'free-floating' linear workflow object.

-
namedView: string

Get or set the given named view

-
postEffects: PostEffect[]

If this object is associated with a document, this gets the document post effect data collection. +

namedView: string

Get or set the given named view

+
postEffects: PostEffect[]

If this object is associated with a document, this gets the document post effect data collection. If this object is associated with a File3dm, this gets the File3dm's post effect data collection. Otherwise it gets a 'free-floating' post effect data collection object.

-
renderAnnotations: boolean

Gets or sets a value indicating whether to instruct the rendering engine to show annotations, +

renderAnnotations: boolean

Gets or sets a value indicating whether to instruct the rendering engine to show annotations, such as linear dimensions or angular dimensions.

-
renderBackFaces: boolean

Gets or sets a value indicating whether to render back faces.

-
renderChannels: RenderChannels

If this object is associated with a document, this gets the document render channels. +

renderBackFaces: boolean

Gets or sets a value indicating whether to render back faces.

+
renderChannels: RenderChannels

If this object is associated with a document, this gets the document render channels. Otherwise it gets a 'free-floating' render channels object.

-
renderCurves: boolean

Gets or sets a value indicating whether to instruct the rendering engine to show curves.

-
renderEnvironments: RenderEnvironments
renderIsoParams: boolean

Gets or sets a value indicating whether to instruct the rendering engine to show isocurves.

-
renderMeshEdges: boolean

Gets or sets a value indicating whether to instruct the rendering engine to show mesh edges.

-
renderPoints: boolean

Gets or sets a value indicating whether to instruct the rendering engine to show points.

-
safeFrame: SafeFrame

If this object is associated with a document, this gets the document safe-frame. +

renderCurves: boolean

Gets or sets a value indicating whether to instruct the rendering engine to show curves.

+
renderEnvironments: RenderEnvironments
renderIsoParams: boolean

Gets or sets a value indicating whether to instruct the rendering engine to show isocurves.

+
renderMeshEdges: boolean

Gets or sets a value indicating whether to instruct the rendering engine to show mesh edges.

+
renderPoints: boolean

Gets or sets a value indicating whether to instruct the rendering engine to show points.

+
safeFrame: SafeFrame

If this object is associated with a document, this gets the document safe-frame. If this object is associated with a File3dm, this gets the File3dm's safe-frame. Otherwise it gets a 'free-floating' safe-frame object.

-
scaleBackgroundToFit: boolean

Gets or sets a value indicating whether to scale the wallpaper in the +

scaleBackgroundToFit: boolean

Gets or sets a value indicating whether to scale the wallpaper in the background or not. This is meaningful only if the viewport has a wallpaper and render settings are set to render Wallpaper into the background.

-
shadowMapLevel: number

0=none, 1=normal, 2=best.

-
skylight: Skylight

If this object is associated with a document, this gets the document skylight. +

shadowMapLevel: number

0=none, 1=normal, 2=best.

+
skylight: Skylight

If this object is associated with a document, this gets the document skylight. If this object is associated with a File3dm, this gets the File3dm's skylight. Otherwise it gets a 'free-floating' skylight object.

-
snapShot: string

Set or get the given snapshot view

-
specificViewport: string

Set or get the given specific viewport

-
sun: Sun

If this object is associated with a document, this gets the document sun. +

snapShot: string

Set or get the given snapshot view

+
specificViewport: string

Set or get the given specific viewport

+
sun: Sun

If this object is associated with a document, this gets the document sun. If this object is associated with a File3dm, this gets the File3dm's sun. Otherwise it gets a 'free-floating' sun object.

-
transparentBackground: boolean

Gets or sets whether rendering should be done with transparent background.

-
useHiddenLights: boolean

Gets or sets a value indicating whether to render using lights that are on layers that are off.

-
useViewportSize: boolean

Gets or sets a value indicating whether to use the resolution of the +

transparentBackground: boolean

Gets or sets whether rendering should be done with transparent background.

+
useHiddenLights: boolean

Gets or sets a value indicating whether to render using lights that are on layers that are off.

+
useViewportSize: boolean

Gets or sets a value indicating whether to use the resolution of the viewport being rendered or ImageSize when rendering

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Parameters

userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Parameters

    • key: string

      id used to retrieve this string.

    • value: string

      string associated with key.

    Returns boolean

    true if successful, false if not.

    Description

    Attach a user string (key,value combination) to this geometry.

    -
  • Parameters

    • json: object

      A json formatted object in the following format (values are orientative):

      {
      version: 10000,
      archive3dm: 60,
      opennurbs: -1877964208,
      data: 'encoded 3dm object data'
      }

    Returns CommonObject

    Description

    Decodes a Rhino Object

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/RenderTexture.html b/docs/javascript/api/classes/RenderTexture.html index e7fae2cf8..1012f7e27 100644 --- a/docs/javascript/api/classes/RenderTexture.html +++ b/docs/javascript/api/classes/RenderTexture.html @@ -1,4 +1,4 @@ -RenderTexture | rhino3dm

Class RenderTexture

Hierarchy (view full)

Constructors

constructor +RenderTexture | rhino3dm

Class RenderTexture

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

autoDelete: boolean
childSlotName: string
fileName: string
groupId: string
hidden: boolean
id: string
isChild: boolean
isSystemComponent: boolean

True if this model component is a system constant. +

Constructors

Properties

autoDelete: boolean
childSlotName: string
fileName: string
groupId: string
hidden: boolean
id: string
isChild: boolean
isSystemComponent: boolean

True if this model component is a system constant. An incomplete list of system constant model components is below:ON_ModelComponent::Unset ON_InstanceDefinition::Empty ON_Linetype::UnsetON_Linetype::ContinuousON_Linetype::ByLayerON_Linetype::ByParent ON_Layer::UnsetON_Layer::Default ON_TextStyle::UnsetON_TextStyle::DefaultON_TextStyle::ByLayerON_TextStyle::ByParent ON_DimStyle::UnsetON_DimStyle::DefaultON_DimStyle::DefaultInchDecimalON_DimStyle::DefaultInchFractionalON_DimStyle::DefaultFootInchArchitectureON_DimStyle::DefaultMillimeterSmallON_DimStyle::DefaultMillimeterLargeON_DimStyle::DefaultMillimeterArchitecture

-
isTopLevel: boolean
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
kind: string
name: string
notes: string
plugInId: string
reference: boolean
renderEngineId: string
tags: string
typeId: string
typeName: string
userStringCount: number

Gets the amount of user strings.

-

Methods

isTopLevel: boolean
isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
kind: string
name: string
notes: string
plugInId: string
reference: boolean
renderEngineId: string
tags: string
typeId: string
typeName: string
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • currentRemainder: number

      The current remainder value.

    Returns number

    The updated remainder value.

    Description

    Increments the Cyclic Redundancy Check value by this instance.

    -
  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • ...

    -

    Parameters

    • fileName: string

    Returns void

  • ...

    +

    Parameters

    • fileName: string

    Returns void

  • Parameters

    • key: string

      id used to retrieve this string.

    • value: string

      string associated with key.

    Returns boolean

    true if successful, false if not.

    Description

    Attach a user string (key,value combination) to this geometry.

    -
  • Parameters

    • json: object

      A json formatted object in the following format (values are orientative):

      {
      version: 10000,
      archive3dm: 60,
      opennurbs: -1877964208,
      data: 'encoded 3dm object data'
      }

    Returns CommonObject

    Description

    Decodes a Rhino Object

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/RevSurface.html b/docs/javascript/api/classes/RevSurface.html index 57ad94072..fa80d9136 100644 --- a/docs/javascript/api/classes/RevSurface.html +++ b/docs/javascript/api/classes/RevSurface.html @@ -1,4 +1,4 @@ -RevSurface | rhino3dm

Class RevSurface

Hierarchy (view full)

Constructors

constructor +RevSurface | rhino3dm

Class RevSurface

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isSolid: boolean

Gets a values indicating whether a surface is solid.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isSolid: boolean

Gets a values indicating whether a surface is solid.

+
isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Parameters

userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • direction: number

      0 gets first parameter's domain, 1 gets second parameter's domain.

    Returns number

    The maximum degree.

    Description

    Returns the maximum algebraic degree of any span (or a good estimate if curve spans are not algebraic).

    -
  • Parameters

  • Parameters

    • direction: number

      0 gets first parameter, 1 gets second parameter.

    Returns number[]

    An interval value.

    Description

    Gets the domain in a direction.

    -
  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
  • Parameters

    • u: number

      A first parameter.

    • v: number

      A second parameter.

    Returns object

    [boolean, Plane] (boolean) true if this operation succeeded; otherwise false. (Plane) A frame plane that will be computed during this call.

    Description

    Computes the orient plane on a surface given a U and V parameter. This is the simple evaluation call with no error handling.

    -
  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -78,61 +78,61 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

  • Parameters

    • surfaceS: number

      The parameter in the S, or sometimes U, direction, of this surface.

    • surfaceT: number

      The parameter in the T, or sometimes V, direction of this surface.

    Returns object

    [boolean, number, number] (boolean) True if the operation succeeded; otherwise, false. (number) S on the NURBS form. (number) T on the NURBS form.

    Description

    Translates a parameter from the current surface to the parameter space of the surface returned by .

    -
  • Parameters

    • direction: number

      0 gets first parameter's domain, 1 gets second parameter's domain.

    Returns number[]

    An array with span vectors; or null on error.

    Description

    Gets array of span "knots".

    -
  • Parameters

  • Parameters

    • nurbsS: number

      The parameter in the S, or sometimes U, direction of the NURBS form surface.

    • nurbsT: number

      The parameter in the T, or sometimes V, direction of the NURBS form surface.

    Returns object

    [boolean, number, number] (boolean) True if the operation succeeded; otherwise, false. (number) S on this surface. (number) T o n this surface.

    Description

    Translates a parameter from a value on the surface returned by to the current surface.

    -
  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns string[]

    Description

    Gets a copy of all (user key string, user value string) pairs attached to this geometry.

    -
  • Returns string[]

    Description

    Gets a copy of all (user key string, user value string) pairs attached to this geometry.

    +
  • Parameters

    • u: number

      Surface u parameter to test.

    • v: number

      Surface v parameter to test.

    Returns number

    0 if not a seam, 1 if u == Domain(0)[i] and srf(u, v) == srf(Domain(0)[1-i], v) 2 if v == Domain(1)[i] and srf(u, v) == srf(u, Domain(1)[1-i]) 3 if 1 and 2 are true.

    Description

    Tests if a surface parameter value is at a seam.

    -
  • Parameters

    • u: number

      Surface u parameter to test.

    • v: number

      Surface v parameter to test.

    • exact: boolean

      If true, test if (u,v) is exactly at a singularity. If false, test if close enough to cause numerical problems.

    Returns boolean

    true if surface is singular at (s,t)

    Description

    Tests if a surface parameter value is at a singularity.

    -
  • Parameters

    • direction: number

      0 = U, 1 = V.

    Returns boolean

    The indicating boolean value.

    Description

    Gets a value indicating if the surface is closed in a direction.

    -
  • Returns boolean

    true if the surface is a portion of a cone.

    +
  • Returns boolean

    true if the surface is a portion of a cone.

    Description

    Determines if the surface is a portion of a cone within RhinoMath.ZeroTolerance.

    -
  • Returns boolean

    true if the surface is a portion of a cylinder.

    +
  • Returns boolean

    true if the surface is a portion of a cylinder.

    Description

    Determines if the surface is a portion of a cylinder within RhinoMath.ZeroTolerance.

    -
  • Parameters

    • direction: number

      0 = U, 1 = V.

    Returns boolean

    The indicating boolean value.

    Description

    Gets a value indicating if the surface is periodic in a direction (default is false).

    -
  • Returns boolean

    true if the surface is planar (flat) to within RhinoMath.ZeroTolerance units (1e-12).

    +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/RhinoModule.html b/docs/javascript/api/classes/RhinoModule.html index 94341c985..3a3c06ebf 100644 --- a/docs/javascript/api/classes/RhinoModule.html +++ b/docs/javascript/api/classes/RhinoModule.html @@ -1,7 +1,7 @@ -RhinoModule | rhino3dm

Class RhinoModule

Constructors

constructor +RhinoModule | rhino3dm

Class RhinoModule

Constructors

Properties

ActiveSpace: typeof ActiveSpace
AnnotationBase: typeof AnnotationBase
AnnotationTypes: typeof AnnotationTypes
Arc: typeof Arc
ArcCurve: typeof ArcCurve
ArchivableDictionary: typeof ArchivableDictionary
Arrowhead: typeof Arrowhead
ArrowheadTypes: typeof ArrowheadTypes
BasepointZero: typeof BasepointZero
BezierCurve: typeof BezierCurve
Bitmap: typeof Bitmap
BoundingBox: typeof BoundingBox
Box: typeof Box
Brep: typeof Brep
BrepEdge: typeof BrepEdge
BrepEdgeList: typeof BrepEdgeList
BrepFace: typeof BrepFace
BrepFaceList: typeof BrepFaceList
BrepSurfaceList: typeof BrepSurfaceList
BrepVertex: typeof BrepVertex
BrepVertexList: typeof BrepVertexList
CachedTextureCoordinates: typeof CachedTextureCoordinates
Centermark: typeof Centermark
Circle: typeof Circle
CommonObject: typeof CommonObject
ComponentIndex: typeof ComponentIndex
ComponentIndexType: typeof ComponentIndexType
Cone: typeof Cone
ConstructionPlane: typeof ConstructionPlane
CoordinateSystem: typeof CoordinateSystem
Curve: typeof Curve
CurveEvaluationSide: typeof CurveEvaluationSide
CurveOrientation: typeof CurveOrientation
CurvePiping: typeof CurvePiping
CurvePipingCapTypes: typeof CurvePipingCapTypes
CurveProxy: typeof CurveProxy
Cylinder: typeof Cylinder
Decal: typeof Decal
DecalMappings: typeof DecalMappings
DecalProjections: typeof DecalProjections
DimAngular: typeof DimAngular
DimLinear: typeof DimLinear
DimOrdinate: typeof DimOrdinate
DimRadial: typeof DimRadial
Dimension: typeof Dimension
DimensionStyle: typeof DimensionStyle
Displacement: typeof Displacement
DisplacementSweepResolutionFormulas: typeof DisplacementSweepResolutionFormulas
Dithering: typeof Dithering
DitheringMethods: typeof DitheringMethods
DracoCompression: typeof DracoCompression
DracoCompressionOptions: typeof DracoCompressionOptions
EarthAnchorPoint: typeof EarthAnchorPoint
EdgeSoftening: typeof EdgeSoftening
Ellipse: typeof Ellipse
EmbeddedFile: typeof EmbeddedFile
Environment: typeof Environment
EnvironmentBackgroundProjections: typeof EnvironmentBackgroundProjections
Extrusion: typeof Extrusion
File3dm: typeof File3dm
File3dmBitmapTable: typeof File3dmBitmapTable
File3dmDecalTable: typeof File3dmDecalTable
File3dmDimStyleTable: typeof File3dmDimStyleTable
File3dmEmbeddedFileTable: typeof File3dmEmbeddedFileTable
File3dmGroupTable: typeof File3dmGroupTable
File3dmInstanceDefinitionTable: typeof File3dmInstanceDefinitionTable
File3dmLayerTable: typeof File3dmLayerTable
File3dmLinetypeTable: typeof File3dmLinetypeTable
File3dmMaterialTable: typeof File3dmMaterialTable
File3dmMeshModifiers: typeof File3dmMeshModifiers
File3dmObject: typeof File3dmObject
File3dmObjectTable: typeof File3dmObjectTable
File3dmPlugInData: typeof File3dmPlugInData
File3dmPlugInDataTable: typeof File3dmPlugInDataTable
File3dmPostEffectTable: typeof File3dmPostEffectTable
File3dmRdkDocumentData: typeof File3dmRdkDocumentData
File3dmRenderContentTable: typeof File3dmRenderContentTable
File3dmSettings: typeof File3dmSettings
File3dmShutLiningCurveTable: typeof File3dmShutLiningCurveTable
File3dmStringTable: typeof File3dmStringTable
File3dmViewTable: typeof File3dmViewTable
File3dmWriteOptions: typeof File3dmWriteOptions
FileReference: typeof FileReference
Font: typeof Font
GeometryBase: typeof GeometryBase
GroundPlane: typeof GroundPlane
Group: typeof Group
Hatch: typeof Hatch
InstanceDefinition: typeof InstanceDefinition
InstanceDefinitionUpdateType: typeof InstanceDefinitionUpdateType
InstanceReference: typeof InstanceReference
Intersection: typeof Intersection
Layer: typeof Layer
Leader: typeof Leader
Light: typeof Light
LightStyle: typeof LightStyle
Line: typeof Line
LineCircleIntersection: typeof LineCircleIntersection
LineCurve: typeof LineCurve
LineCylinderIntersection: typeof LineCylinderIntersection
LineSphereIntersection: typeof LineSphereIntersection
LinearWorkflow: typeof LinearWorkflow
Linetype: typeof Linetype
Mappings: typeof Mappings
Material: typeof Material
Mesh: typeof Mesh
MeshFaceList: typeof MeshFaceList
MeshNormalList: typeof MeshNormalList
MeshTextureCoordinateList: typeof MeshTextureCoordinateList
MeshTopologyEdgeList: typeof MeshTopologyEdgeList
MeshType: typeof MeshType
MeshVertexColorList: typeof MeshVertexColorList
MeshVertexList: typeof MeshVertexList
MeshingParameters: typeof MeshingParameters
ModelComponent: typeof ModelComponent
NurbsCurve: typeof NurbsCurve
NurbsCurveKnotList: typeof NurbsCurveKnotList
NurbsCurvePointList: typeof NurbsCurvePointList
NurbsSurface: typeof NurbsSurface
NurbsSurfaceKnotList: typeof NurbsSurfaceKnotList
NurbsSurfacePointList: typeof NurbsSurfacePointList
ObjectAttributes: typeof ObjectAttributes
ObjectColorSource: typeof ObjectColorSource
ObjectDecoration: typeof ObjectDecoration
ObjectLinetypeSource: typeof ObjectLinetypeSource
ObjectMaterialSource: typeof ObjectMaterialSource
ObjectMode: typeof ObjectMode
ObjectPlotColorSource: typeof ObjectPlotColorSource
ObjectPlotWeightSource: typeof ObjectPlotWeightSource
ObjectType: typeof ObjectType
PhysicallyBasedMaterial: typeof PhysicallyBasedMaterial
Plane: typeof Plane
PlaneSphereIntersection: typeof PlaneSphereIntersection
PlaneSurface: typeof PlaneSurface
Point: typeof Point
Point3d: typeof Point3d
Point3dList: typeof Point3dList
PointCloud: typeof PointCloud
PointCloudItem: typeof PointCloudItem
PointGrid: typeof PointGrid
PolyCurve: typeof PolyCurve
Polyline: typeof Polyline
PolylineCurve: typeof PolylineCurve
PostEffect: typeof PostEffect
PostEffectTypes: typeof PostEffectTypes
Projections: typeof Projections
RenderChannels: typeof RenderChannels
RenderChannelsModes: typeof RenderChannelsModes
RenderContent: typeof RenderContent
RenderEnvironment: typeof RenderEnvironment
RenderEnvironments: typeof RenderEnvironments
RenderMaterial: typeof RenderMaterial
RenderSettings: typeof RenderSettings
RenderTexture: typeof RenderTexture
RevSurface: typeof RevSurface
SafeFrame: typeof SafeFrame
ShutLining: typeof ShutLining
ShutLiningCurve: typeof ShutLiningCurve
Skylight: typeof Skylight
Sphere: typeof Sphere
SphereSphereIntersection: typeof SphereSphereIntersection
SubD: typeof SubD
Sun: typeof Sun
Surface: typeof Surface
SurfaceProxy: typeof SurfaceProxy
Text: typeof Text
TextDot: typeof TextDot
Texture: typeof Texture
TextureMapping: typeof TextureMapping
TextureType: typeof TextureType
TextureUvwWrapping: typeof TextureUvwWrapping
Thickening: typeof Thickening
Transform: typeof Transform
TransformRigidType: typeof TransformRigidType
TransformSimilarityType: typeof TransformSimilarityType
UnitSystem: typeof UnitSystem
ViewInfo: typeof ViewInfo
ViewportInfo: typeof ViewportInfo

Generated using TypeDoc

\ No newline at end of file +

Constructors

Properties

ActiveSpace: typeof ActiveSpace
AnnotationBase: typeof AnnotationBase
AnnotationType: typeof AnnotationType
Arc: typeof Arc
ArcCurve: typeof ArcCurve
ArchivableDictionary: typeof ArchivableDictionary
Arrowhead: typeof Arrowhead
ArrowheadTypes: typeof ArrowheadTypes
BasepointZero: typeof BasepointZero
BezierCurve: typeof BezierCurve
Bitmap: typeof Bitmap
BoundingBox: typeof BoundingBox
Box: typeof Box
Brep: typeof Brep
BrepEdge: typeof BrepEdge
BrepEdgeList: typeof BrepEdgeList
BrepFace: typeof BrepFace
BrepFaceList: typeof BrepFaceList
BrepSurfaceList: typeof BrepSurfaceList
BrepVertex: typeof BrepVertex
BrepVertexList: typeof BrepVertexList
CachedTextureCoordinates: typeof CachedTextureCoordinates
Centermark: typeof Centermark
Circle: typeof Circle
CommonObject: typeof CommonObject
ComponentIndex: typeof ComponentIndex
ComponentIndexType: typeof ComponentIndexType
Cone: typeof Cone
ConstructionPlane: typeof ConstructionPlane
CoordinateSystem: typeof CoordinateSystem
Curve: typeof Curve
CurveEvaluationSide: typeof CurveEvaluationSide
CurveOrientation: typeof CurveOrientation
CurvePiping: typeof CurvePiping
CurvePipingCapTypes: typeof CurvePipingCapTypes
CurveProxy: typeof CurveProxy
Cylinder: typeof Cylinder
Decal: typeof Decal
DecalMappings: typeof DecalMappings
DecalProjections: typeof DecalProjections
DimAngular: typeof DimAngular
DimLinear: typeof DimLinear
DimOrdinate: typeof DimOrdinate
DimRadial: typeof DimRadial
Dimension: typeof Dimension
DimensionStyle: typeof DimensionStyle
Displacement: typeof Displacement
DisplacementSweepResolutionFormulas: typeof DisplacementSweepResolutionFormulas
Dithering: typeof Dithering
DitheringMethods: typeof DitheringMethods
DracoCompression: typeof DracoCompression
DracoCompressionOptions: typeof DracoCompressionOptions
EarthAnchorPoint: typeof EarthAnchorPoint
EdgeSoftening: typeof EdgeSoftening
Ellipse: typeof Ellipse
EmbeddedFile: typeof EmbeddedFile
Environment: typeof Environment
EnvironmentBackgroundProjections: typeof EnvironmentBackgroundProjections
Extrusion: typeof Extrusion
File3dm: typeof File3dm
File3dmBitmapTable: typeof File3dmBitmapTable
File3dmDecalTable: typeof File3dmDecalTable
File3dmDimStyleTable: typeof File3dmDimStyleTable
File3dmEmbeddedFileTable: typeof File3dmEmbeddedFileTable
File3dmGroupTable: typeof File3dmGroupTable
File3dmInstanceDefinitionTable: typeof File3dmInstanceDefinitionTable
File3dmLayerTable: typeof File3dmLayerTable
File3dmLinetypeTable: typeof File3dmLinetypeTable
File3dmMaterialTable: typeof File3dmMaterialTable
File3dmMeshModifiers: typeof File3dmMeshModifiers
File3dmObject: typeof File3dmObject
File3dmObjectTable: typeof File3dmObjectTable
File3dmPlugInData: typeof File3dmPlugInData
File3dmPlugInDataTable: typeof File3dmPlugInDataTable
File3dmPostEffectTable: typeof File3dmPostEffectTable
File3dmRdkDocumentData: typeof File3dmRdkDocumentData
File3dmRenderContentTable: typeof File3dmRenderContentTable
File3dmSettings: typeof File3dmSettings
File3dmShutLiningCurveTable: typeof File3dmShutLiningCurveTable
File3dmStringTable: typeof File3dmStringTable
File3dmViewTable: typeof File3dmViewTable
File3dmWriteOptions: typeof File3dmWriteOptions
FileReference: typeof FileReference
Font: typeof Font
GeometryBase: typeof GeometryBase
GroundPlane: typeof GroundPlane
Group: typeof Group
Hatch: typeof Hatch
InstanceDefinition: typeof InstanceDefinition
InstanceDefinitionUpdateType: typeof InstanceDefinitionUpdateType
InstanceReference: typeof InstanceReference
Intersection: typeof Intersection
Layer: typeof Layer
Leader: typeof Leader
Light: typeof Light
LightStyle: typeof LightStyle
Line: typeof Line
LineCircleIntersection: typeof LineCircleIntersection
LineCurve: typeof LineCurve
LineCylinderIntersection: typeof LineCylinderIntersection
LineSphereIntersection: typeof LineSphereIntersection
LinearWorkflow: typeof LinearWorkflow
Linetype: typeof Linetype
Mappings: typeof Mappings
Material: typeof Material
Mesh: typeof Mesh
MeshFaceList: typeof MeshFaceList
MeshNormalList: typeof MeshNormalList
MeshTextureCoordinateList: typeof MeshTextureCoordinateList
MeshTopologyEdgeList: typeof MeshTopologyEdgeList
MeshType: typeof MeshType
MeshVertexColorList: typeof MeshVertexColorList
MeshVertexList: typeof MeshVertexList
MeshingParameters: typeof MeshingParameters
ModelComponent: typeof ModelComponent
NurbsCurve: typeof NurbsCurve
NurbsCurveKnotList: typeof NurbsCurveKnotList
NurbsCurvePointList: typeof NurbsCurvePointList
NurbsSurface: typeof NurbsSurface
NurbsSurfaceKnotList: typeof NurbsSurfaceKnotList
NurbsSurfacePointList: typeof NurbsSurfacePointList
ObjectAttributes: typeof ObjectAttributes
ObjectColorSource: typeof ObjectColorSource
ObjectDecoration: typeof ObjectDecoration
ObjectLinetypeSource: typeof ObjectLinetypeSource
ObjectMaterialSource: typeof ObjectMaterialSource
ObjectMode: typeof ObjectMode
ObjectPlotColorSource: typeof ObjectPlotColorSource
ObjectPlotWeightSource: typeof ObjectPlotWeightSource
ObjectType: typeof ObjectType
PhysicallyBasedMaterial: typeof PhysicallyBasedMaterial
Plane: typeof Plane
PlaneSphereIntersection: typeof PlaneSphereIntersection
PlaneSurface: typeof PlaneSurface
Point: typeof Point
Point3d: typeof Point3d
Point3dList: typeof Point3dList
PointCloud: typeof PointCloud
PointCloudItem: typeof PointCloudItem
PointGrid: typeof PointGrid
PolyCurve: typeof PolyCurve
Polyline: typeof Polyline
PolylineCurve: typeof PolylineCurve
PostEffect: typeof PostEffect
PostEffectTypes: typeof PostEffectTypes
Projections: typeof Projections
RenderChannels: typeof RenderChannels
RenderChannelsModes: typeof RenderChannelsModes
RenderContent: typeof RenderContent
RenderEnvironment: typeof RenderEnvironment
RenderEnvironments: typeof RenderEnvironments
RenderMaterial: typeof RenderMaterial
RenderSettings: typeof RenderSettings
RenderTexture: typeof RenderTexture
RevSurface: typeof RevSurface
SafeFrame: typeof SafeFrame
ShutLining: typeof ShutLining
ShutLiningCurve: typeof ShutLiningCurve
Skylight: typeof Skylight
Sphere: typeof Sphere
SphereSphereIntersection: typeof SphereSphereIntersection
SubD: typeof SubD
Sun: typeof Sun
Surface: typeof Surface
SurfaceProxy: typeof SurfaceProxy
Text: typeof Text
TextDot: typeof TextDot
Texture: typeof Texture
TextureMapping: typeof TextureMapping
TextureType: typeof TextureType
TextureUvwWrapping: typeof TextureUvwWrapping
Thickening: typeof Thickening
Transform: typeof Transform
TransformRigidType: typeof TransformRigidType
TransformSimilarityType: typeof TransformSimilarityType
UnitSystem: typeof UnitSystem
ViewInfo: typeof ViewInfo
ViewportInfo: typeof ViewportInfo

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/SafeFrame.html b/docs/javascript/api/classes/SafeFrame.html index f4864024f..7aeb69730 100644 --- a/docs/javascript/api/classes/SafeFrame.html +++ b/docs/javascript/api/classes/SafeFrame.html @@ -1,4 +1,4 @@ -SafeFrame | rhino3dm

Class SafeFrame

Constructors

constructor +SafeFrame | rhino3dm

Class SafeFrame

Constructors

Properties

actionFrameLinked: boolean

Action Frame Linked, On = Use the same scale for X and Y. Off = use different scales for X and Y.

-
actionFrameOn: boolean

Turn on the user specified action area, which shown with blue frames.

-
actionFrameXScale: number

Action Frame X-scale. +

actionFrameOn: boolean

Turn on the user specified action area, which shown with blue frames.

+
actionFrameXScale: number

Action Frame X-scale. This value should be in the range 0..1 but it is not clamped. It is displayed in the UI in the range 0..100.

-
actionFrameYScale: number

Action Frame Y-scale. +

actionFrameYScale: number

Action Frame Y-scale. This value should be in the range 0..1 but it is not clamped. It is displayed in the UI in the range 0..100.

-
enabled: boolean

Determines whether the safe-frame is enabled.

-
fieldGridOn: boolean
liveFrameOn: boolean

Turn on the live area, which shows the size of the rendered view as a yellow frame +

enabled: boolean

Determines whether the safe-frame is enabled.

+
fieldGridOn: boolean
liveFrameOn: boolean

Turn on the live area, which shows the size of the rendered view as a yellow frame in the viewport.

-
perspectiveOnly: boolean

Show the safe-frame only in perspective views.

-
titleFrameLinked: boolean

Title Frame Linked, On = Use the same scale for X and Y. Off = use +

perspectiveOnly: boolean

Show the safe-frame only in perspective views.

+
titleFrameLinked: boolean

Title Frame Linked, On = Use the same scale for X and Y. Off = use different scales for X and Y.

-
titleFrameOn: boolean

Show a user specified title area frame in orange.

-
titleFrameXScale: number

Title Frame X-scale. +

titleFrameOn: boolean

Show a user specified title area frame in orange.

+
titleFrameXScale: number

Title Frame X-scale. This value should be in the range 0..1 but it is not clamped. It is displayed in the UI in the range 0..100.

-
titleFrameYScale: number

Title Frame Y-scale. +

titleFrameYScale: number

Title Frame Y-scale. This value should be in the range 0..1 but it is not clamped. It is displayed in the UI in the range 0..100.

-

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/ShutLining.html b/docs/javascript/api/classes/ShutLining.html index bf0c7f5ac..6be1960ae 100644 --- a/docs/javascript/api/classes/ShutLining.html +++ b/docs/javascript/api/classes/ShutLining.html @@ -1,9 +1,9 @@ -ShutLining | rhino3dm

Class ShutLining

Constructors

constructor +ShutLining | rhino3dm

Class ShutLining

Constructors

Properties

autoUpdate: boolean
faceted: boolean
forceUpdate: boolean
on: boolean

Methods

Generated using TypeDoc

\ No newline at end of file +

Constructors

Properties

autoUpdate: boolean
faceted: boolean
forceUpdate: boolean
on: boolean

Methods

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/ShutLiningCurve.html b/docs/javascript/api/classes/ShutLiningCurve.html index d796071b3..e1d60cbd9 100644 --- a/docs/javascript/api/classes/ShutLiningCurve.html +++ b/docs/javascript/api/classes/ShutLiningCurve.html @@ -1,8 +1,8 @@ -ShutLiningCurve | rhino3dm

Class ShutLiningCurve

Constructors

constructor +ShutLiningCurve | rhino3dm

Class ShutLiningCurve

Constructors

Properties

Constructors

Properties

enabled: boolean
id: string
isBump: boolean
profile: number
pull: boolean
radius: number

Generated using TypeDoc

\ No newline at end of file +

Constructors

Properties

enabled: boolean
id: string
isBump: boolean
profile: number
pull: boolean
radius: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Skylight.html b/docs/javascript/api/classes/Skylight.html index e6310c8da..43fa42dd0 100644 --- a/docs/javascript/api/classes/Skylight.html +++ b/docs/javascript/api/classes/Skylight.html @@ -1,5 +1,5 @@ -Skylight | rhino3dm

Class Skylight

Constructors

constructor +Skylight | rhino3dm

Class Skylight

Constructors

Properties

Constructors

Properties

enabled: boolean
shadowIntensity: number

ShadowIntensity is currently unused.

-

Generated using TypeDoc

\ No newline at end of file +

Constructors

Properties

enabled: boolean
shadowIntensity: number

ShadowIntensity is currently unused.

+

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Sphere.html b/docs/javascript/api/classes/Sphere.html index cf35b90f3..06b4ba515 100644 --- a/docs/javascript/api/classes/Sphere.html +++ b/docs/javascript/api/classes/Sphere.html @@ -1,4 +1,4 @@ -Sphere | rhino3dm

Class Sphere

Constructors

constructor +Sphere | rhino3dm

Class Sphere

Constructors

Properties

Constructors

Properties

center: number[]

Gets or sets the center point of the sphere.

-
diameter: number

Gets or sets the diameter for this sphere.

-
isValid: boolean

Gets a value that indicates whether the sphere is valid.

-
northPole: number[]

Gets the point at the North Pole of the sphere. +

Constructors

Properties

center: number[]

Gets or sets the center point of the sphere.

+
diameter: number

Gets or sets the diameter for this sphere.

+
isValid: boolean

Gets a value that indicates whether the sphere is valid.

+
northPole: number[]

Gets the point at the North Pole of the sphere. This is the parameterization singularity that can be obtained, at V value +Math.Pi/2.

-
radius: number

Gets or sets the Radius for this sphere.

-
southPole: number[]

Gets the point at the South Pole of the sphere. +

radius: number

Gets or sets the Radius for this sphere.

+
southPole: number[]

Gets the point at the South Pole of the sphere. This is the parameterization singularity that can be obtained, at V value -Math.Pi/2.

-

Methods

  • Parameters

Methods

  • Parameters

    • testPoint: number[]

      Point to project onto the sphere.

    Returns object

    [boolean, number, number] (boolean) true on success, false on failure. This function will fail if the point it coincident with the sphere center. (number) The longitudinal angle (in radians; 0.0 to 2pi) where the sphere approaches testPoint best. (number) The latitudinal angle (in radians; -0.5pi to +0.5pi) where the sphere approaches testPoint best.

    Description

    Finds the angle parameters on this sphere that are closest to a test point.

    -
  • Parameters

  • Parameters

    • testPoint: number[]

      Point to project onto Sphere.

    Returns number[]

    Point on sphere surface closest to testPoint.

    Description

    Returns point on sphere that is closest to given point.

    -
  • Returns object

    A js object.

    +
  • Returns object

    A js object.

    Description

    Encodes a sphere to json formatted data.

    -
  • Parameters

  • Parameters

    • degrees: number

      An angle in degrees for the meridian.

    Returns Circle

    A circle.

    Description

    Computes the parallel at a specific latitude angle. The angle is specified in degrees.

    -
  • Parameters

  • Parameters

    • radians: number

      An angle in radians for the parallel.

    Returns Circle

    A circle.

    Description

    Computes the parallel at a specific latitude angle. The angle is specified in radians.

    -
  • Parameters

    • degrees: number

      An angle in degrees.

    Returns Circle

    A circle.

    Description

    Computes the meridian at a specific longitude angle. The angle is specified in degrees.

    -
  • Parameters

    • radians: number

      An angle in radians.

    Returns Circle

    A circle.

    Description

    Computes the meridian at a specific longitude angle. The angle is specified in radians.

    -
  • Parameters

    • longitudeRadians: number

      A number within the interval [0, 2pi].

      +
  • Parameters

    • longitudeRadians: number

      A number within the interval [0, 2pi].

    • latitudeRadians: number

      A number within the interval [-pi/2, pi/2].

    Returns number[]

    A vector.

    Description

    Computes the normal at a specific angular location on the sphere.

    -
  • Parameters

    • longitudeRadians: number

      A number within the interval [0, 2pi].

      +
  • Parameters

    • longitudeRadians: number

      A number within the interval [0, 2pi].

    • latitudeRadians: number

      A number within the interval [-pi/2,pi/2].

    Returns number[]

    A point value.

    Description

    Evaluates the sphere at specific longitude and latitude angles.

    -
  • Returns object

    A js object.

    +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/SubD.html b/docs/javascript/api/classes/SubD.html index 3f596eb9f..9fb9d99a7 100644 --- a/docs/javascript/api/classes/SubD.html +++ b/docs/javascript/api/classes/SubD.html @@ -1,4 +1,4 @@ -SubD | rhino3dm

Class SubD

Hierarchy (view full)

Constructors

constructor +SubD | rhino3dm

Class SubD

Hierarchy (view full)

Constructors

Properties

hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isSolid: boolean

Test SubD to see if the active level is a solid. +

isSolid: boolean

Test SubD to see if the active level is a solid. A "solid" is a closed oriented manifold, or a closed oriented manifold.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Returns void

    Description

    Clear all cached evaluation information (meshes, surface points, bounding boxes, ...) +

userStringCount: number

Gets the amount of user strings.

+

Methods

  • Returns void

    Description

    Clear all cached evaluation information (meshes, surface points, bounding boxes, ...) that depends on edge tags, vertex tags, and the location of vertex control points.

    -
  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -46,48 +46,48 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns boolean

    false if object cannot be converted to a deformable object. true if object was +

  • Returns boolean

    false if object cannot be converted to a deformable object. true if object was already deformable or was converted into a deformable object.

    Description

    If possible, converts the object into a form that can be accurately modified with "squishy" transformations like projections, shears, an non-uniform scaling.

    -
  • Parameters

    • angleRadians: number

      Angle of rotation in radians.

    • rotationAxis: number[]

      Direction of the axis of rotation.

    • rotationCenter: number[]

      Point on the axis of rotation.

    Returns boolean

    true if geometry successfully rotated.

    Description

    Rotates the object about the specified axis. A positive rotation angle results in a counter-clockwise rotation about the axis (right hand rule).

    -
  • Parameters

    • scaleFactor: number

      The uniform scaling factor.

    Returns boolean

    true if geometry successfully scaled.

    Description

    Scales the object by the specified factor. The scale is centered at the origin.

    -
  • Parameters

    • key: string

      id used to retrieve this string.

    • value: string

      string associated with key.

    Returns boolean

    true if successful, false if not.

    Description

    Attach a user string (key,value combination) to this geometry.

    -
  • Returns boolean

    true on success

    +
  • Returns boolean

    true on success

    Description

    Apply the Catmull-Clark subdivision algorithm and save the results in this SubD.

    -
  • Parameters

    • xform: Transform

      Transformation to apply to geometry.

    Returns boolean

    true if geometry successfully transformed.

    Description

    Transforms the geometry. If the input Transform has a SimilarityType of OrientationReversing, you may want to consider flipping the transformed geometry after calling this function when it makes sense. For example, you may want to call Flip() on a Brep after transforming it.

    -
  • Parameters

    • translationVector: number[]

      A moving vector.

    Returns boolean

    true if geometry successfully translated.

    Description

    Translates the object along the specified vector.

    -
  • Returns number

    Number of vertices and edges that were changed during the update.

    +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Sun.html b/docs/javascript/api/classes/Sun.html index f83a38728..857bc0182 100644 --- a/docs/javascript/api/classes/Sun.html +++ b/docs/javascript/api/classes/Sun.html @@ -1,4 +1,4 @@ -Sun | rhino3dm

Class Sun

Constructors

constructor +Sun | rhino3dm

Class Sun

Constructors

Properties

altitude azimuth day @@ -24,23 +24,23 @@

Methods

Constructors

Properties

altitude: number

The sun's altitude above the horizon in degrees in the range -90 to +90. Setting this value will also set the sun to manual control mode.

-
azimuth: number

The sun's azimuth in degrees. The value increases Eastwards with North as zero. +

azimuth: number

The sun's azimuth in degrees. The value increases Eastwards with North as zero. Setting this value will also set the sun to manual control mode. Note: This value is not affected by the direction of north.

-
day: number
daylightSavingMinutes: number

Daylight saving time in minutes

-
daylightSavingOn: boolean

Daylight saving time 'on' state

-
enableAllowed: boolean
enableOn: boolean
hours: number
intensity: number

Sun intensity.

-
isValid: boolean
latitude: number

The observer's latitude.

-
light: Light

Get a Light which represents the sun. If manual control is in effect, no sun calculation +

day: number
daylightSavingMinutes: number

Daylight saving time in minutes

+
daylightSavingOn: boolean

Daylight saving time 'on' state

+
enableAllowed: boolean
enableOn: boolean
hours: number
intensity: number

Sun intensity.

+
isValid: boolean
latitude: number

The observer's latitude.

+
light: Light

Get a Light which represents the sun. If manual control is in effect, no sun calculation is performed; the function uses the last known values of azimuth and altitude. If manual control is not in effect, the observer's position, date, time, time zone and daylight saving values are used to calculate the position of the sun.

-
longitude: number

The observer's longitude.

-
manualControlAllowed: boolean
manualControlOn: boolean

Manual control 'on' state. When true, allows the user to set the sun +

longitude: number

The observer's longitude.

+
manualControlAllowed: boolean
manualControlOn: boolean

Manual control 'on' state. When true, allows the user to set the sun azimuth and altitude directly. When false, the values are computed.

-
maxYear: number
minYear: number
month: number
north: number

Angle in degrees on world X-Y plane that should be considered north in the model. +

maxYear: number
minYear: number
month: number
north: number

Angle in degrees on world X-Y plane that should be considered north in the model. The angle is measured starting at the x-axis and increases anti-clockwise. The y-axis corresponds to a 'north' angle of 90 degrees.

-
timeZone: number

The observer's time zone measured in hours relative to UTC.

-
vector: number[]
year: number

Methods

  • ...

    -

    Parameters

    • altitude: number

    Returns object

Generated using TypeDoc

\ No newline at end of file +
timeZone: number

The observer's time zone measured in hours relative to UTC.

+
vector: number[]
year: number

Methods

  • ...

    +

    Parameters

    • altitude: number

    Returns object

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Surface.html b/docs/javascript/api/classes/Surface.html index 64ed0ee25..5e798f0f9 100644 --- a/docs/javascript/api/classes/Surface.html +++ b/docs/javascript/api/classes/Surface.html @@ -1,4 +1,4 @@ -Surface | rhino3dm

Class Surface

Hierarchy (view full)

Constructors

constructor +Surface | rhino3dm

Class Surface

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isSolid: boolean

Gets a values indicating whether a surface is solid.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isSolid: boolean

Gets a values indicating whether a surface is solid.

+
isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
userStringCount: number

Gets the amount of user strings.

-

Methods

userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • direction: number

      0 gets first parameter's domain, 1 gets second parameter's domain.

    Returns number

    The maximum degree.

    Description

    Returns the maximum algebraic degree of any span (or a good estimate if curve spans are not algebraic).

    -
  • Parameters

    • direction: number

      0 gets first parameter, 1 gets second parameter.

      +
  • Parameters

    • direction: number

      0 gets first parameter, 1 gets second parameter.

    Returns number[]

    An interval value.

    Description

    Gets the domain in a direction.

    -
  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
  • Parameters

    • u: number

      A first parameter.

    • v: number

      A second parameter.

    Returns object

    [boolean, Plane] (boolean) true if this operation succeeded; otherwise false. (Plane) A frame plane that will be computed during this call.

    Description

    Computes the orient plane on a surface given a U and V parameter. This is the simple evaluation call with no error handling.

    -
  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. +

  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -77,61 +77,61 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

  • Parameters

    • surfaceS: number

      The parameter in the S, or sometimes U, direction, of this surface.

    • surfaceT: number

      The parameter in the T, or sometimes V, direction of this surface.

    Returns object

    [boolean, number, number] (boolean) True if the operation succeeded; otherwise, false. (number) S on the NURBS form. (number) T on the NURBS form.

    Description

    Translates a parameter from the current surface to the parameter space of the surface returned by .

    -
  • Parameters

    • direction: number

      0 gets first parameter's domain, 1 gets second parameter's domain.

      +
  • Parameters

    • direction: number

      0 gets first parameter's domain, 1 gets second parameter's domain.

    Returns number[]

    An array with span vectors; or null on error.

    Description

    Gets array of span "knots".

    -
  • Parameters

    • nurbsS: number

      The parameter in the S, or sometimes U, direction of the NURBS form surface.

      +
  • Parameters

    • nurbsS: number

      The parameter in the S, or sometimes U, direction of the NURBS form surface.

    • nurbsT: number

      The parameter in the T, or sometimes V, direction of the NURBS form surface.

    Returns object

    [boolean, number, number] (boolean) True if the operation succeeded; otherwise, false. (number) S on this surface. (number) T o n this surface.

    Description

    Translates a parameter from a value on the surface returned by to the current surface.

    -
  • Parameters

  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Parameters

    • u: number

      Surface u parameter to test.

    • v: number

      Surface v parameter to test.

    Returns number

    0 if not a seam, 1 if u == Domain(0)[i] and srf(u, v) == srf(Domain(0)[1-i], v) 2 if v == Domain(1)[i] and srf(u, v) == srf(u, Domain(1)[1-i]) 3 if 1 and 2 are true.

    Description

    Tests if a surface parameter value is at a seam.

    -
  • Parameters

  • Parameters

    • u: number

      Surface u parameter to test.

    • v: number

      Surface v parameter to test.

    • exact: boolean

      If true, test if (u,v) is exactly at a singularity. If false, test if close enough to cause numerical problems.

    Returns boolean

    true if surface is singular at (s,t)

    Description

    Tests if a surface parameter value is at a singularity.

    -
  • Parameters

  • Parameters

    • direction: number

      0 = U, 1 = V.

    Returns boolean

    The indicating boolean value.

    Description

    Gets a value indicating if the surface is closed in a direction.

    -
  • Returns boolean

    true if the surface is a portion of a cone.

    +
  • Returns boolean

    true if the surface is a portion of a cone.

    Description

    Determines if the surface is a portion of a cone within RhinoMath.ZeroTolerance.

    -
  • Returns boolean

    true if the surface is a portion of a cylinder.

    +
  • Returns boolean

    true if the surface is a portion of a cylinder.

    Description

    Determines if the surface is a portion of a cylinder within RhinoMath.ZeroTolerance.

    -
  • Parameters

  • Parameters

    • direction: number

      0 = U, 1 = V.

    Returns boolean

    The indicating boolean value.

    Description

    Gets a value indicating if the surface is periodic in a direction (default is false).

    -
  • Returns boolean

    true if the surface is planar (flat) to within RhinoMath.ZeroTolerance units (1e-12).

    +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/SurfaceProxy.html b/docs/javascript/api/classes/SurfaceProxy.html index 23ff13a53..27cb203e7 100644 --- a/docs/javascript/api/classes/SurfaceProxy.html +++ b/docs/javascript/api/classes/SurfaceProxy.html @@ -1,4 +1,4 @@ -SurfaceProxy | rhino3dm

Class SurfaceProxy

Hierarchy (view full)

Constructors

constructor +SurfaceProxy | rhino3dm

Class SurfaceProxy

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isSolid: boolean

Gets a values indicating whether a surface is solid.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isSolid: boolean

Gets a values indicating whether a surface is solid.

+
isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Parameters

userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • direction: number

      0 gets first parameter's domain, 1 gets second parameter's domain.

    Returns number

    The maximum degree.

    Description

    Returns the maximum algebraic degree of any span (or a good estimate if curve spans are not algebraic).

    -
  • Parameters

  • Parameters

    • direction: number

      0 gets first parameter, 1 gets second parameter.

    Returns number[]

    An interval value.

    Description

    Gets the domain in a direction.

    -
  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
  • Parameters

    • u: number

      A first parameter.

    • v: number

      A second parameter.

    Returns object

    [boolean, Plane] (boolean) true if this operation succeeded; otherwise false. (Plane) A frame plane that will be computed during this call.

    Description

    Computes the orient plane on a surface given a U and V parameter. This is the simple evaluation call with no error handling.

    -
  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -77,61 +77,61 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

  • Parameters

    • surfaceS: number

      The parameter in the S, or sometimes U, direction, of this surface.

    • surfaceT: number

      The parameter in the T, or sometimes V, direction of this surface.

    Returns object

    [boolean, number, number] (boolean) True if the operation succeeded; otherwise, false. (number) S on the NURBS form. (number) T on the NURBS form.

    Description

    Translates a parameter from the current surface to the parameter space of the surface returned by .

    -
  • Parameters

    • direction: number

      0 gets first parameter's domain, 1 gets second parameter's domain.

    Returns number[]

    An array with span vectors; or null on error.

    Description

    Gets array of span "knots".

    -
  • Parameters

  • Parameters

    • nurbsS: number

      The parameter in the S, or sometimes U, direction of the NURBS form surface.

    • nurbsT: number

      The parameter in the T, or sometimes V, direction of the NURBS form surface.

    Returns object

    [boolean, number, number] (boolean) True if the operation succeeded; otherwise, false. (number) S on this surface. (number) T o n this surface.

    Description

    Translates a parameter from a value on the surface returned by to the current surface.

    -
  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns string[]

    Description

    Gets a copy of all (user key string, user value string) pairs attached to this geometry.

    -
  • Returns string[]

    Description

    Gets a copy of all (user key string, user value string) pairs attached to this geometry.

    +
  • Parameters

    • u: number

      Surface u parameter to test.

    • v: number

      Surface v parameter to test.

    Returns number

    0 if not a seam, 1 if u == Domain(0)[i] and srf(u, v) == srf(Domain(0)[1-i], v) 2 if v == Domain(1)[i] and srf(u, v) == srf(u, Domain(1)[1-i]) 3 if 1 and 2 are true.

    Description

    Tests if a surface parameter value is at a seam.

    -
  • Parameters

    • u: number

      Surface u parameter to test.

    • v: number

      Surface v parameter to test.

    • exact: boolean

      If true, test if (u,v) is exactly at a singularity. If false, test if close enough to cause numerical problems.

    Returns boolean

    true if surface is singular at (s,t)

    Description

    Tests if a surface parameter value is at a singularity.

    -
  • Parameters

    • direction: number

      0 = U, 1 = V.

    Returns boolean

    The indicating boolean value.

    Description

    Gets a value indicating if the surface is closed in a direction.

    -
  • Returns boolean

    true if the surface is a portion of a cone.

    +
  • Returns boolean

    true if the surface is a portion of a cone.

    Description

    Determines if the surface is a portion of a cone within RhinoMath.ZeroTolerance.

    -
  • Returns boolean

    true if the surface is a portion of a cylinder.

    +
  • Returns boolean

    true if the surface is a portion of a cylinder.

    Description

    Determines if the surface is a portion of a cylinder within RhinoMath.ZeroTolerance.

    -
  • Parameters

    • direction: number

      0 = U, 1 = V.

    Returns boolean

    The indicating boolean value.

    Description

    Gets a value indicating if the surface is periodic in a direction (default is false).

    -
  • Returns boolean

    true if the surface is planar (flat) to within RhinoMath.ZeroTolerance units (1e-12).

    +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Text.html b/docs/javascript/api/classes/Text.html index 031bb2d40..a65e4e51a 100644 --- a/docs/javascript/api/classes/Text.html +++ b/docs/javascript/api/classes/Text.html @@ -1,4 +1,4 @@ -Text | rhino3dm

Class Text

Hierarchy (view full)

Constructors

constructor +Text | rhino3dm

Class Text

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

annotationType: AnnotationTypes

Type of annotation

-
dimensionStyleId: string

Id of this annotation's parent dimstyle +

Constructors

Properties

annotationType: AnnotationType

Type of annotation

+
dimensionStyleId: string

Id of this annotation's parent dimstyle If this annotation has overrides to dimstyle properties, those overrides will be represented in the DimensionStyle returned by DimensionStyle(ParentStyle)

-
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

+
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
plainText: string

Text stripped of RTF formatting information

-
plainTextWithFields: string

Text stripped of RTF formatting information and with field expressions intact

-
plane: Plane

Plane that this annotation lies on

-
richText: string

Text including additional RTF formatting information

-
textIsWrapped: boolean

Is text wrapping on

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
plainText: string

Text stripped of RTF formatting information

+
plainTextWithFields: string

Text stripped of RTF formatting information and with field expressions intact

+
plane: Plane

Plane that this annotation lies on

+
richText: string

Text including additional RTF formatting information

+
textIsWrapped: boolean

Is text wrapping on

+
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -56,41 +56,41 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns boolean

    false if object cannot be converted to a deformable object. true if object was +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/TextDot.html b/docs/javascript/api/classes/TextDot.html index 66e5e55ba..0ac30002e 100644 --- a/docs/javascript/api/classes/TextDot.html +++ b/docs/javascript/api/classes/TextDot.html @@ -1,4 +1,4 @@ -TextDot | rhino3dm

Class TextDot

Hierarchy (view full)

Constructors

constructor +TextDot | rhino3dm

Class TextDot

Hierarchy (view full)

Constructors

Properties

Constructors

Properties

fontFace: string

Font face used for displaying the dot

-
fontHeight: number

Height of font used for displaying the dot

-
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

-
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like +

fontHeight: number

Height of font used for displaying the dot

+
hasBrepForm: boolean

Returns true if the Brep.TryConvertBrep function will be successful for this object

+
isDeformable: boolean

true if object can be accurately modified with "squishy" transformations like projections, shears, and non-uniform scaling.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
objectType: ObjectType

Useful for switch statements that need to differentiate between +

isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
objectType: ObjectType

Useful for switch statements that need to differentiate between basic object types like points, curves, surfaces, and so on.

-
point: number[]

Gets or sets the position of the text dot.

-
secondaryText: string

Gets or sets the secondary text of the text dot.

-
text: string

Gets or sets the primary text of the text dot.

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Returns GeometryBase

    An object of the same type as this, with the same properties and behavior.

    +
point: number[]

Gets or sets the position of the text dot.

+
secondaryText: string

Gets or sets the secondary text of the text dot.

+
text: string

Gets or sets the primary text of the text dot.

+
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • accurate: boolean

      If true, a physically accurate bounding box will be computed. If not, a bounding box estimate will be computed. For some geometry types there is no difference between the estimate and the accurate bounding box. Estimated bounding boxes can be computed much (much) faster than accurate (or "tight") bounding boxes. @@ -48,40 +48,40 @@

    Returns BoundingBox

    The bounding box of the geometry in world coordinates or BoundingBox.Empty if not bounding box could be found.

    Description

    Bounding box solver. Gets the world axis aligned bounding box for the geometry.

    -
  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Returns boolean

    false if object cannot be converted to a deformable object. true if object was +

  • Returns boolean

    false if object cannot be converted to a deformable object. true if object was already deformable or was converted into a deformable object.

    Description

    If possible, converts the object into a form that can be accurately modified with "squishy" transformations like projections, shears, an non-uniform scaling.

    -
  • Parameters

    • angleRadians: number

      Angle of rotation in radians.

    • rotationAxis: number[]

      Direction of the axis of rotation.

    • rotationCenter: number[]

      Point on the axis of rotation.

    Returns boolean

    true if geometry successfully rotated.

    Description

    Rotates the object about the specified axis. A positive rotation angle results in a counter-clockwise rotation about the axis (right hand rule).

    -
  • Parameters

    • scaleFactor: number

      The uniform scaling factor.

    Returns boolean

    true if geometry successfully scaled.

    Description

    Scales the object by the specified factor. The scale is centered at the origin.

    -
  • Parameters

    • key: string

      id used to retrieve this string.

    • value: string

      string associated with key.

    Returns boolean

    true if successful, false if not.

    Description

    Attach a user string (key,value combination) to this geometry.

    -
  • Parameters

    • xform: Transform

      Transformation to apply to geometry.

    Returns boolean

    true if geometry successfully transformed.

    Description

    Transforms the geometry. If the input Transform has a SimilarityType of OrientationReversing, you may want to consider flipping the transformed geometry after calling this function when it makes sense. For example, you may want to call Flip() on a Brep after transforming it.

    -
  • Parameters

    • translationVector: number[]

      A moving vector.

    Returns boolean

    true if geometry successfully translated.

    Description

    Translates the object along the specified vector.

    -
  • Parameters

    • json: object

      A json formatted object in the following format (values are orientative):

      {
      version: 10000,
      archive3dm: 60,
      opennurbs: -1877964208,
      data: 'encoded 3dm object data'
      }

    Returns CommonObject

    Description

    Decodes a Rhino Object

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Texture.html b/docs/javascript/api/classes/Texture.html index 4e5764ccd..9027f5202 100644 --- a/docs/javascript/api/classes/Texture.html +++ b/docs/javascript/api/classes/Texture.html @@ -1,4 +1,4 @@ -Texture | rhino3dm

Class Texture

Constructors

constructor +Texture | rhino3dm

Class Texture

Constructors

Properties

enabled fileName id @@ -13,22 +13,22 @@

Methods

Constructors

Properties

enabled: boolean

If the texture is enabled then it will be visible in the rendered display otherwise it will not.

-
fileName: string

Gets or sets a file name that is used by this texture. +

fileName: string

Gets or sets a file name that is used by this texture. NOTE: We are moving away from string-based FileName, and suggest the usage of the new FileReference class.Also, this filename may well not be a path that makes sense on a user's computer because it was a path initially set on a different user's computer. If you want to get a workable path for this user, use the BitmapTable.Find function using this property.

-
id: string

Gets the globally unique identifier of this texture.

-
offset: number[]

Helper for access to the offset value encoded in UvwTransform

-
repeat: number[]

Helper for access to the repeat value encoded in UvwTransform

-
rotation: number

Helper for access to the rotation value encoded in UvwTransform

-
textureType: TextureType

Controls how the pixels in the bitmap are interpreted

-
uvwTransform: Transform

Transform to be applied to each instance of this texture +

id: string

Gets the globally unique identifier of this texture.

+
offset: number[]

Helper for access to the offset value encoded in UvwTransform

+
repeat: number[]

Helper for access to the repeat value encoded in UvwTransform

+
rotation: number

Helper for access to the rotation value encoded in UvwTransform

+
textureType: TextureType

Controls how the pixels in the bitmap are interpreted

+
uvwTransform: Transform

Transform to be applied to each instance of this texture if ApplyUvw is true

-

Texture wrapping mode in the U direction

-

Texture wrapping mode in the V direction

-

Texture wrapping mode in the W direction

-

Methods

Generated using TypeDoc

\ No newline at end of file +

Texture wrapping mode in the U direction

+

Texture wrapping mode in the V direction

+

Texture wrapping mode in the W direction

+

Methods

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/TextureMapping.html b/docs/javascript/api/classes/TextureMapping.html index b32c20af8..215fae0c2 100644 --- a/docs/javascript/api/classes/TextureMapping.html +++ b/docs/javascript/api/classes/TextureMapping.html @@ -1,4 +1,4 @@ -TextureMapping | rhino3dm

Class TextureMapping

Hierarchy (view full)

Constructors

constructor +TextureMapping | rhino3dm

Class TextureMapping

Hierarchy (view full)

Constructors

Properties

hasId: boolean
id: string

The unique Id for this texture mapping object.

-
isPeriodic: boolean
isValid: boolean

Tests an object to see if it is valid.

-
isValidWithLog: [boolean, string]

...

-
requiresVertexNormals: boolean
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Parameters

    • p: number[]

      Vertex location

      +

Constructors

Properties

hasId: boolean
id: string

The unique Id for this texture mapping object.

+
isPeriodic: boolean
isValid: boolean

Tests an object to see if it is valid.

+
isValidWithLog: [boolean, string]

...

+
requiresVertexNormals: boolean
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • p: number[]

      Vertex location

    • n: number[]

      If the mapping projection is ray_projection, then this is the vertex unit normal. Otherwise n is ignored.

    Returns object

    [number, number[]] @@ -39,24 +39,24 @@ Box mapping: 1 = front, 2 = right, 3 = back, 4 = left, 5 = bottom, 6 = top (number[]) Texture coordinate (u,v,w)

    Description

    Evaluate the mapping to get a texture coordinate

    -
  • Parameters

  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • ...

    -

    Parameters

    • direction: number

    Returns boolean

  • ...

    +

    Parameters

    • direction: number

    Returns boolean

  • Parameters

    • key: string

      id used to retrieve this string.

    • value: string

      string associated with key.

    Returns boolean

    true if successful, false if not.

    Description

    Attach a user string (key,value combination) to this geometry.

    -
  • ...

    -

    Parameters

    • i: number
    • j: number

    Returns boolean

  • ...

    -

    Parameters

    • direction: number
    • count: number
    • offset: number

    Returns boolean

  • Returns Cylinder

    Returns true if a valid cylinder is returned.

    +
  • ...

    +

    Parameters

    • i: number
    • j: number

    Returns boolean

  • ...

    +

    Parameters

    • direction: number
    • count: number
    • offset: number

    Returns boolean

  • Returns Cylinder

    Returns true if a valid cylinder is returned.

    Description

    Get a cylindrical projection parameters from this texture mapping.

    -
  • Returns Sphere

    Returns true if a valid sphere is returned.

    +

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Thickening.html b/docs/javascript/api/classes/Thickening.html index edce69e8c..3d17e98ae 100644 --- a/docs/javascript/api/classes/Thickening.html +++ b/docs/javascript/api/classes/Thickening.html @@ -1,7 +1,7 @@ -Thickening | rhino3dm

Class Thickening

Constructors

constructor +Thickening | rhino3dm

Class Thickening

Constructors

Properties

bothSides: boolean
distance: number
offsetOnly: boolean
on: boolean
solid: boolean

Generated using TypeDoc

\ No newline at end of file +

Constructors

Properties

bothSides: boolean
distance: number
offsetOnly: boolean
on: boolean
solid: boolean

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/Transform.html b/docs/javascript/api/classes/Transform.html index c2ff96ebe..0f33474fd 100644 --- a/docs/javascript/api/classes/Transform.html +++ b/docs/javascript/api/classes/Transform.html @@ -1,4 +1,4 @@ -Transform | rhino3dm

Class Transform

Constructors

constructor +Transform | rhino3dm

Class Transform

Constructors

Properties

Constructors

Properties

isAffine: boolean

Tests for an affine transformation. +

Constructors

Properties

isAffine: boolean

Tests for an affine transformation. A transformation is affine if it is valid and its last row is [0, 0, 0, 1]. An affine transformation can be broken into a linear transformation and a translation.

-
isIdentity: boolean

Return true if this Transform is the identity transform

-
isLinear: boolean

Tests for a linear transformation. +

isIdentity: boolean

Return true if this Transform is the identity transform

+
isLinear: boolean

Tests for a linear transformation. A transformation is affine if it is valid and its last row is [0, 0, 0, 1]. If in addition its last column is ( 0, 0, 0, 1)^T then it is linear. An affine transformation can be broken into a linear transformation and a translation.

-
isRotation: boolean

Returns true if this is a proper rotation.

-
isValid: boolean

Gets a value indicating whether or not this Transform is a valid matrix. +

isRotation: boolean

Returns true if this is a proper rotation.

+
isValid: boolean

Gets a value indicating whether or not this Transform is a valid matrix. A valid transform matrix is not allowed to have any invalid numbers.

-
isZero: boolean

True if matrix is Zero4x4, ZeroTransformation, or some other type of +

isZero: boolean

True if matrix is Zero4x4, ZeroTransformation, or some other type of zero. The value xform[3][3] can be anything.

-
isZero4x4: boolean

True if all values are 0

-
isZeroTransformation: boolean

True if all values are 0, except for M33 which is 1.

-
m00: number

Gets or sets this[0,0].

-
m01: number

Gets or sets this[0,1].

-
m02: number

Gets or sets this[0,2].

-
m03: number

Gets or sets this[0,3].

-
m10: number

Gets or sets this[1,0].

-
m11: number

Gets or sets this[1,1].

-
m12: number

Gets or sets this[1,2].

-
m13: number

Gets or sets this[1,3].

-
m20: number

Gets or sets this[2,0].

-
m21: number

Gets or sets this[2,1].

-
m22: number

Gets or sets this[2,2].

-
m23: number

Gets or sets this[2,3].

-
m30: number

Gets or sets this[3,0].

-
m31: number

Gets or sets this[3,1].

-
m32: number

Gets or sets this[3,2].

-
m33: number

Gets or sets this[3,3].

-

Gets a value indicating whether or not the Transform is rigid. +

isZero4x4: boolean

True if all values are 0

+
isZeroTransformation: boolean

True if all values are 0, except for M33 which is 1.

+
m00: number

Gets or sets this[0,0].

+
m01: number

Gets or sets this[0,1].

+
m02: number

Gets or sets this[0,2].

+
m03: number

Gets or sets this[0,3].

+
m10: number

Gets or sets this[1,0].

+
m11: number

Gets or sets this[1,1].

+
m12: number

Gets or sets this[1,2].

+
m13: number

Gets or sets this[1,3].

+
m20: number

Gets or sets this[2,0].

+
m21: number

Gets or sets this[2,1].

+
m22: number

Gets or sets this[2,2].

+
m23: number

Gets or sets this[2,3].

+
m30: number

Gets or sets this[3,0].

+
m31: number

Gets or sets this[3,1].

+
m32: number

Gets or sets this[3,2].

+
m33: number

Gets or sets this[3,3].

+

Gets a value indicating whether or not the Transform is rigid. A rigid transformation can be broken into a proper rotation and a translation, while an isometry transformation could also include a reflection.

-
similarityType: TransformSimilarityType

Gets a value indicating whether or not the Transform maintains similarity. +

similarityType: TransformSimilarityType

Gets a value indicating whether or not the Transform maintains similarity. The easiest way to think of Similarity is that any circle, when transformed, remains a circle. Whereas a non-similarity Transform deforms circles into ellipses.

-

Methods

  • Parameters

Methods

  • Parameters

    • rowDominant: boolean

      If true, returns { M00, M01, M02...}. If false, returns { M00, M10, M20...}.

    Returns number[]

    An array of 16 floats.

    Description

    Return the matrix as a linear array of 16 float values.

    -
  • Returns BoundingBox

    A new bounding box.

    Description

    Computes a new bounding box that is the smallest axis aligned bounding box that contains the transformed result of its 8 original corner points.

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/ViewInfo.html b/docs/javascript/api/classes/ViewInfo.html index 057025054..aa2bc987c 100644 --- a/docs/javascript/api/classes/ViewInfo.html +++ b/docs/javascript/api/classes/ViewInfo.html @@ -1,4 +1,4 @@ -ViewInfo | rhino3dm

Class ViewInfo

Constructors

constructor +ViewInfo | rhino3dm

Class ViewInfo

Constructors

Properties

Methods

Constructors

Properties

focalBlurAperture: number

Gets or sets the Focal blur aperture of the active viewport

-
focalBlurDistance: number

Gets or sets the Focal blur distance of the active viewport

-
focalBlurJitter: number

Gets or sets the Focal blur jitter of the active viewport

-
focalBlurSampleCount: number

Gets or sets the Focal blur sample count of the active viewport

-
name: string

Gets or sets the name of the view.

-
showWallpaperInGrayScale: boolean

True if wallpaper (if any) is to be shown in gray scale in this view.

-
wallpaperHidden: boolean

True if wallpaper (if any) is to be hidden from this view.

-
wallpaperName: string

Methods

Generated using TypeDoc

\ No newline at end of file +
focalBlurDistance: number

Gets or sets the Focal blur distance of the active viewport

+
focalBlurJitter: number

Gets or sets the Focal blur jitter of the active viewport

+
focalBlurSampleCount: number

Gets or sets the Focal blur sample count of the active viewport

+
name: string

Gets or sets the name of the view.

+
showWallpaperInGrayScale: boolean

True if wallpaper (if any) is to be shown in gray scale in this view.

+
wallpaperHidden: boolean

True if wallpaper (if any) is to be hidden from this view.

+
wallpaperName: string

Methods

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/classes/ViewportInfo.html b/docs/javascript/api/classes/ViewportInfo.html index 28bf8aa32..8d36e169f 100644 --- a/docs/javascript/api/classes/ViewportInfo.html +++ b/docs/javascript/api/classes/ViewportInfo.html @@ -1,4 +1,4 @@ -ViewportInfo | rhino3dm

Class ViewportInfo

Hierarchy (view full)

Constructors

constructor +ViewportInfo | rhino3dm

Class ViewportInfo

Hierarchy (view full)

Constructors

Properties

camera35mmLensLength cameraAngle cameraDirection @@ -47,38 +47,38 @@ is not 36/24. (35mm film is 36mm wide and 24mm high.) Setting preserves camera location, changes the frustum, but maintains the frustum's aspect.

-
cameraAngle: number

Gets or sets the 1/2 smallest angle. See for more information.

-
cameraDirection: number[]

Gets the direction that the camera faces.

-
cameraLocation: number[]

Gets the camera location (position) point.

-
cameraUp: number[]

Gets the camera up vector.

-
cameraX: number[]

Gets the unit "to the right" vector.

-
cameraY: number[]

Gets the unit "up" vector.

-
cameraZ: number[]

Gets the unit vector in -CameraDirection.

-
id: string

Sets the viewport's id to the value used to +

cameraAngle: number

Gets or sets the 1/2 smallest angle. See for more information.

+
cameraDirection: number[]

Gets the direction that the camera faces.

+
cameraLocation: number[]

Gets the camera location (position) point.

+
cameraUp: number[]

Gets the camera up vector.

+
cameraX: number[]

Gets the unit "to the right" vector.

+
cameraY: number[]

Gets the unit "up" vector.

+
cameraZ: number[]

Gets the unit vector in -CameraDirection.

+
id: string

Sets the viewport's id to the value used to uniquely identify this viewport. There is no approved way to change the viewport id once it is set in order to maintain consistency across multiple viewports and those routines that manage them.

-
isParallelProjection: boolean

Get or set whether this projection is parallel.

-
isPerspectiveProjection: boolean

Get or set whether this projection is perspective.

-
isTwoPointPerspectiveProjection: boolean

Gets a value that indicates whether this projection is a two-point perspective.

-
isValid: boolean

Tests an object to see if it is valid.

-
isValidCamera: boolean

Gets a value that indicates whether the camera is valid.

-
isValidCameraFrame: boolean
isValidFrustum: boolean

Gets a value that indicates whether the frustum is valid.

-
isValidWithLog: [boolean, string]

...

-
screenPort: number[]

Get or set the screen port. and

-
screenPortAspect: number

Gets the screen aspect ratio. +

isParallelProjection: boolean

Get or set whether this projection is parallel.

+
isPerspectiveProjection: boolean

Get or set whether this projection is perspective.

+
isTwoPointPerspectiveProjection: boolean

Gets a value that indicates whether this projection is a two-point perspective.

+
isValid: boolean

Tests an object to see if it is valid.

+
isValidCamera: boolean

Gets a value that indicates whether the camera is valid.

+
isValidCameraFrame: boolean
isValidFrustum: boolean

Gets a value that indicates whether the frustum is valid.

+
isValidWithLog: [boolean, string]

...

+
screenPort: number[]

Get or set the screen port. and

+
screenPortAspect: number

Gets the screen aspect ratio. This is width / height.

-
targetPoint: number[]

The current value of the target point. This point does not play +

targetPoint: number[]

The current value of the target point. This point does not play a role in the view projection calculations. It can be used as a fixed point when changing the camera so the visible regions of the before and after frustums both contain the region of interest. The default constructor sets this point on ON_3dPoint::UnsetPoint. You must explicitly call one SetTargetPoint() functions to set the target point.

-
userStringCount: number

Gets the amount of user strings.

-

Methods

  • Parameters

    • symmetricFrustum: boolean

      true if you want the resulting frustum to be symmetric.

      +
userStringCount: number

Gets the amount of user strings.

+

Methods

  • Parameters

    • symmetricFrustum: boolean

      true if you want the resulting frustum to be symmetric.

    Returns boolean

    true if the operation succeeded; otherwise, false.

    Description

    Use this function to change projections of valid viewports from parallel to perspective. It will make common additional @@ -88,7 +88,7 @@ If the current projection is parallel and symmetricFrustum, FrustumIsLeftRightSymmetric() and FrustumIsTopBottomSymmetric() are all equal, then no changes are made and true is returned.

    -
  • Parameters

    • targetDistance: number

      If RhinoMath.UnsetValue this parameter is ignored. +

  • Parameters

    • targetDistance: number

      If RhinoMath.UnsetValue this parameter is ignored. Otherwise it must be > 0 and indicates which plane in the current view frustum should be preserved.

    • symmetricFrustum: boolean

      true if you want the resulting frustum to be symmetric.

    • lensLength: number

      (pass 50.0 when in doubt) @@ -105,7 +105,7 @@ If the current projection is perspective and symmetricFrustum, IsFrustumIsLeftRightSymmetric, and IsFrustumIsTopBottomSymmetric are all equal, then no changes are made and true is returned.

      -
  • Parameters

    • targetDistance: number

      If RhinoMath.UnsetValue this parameter is ignored. Otherwise +

  • Parameters

    • targetDistance: number

      If RhinoMath.UnsetValue this parameter is ignored. Otherwise it must be > 0 and indicates which plane in the current view frustum should be preserved.

    • up: number[]

      The locked up direction. Pass Vector3d.Zero if you want to use the world @@ -125,22 +125,22 @@ IsFrustumIsLeftRightSymmetric is true and IsFrustumIsTopBottomSymmetric is false, then no changes are made and true is returned.

      -
  • Parameters

    • border: number

      If border > 1.0, then the frustum in enlarged by this factor +

  • Parameters

    • border: number

      If border > 1.0, then the frustum in enlarged by this factor to provide a border around the view. 1.1 works well for parallel projections; 0.0 is suggested for perspective projections.

    Returns boolean

    True if successful.

    Description

    Dolly the camera location and so that the view frustum contains all of the document objects that can be seen in view. If the projection is perspective, the camera angle is not changed.

    -
  • Parameters

    • halfViewAngleRadians: number

      1/2 smallest subtended view angle in radians.

      +
  • Parameters

    • halfViewAngleRadians: number

      1/2 smallest subtended view angle in radians.

    • bbox: BoundingBox

      A bounding box in 3d world coordinates.

    Returns boolean

    true if the operation succeeded; otherwise, false.

    Description

    Extends this viewport view to include a bounding box. Use Extents() as a quick way to set a viewport to so that bounding volume is inside of a viewports frustum. The view angle is used to determine the position of the camera.

    -
  • Parameters

    • targetDistance: number

      If targetDistance > 0.0, then the distance from the returned +

  • Parameters

    • targetDistance: number

      If targetDistance > 0.0, then the distance from the returned point to the camera plane will be targetDistance. Note that if the frustum is not symmetric, the distance from the returned point to the camera location will be larger than @@ -152,7 +152,7 @@ is not valid, then ON_3dPoint::UnsetPoint is returned.

      Description

      Return a point on the central axis of the view frustum. This point is a good choice for a general purpose target point.

      -
  • Returns object

    [boolean, number, number, number, number, number, number] +

  • Returns object

    [boolean, number, number, number, number, number, number] (boolean) true if operation succeeded; otherwise, false. (number) A left value that will be filled during the call. (number) A right value that will be filled during the call. @@ -161,24 +161,24 @@ (number) A near distance value that will be filled during the call. (number) A far distance value that will be filled during the call.

    Description

    Gets the view frustum.

    -
  • Parameters

  • Parameters

    • key: string

      id used to retrieve the string.

    Returns string

    string associated with the key if successful. null if no key was found.

    Description

    Gets user string from this geometry.

    -
  • Parameters

    Returns Transform

    The 4x4 transformation matrix (acts on the left).

    Description

    Computes a transform from a coordinate system to another.

    -
  • Parameters

  • Parameters

    • direction: number[]

      A new direction.

    Returns boolean

    true if the direction was set; otherwise false.

    Description

    Sets the direction that the camera faces.

    -
  • Parameters

    • point: number[]

    Returns boolean

    true if the operation succeeded; otherwise, false.

    +
  • Parameters

    • point: number[]

    Returns boolean

    true if the operation succeeded; otherwise, false.

    Description

    Sets the camera location (position) point.

    -
  • Parameters

  • Parameters

    • up: number[]

      A new direction.

    Returns boolean

    true if the direction was set; otherwise false.

    Description

    Sets the camera up vector.

    -
  • Parameters

  • Parameters

    • left: number

      A new left value.

    • right: number

      A new right value.

    • bottom: number

      A new bottom value.

    • top: number

      A new top value.

      @@ -188,11 +188,11 @@

      Description

      Sets the view frustum. If FrustumSymmetryIsLocked() is true and left != -right or bottom != -top, then they will be adjusted so the resulting frustum is symmetric.

      -
  • Parameters

  • Parameters

    • key: string

      id used to retrieve this string.

    • value: string

      string associated with key.

    Returns boolean

    true if successful, false if not.

    Description

    Attach a user string (key,value combination) to this geometry.

    -
  • Parameters

  • Parameters

    • useFrustumCenterFallback: boolean

      If bUseFrustumCenterFallback is false and the target point is not valid, then ON_UNSET_VALUE is returned. If bUseFrustumCenterFallback is true and the frustum is valid and current target point is not valid or is behind the camera, @@ -204,11 +204,11 @@

      Description

      Gets the distance from the target point to the camera plane. Note that if the frustum is not symmetric, then this distance is shorter than the distance from the target to the camera location.

      -
  • Parameters

    • json: object

      A json formatted object in the following format (values are orientative):

      +
  • Parameters

    • json: object

      A json formatted object in the following format (values are orientative):

      {
      version: 10000,
      archive3dm: 60,
      opennurbs: -1877964208,
      data: 'encoded 3dm object data'
      }

    Returns CommonObject

    Description

    Decodes a Rhino Object

    -

Generated using TypeDoc

\ No newline at end of file +

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/ActiveSpace.html b/docs/javascript/api/enums/ActiveSpace.html index 356ab3538..badf19b06 100644 --- a/docs/javascript/api/enums/ActiveSpace.html +++ b/docs/javascript/api/enums/ActiveSpace.html @@ -1,4 +1,4 @@ -ActiveSpace | rhino3dm

Enumeration ActiveSpace

Enumeration Members

ModelSpace +ActiveSpace | rhino3dm

Enumeration ActiveSpace

Enumeration Members

Enumeration Members

ModelSpace: number
None: number
PageSpace: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

ModelSpace: number
None: number
PageSpace: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/AnnotationTypes.html b/docs/javascript/api/enums/AnnotationType.html similarity index 70% rename from docs/javascript/api/enums/AnnotationTypes.html rename to docs/javascript/api/enums/AnnotationType.html index 5c0650c91..c046c6ff7 100644 --- a/docs/javascript/api/enums/AnnotationTypes.html +++ b/docs/javascript/api/enums/AnnotationType.html @@ -1,13 +1,13 @@ -AnnotationTypes | rhino3dm

Enumeration AnnotationTypes

Enumeration Members

Aligned: number
Angular: number
Angular3pt: number
ArcLen: number
CenterMark: number
Diameter: number
Leader: number
Ordinate: number
Radius: number
Rotated: number
Text: number
Unset: number

Generated using TypeDoc

\ No newline at end of file +AnnotationType | rhino3dm

Enumeration AnnotationType

Enumeration Members

Aligned: number
Angular: number
Angular3pt: number
ArcLen: number
CenterMark: number
Diameter: number
Leader: number
Ordinate: number
Radius: number
Rotated: number
Text: number
Unset: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/ArrowheadTypes.html b/docs/javascript/api/enums/ArrowheadTypes.html index a3fefdb68..738dcdf99 100644 --- a/docs/javascript/api/enums/ArrowheadTypes.html +++ b/docs/javascript/api/enums/ArrowheadTypes.html @@ -1,4 +1,4 @@ -ArrowheadTypes | rhino3dm

Enumeration ArrowheadTypes

Enumeration Members

Dot +ArrowheadTypes | rhino3dm

Enumeration ArrowheadTypes

Enumeration Members

Enumeration Members

Dot: number
LongTriangle: number
LongerTriangle: number
None: number
OpenArrow: number
Rectangle: number
ShortTriangle: number
SolidTriangle: number
Tick: number
UserBlock: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

Dot: number
LongTriangle: number
LongerTriangle: number
None: number
OpenArrow: number
Rectangle: number
ShortTriangle: number
SolidTriangle: number
Tick: number
UserBlock: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/BasepointZero.html b/docs/javascript/api/enums/BasepointZero.html index 941e08cee..fcd7376ab 100644 --- a/docs/javascript/api/enums/BasepointZero.html +++ b/docs/javascript/api/enums/BasepointZero.html @@ -1,4 +1,4 @@ -BasepointZero | rhino3dm

Enumeration BasepointZero

Enumeration Members

CenterOfEarth +BasepointZero | rhino3dm

Enumeration BasepointZero

Enumeration Members

CenterOfEarth: number
GroundLevel: number
MeanSeaLevel: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

CenterOfEarth: number
GroundLevel: number
MeanSeaLevel: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/ComponentIndexType.html b/docs/javascript/api/enums/ComponentIndexType.html index 5a6e3ceec..29325d0bb 100644 --- a/docs/javascript/api/enums/ComponentIndexType.html +++ b/docs/javascript/api/enums/ComponentIndexType.html @@ -1,4 +1,4 @@ -ComponentIndexType | rhino3dm

Enumeration ComponentIndexType

Enumeration Members

BrepEdge +ComponentIndexType | rhino3dm

Enumeration ComponentIndexType

Enumeration Members

Enumeration Members

BrepEdge: number
BrepFace: number
BrepLoop: number
BrepTrim: number
BrepVertex: number
DimAngularPoint: number
DimLinearPoint: number
DimOrdinatePoint: number
DimRadialPoint: number
DimTextPoint: number
ExtrusionBottomProfile: number
ExtrusionCapSurface: number
ExtrusionPath: number
ExtrusionTopProfile: number
ExtrusionWallEdge: number
ExtrusionWallSurface: number
GroupMember: number
InstanceDefinitionPart: number
InvalidType: number
MeshFace: number
MeshNgon: number
MeshTopologyEdge: number
MeshTopologyVertex: number
MeshVertex: number
NoType: number
PointCloudPoint: number
PolycurveSegment: number
SubdEdge: number
SubdFace: number
SubdVertex: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

BrepEdge: number
BrepFace: number
BrepLoop: number
BrepTrim: number
BrepVertex: number
DimAngularPoint: number
DimLinearPoint: number
DimOrdinatePoint: number
DimRadialPoint: number
DimTextPoint: number
ExtrusionBottomProfile: number
ExtrusionCapSurface: number
ExtrusionPath: number
ExtrusionTopProfile: number
ExtrusionWallEdge: number
ExtrusionWallSurface: number
GroupMember: number
InstanceDefinitionPart: number
InvalidType: number
MeshFace: number
MeshNgon: number
MeshTopologyEdge: number
MeshTopologyVertex: number
MeshVertex: number
NoType: number
PointCloudPoint: number
PolycurveSegment: number
SubdEdge: number
SubdFace: number
SubdVertex: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/CoordinateSystem.html b/docs/javascript/api/enums/CoordinateSystem.html index 7c7801210..42a7c0796 100644 --- a/docs/javascript/api/enums/CoordinateSystem.html +++ b/docs/javascript/api/enums/CoordinateSystem.html @@ -1,5 +1,5 @@ -CoordinateSystem | rhino3dm

Enumeration CoordinateSystem

Enumeration Members

Camera +CoordinateSystem | rhino3dm

Enumeration CoordinateSystem

Enumeration Members

Enumeration Members

Camera: number
Clip: number
Screen: number
World: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

Camera: number
Clip: number
Screen: number
World: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/CurveEvaluationSide.html b/docs/javascript/api/enums/CurveEvaluationSide.html index 6fbbbcf2f..fc9441c3c 100644 --- a/docs/javascript/api/enums/CurveEvaluationSide.html +++ b/docs/javascript/api/enums/CurveEvaluationSide.html @@ -1,4 +1,4 @@ -CurveEvaluationSide | rhino3dm

Enumeration CurveEvaluationSide

Enumeration Members

Above +CurveEvaluationSide | rhino3dm

Enumeration CurveEvaluationSide

Enumeration Members

Enumeration Members

Above: number
Below: number
Default: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

Above: number
Below: number
Default: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/CurveOrientation.html b/docs/javascript/api/enums/CurveOrientation.html index 6681b10e6..699ba9f4d 100644 --- a/docs/javascript/api/enums/CurveOrientation.html +++ b/docs/javascript/api/enums/CurveOrientation.html @@ -1,4 +1,4 @@ -CurveOrientation | rhino3dm

Enumeration CurveOrientation

Enumeration Members

Clockwise +CurveOrientation | rhino3dm

Enumeration CurveOrientation

Enumeration Members

Enumeration Members

Clockwise: number
CounterClockwise: number
Undefined: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

Clockwise: number
CounterClockwise: number
Undefined: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/CurvePipingCapTypes.html b/docs/javascript/api/enums/CurvePipingCapTypes.html index 0c462fd68..d6c140d09 100644 --- a/docs/javascript/api/enums/CurvePipingCapTypes.html +++ b/docs/javascript/api/enums/CurvePipingCapTypes.html @@ -1,5 +1,5 @@ -CurvePipingCapTypes | rhino3dm

Enumeration CurvePipingCapTypes

Enumeration Members

Box +CurvePipingCapTypes | rhino3dm

Enumeration CurvePipingCapTypes

Enumeration Members

Enumeration Members

Box: number
Dome: number
Flat: number
None: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

Box: number
Dome: number
Flat: number
None: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/DecalMappings.html b/docs/javascript/api/enums/DecalMappings.html index c7a2c4ae2..8cff02daf 100644 --- a/docs/javascript/api/enums/DecalMappings.html +++ b/docs/javascript/api/enums/DecalMappings.html @@ -1,6 +1,6 @@ -DecalMappings | rhino3dm

Enumeration DecalMappings

Enumeration Members

Cylindrical +DecalMappings | rhino3dm

Enumeration DecalMappings

Enumeration Members

Enumeration Members

Cylindrical: number
None: number
Planar: number
Spherical: number
UV: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

Cylindrical: number
None: number
Planar: number
Spherical: number
UV: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/DecalProjections.html b/docs/javascript/api/enums/DecalProjections.html index e7b1004c1..b162c0352 100644 --- a/docs/javascript/api/enums/DecalProjections.html +++ b/docs/javascript/api/enums/DecalProjections.html @@ -1,5 +1,5 @@ -DecalProjections | rhino3dm

Enumeration DecalProjections

Enumeration Members

Backward +DecalProjections | rhino3dm

Enumeration DecalProjections

Enumeration Members

Enumeration Members

Backward: number
Both: number
Forward: number
None: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

Backward: number
Both: number
Forward: number
None: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/DisplacementSweepResolutionFormulas.html b/docs/javascript/api/enums/DisplacementSweepResolutionFormulas.html index faa28d42a..089602c82 100644 --- a/docs/javascript/api/enums/DisplacementSweepResolutionFormulas.html +++ b/docs/javascript/api/enums/DisplacementSweepResolutionFormulas.html @@ -1,3 +1,3 @@ -DisplacementSweepResolutionFormulas | rhino3dm

Enumeration DisplacementSweepResolutionFormulas

Enumeration Members

AbsoluteToleranceDependent +DisplacementSweepResolutionFormulas | rhino3dm

Enumeration DisplacementSweepResolutionFormulas

Enumeration Members

Enumeration Members

AbsoluteToleranceDependent: number
Default: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

AbsoluteToleranceDependent: number
Default: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/DitheringMethods.html b/docs/javascript/api/enums/DitheringMethods.html index 3ec241e60..a856627f4 100644 --- a/docs/javascript/api/enums/DitheringMethods.html +++ b/docs/javascript/api/enums/DitheringMethods.html @@ -1,3 +1,3 @@ -DitheringMethods | rhino3dm

Enumeration DitheringMethods

Enumeration Members

FloydSteinberg +DitheringMethods | rhino3dm

Enumeration DitheringMethods

Enumeration Members

Enumeration Members

FloydSteinberg: number
SimpleNoise: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

FloydSteinberg: number
SimpleNoise: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/EnvironmentBackgroundProjections.html b/docs/javascript/api/enums/EnvironmentBackgroundProjections.html index 23ce7b61d..93c4bd388 100644 --- a/docs/javascript/api/enums/EnvironmentBackgroundProjections.html +++ b/docs/javascript/api/enums/EnvironmentBackgroundProjections.html @@ -1,4 +1,4 @@ -EnvironmentBackgroundProjections | rhino3dm

Enumeration EnvironmentBackgroundProjections

Enumeration Members

Automatic +EnvironmentBackgroundProjections | rhino3dm

Enumeration EnvironmentBackgroundProjections

Enumeration Members

Enumeration Members

Automatic: number
Box: number
CubeMap: number
Emap: number
Hemispherical: number
HorizontalCrossCubeMap: number
LightProbe: number
Planar: number
Spherical: number
VerticalCrossCubeMap: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

Automatic: number
Box: number
CubeMap: number
Emap: number
Hemispherical: number
HorizontalCrossCubeMap: number
LightProbe: number
Planar: number
Spherical: number
VerticalCrossCubeMap: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/InstanceDefinitionUpdateType.html b/docs/javascript/api/enums/InstanceDefinitionUpdateType.html index 42a1f08a1..13a75be8d 100644 --- a/docs/javascript/api/enums/InstanceDefinitionUpdateType.html +++ b/docs/javascript/api/enums/InstanceDefinitionUpdateType.html @@ -1,5 +1,5 @@ -InstanceDefinitionUpdateType | rhino3dm

Enumeration InstanceDefinitionUpdateType

Enumeration Members

Embedded +InstanceDefinitionUpdateType | rhino3dm

Enumeration InstanceDefinitionUpdateType

Enumeration Members

Embedded: number
Linked: number
LinkedAndEmbedded: number
Static: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

Embedded: number
Linked: number
LinkedAndEmbedded: number
Static: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/LightStyle.html b/docs/javascript/api/enums/LightStyle.html index 2d6890df8..997e7fbd9 100644 --- a/docs/javascript/api/enums/LightStyle.html +++ b/docs/javascript/api/enums/LightStyle.html @@ -1,4 +1,4 @@ -LightStyle | rhino3dm

Enumeration LightStyle

Enumeration Members

Ambient +LightStyle | rhino3dm

Enumeration LightStyle

Enumeration Members

Ambient: number
CameraDirectional: number
CameraPoint: number
CameraSpot: number
None: number
WorldDirectional: number
WorldLinear: number
WorldPoint: number
WorldRectangular: number
WorldSpot: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

Ambient: number
CameraDirectional: number
CameraPoint: number
CameraSpot: number
None: number
WorldDirectional: number
WorldLinear: number
WorldPoint: number
WorldRectangular: number
WorldSpot: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/LineCircleIntersection.html b/docs/javascript/api/enums/LineCircleIntersection.html index 9661a3c79..caed1b54a 100644 --- a/docs/javascript/api/enums/LineCircleIntersection.html +++ b/docs/javascript/api/enums/LineCircleIntersection.html @@ -1,4 +1,4 @@ -LineCircleIntersection | rhino3dm

Enumeration LineCircleIntersection

Enumeration Members

Multiple +LineCircleIntersection | rhino3dm

Enumeration LineCircleIntersection

Enumeration Members

Enumeration Members

Multiple: number
None: number
Single: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

Multiple: number
None: number
Single: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/LineCylinderIntersection.html b/docs/javascript/api/enums/LineCylinderIntersection.html index 23c50929e..7d4b9ad7e 100644 --- a/docs/javascript/api/enums/LineCylinderIntersection.html +++ b/docs/javascript/api/enums/LineCylinderIntersection.html @@ -1,5 +1,5 @@ -LineCylinderIntersection | rhino3dm

Enumeration LineCylinderIntersection

Enumeration Members

Multiple +LineCylinderIntersection | rhino3dm

Enumeration LineCylinderIntersection

Enumeration Members

Enumeration Members

Multiple: number
None: number
Overlap: number
Single: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

Multiple: number
None: number
Overlap: number
Single: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/LineSphereIntersection.html b/docs/javascript/api/enums/LineSphereIntersection.html index 15f06d9c6..15ac145e8 100644 --- a/docs/javascript/api/enums/LineSphereIntersection.html +++ b/docs/javascript/api/enums/LineSphereIntersection.html @@ -1,4 +1,4 @@ -LineSphereIntersection | rhino3dm

Enumeration LineSphereIntersection

Enumeration Members

Multiple +LineSphereIntersection | rhino3dm

Enumeration LineSphereIntersection

Enumeration Members

Enumeration Members

Multiple: number
None: number
Single: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

Multiple: number
None: number
Single: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/Mappings.html b/docs/javascript/api/enums/Mappings.html index c4c295981..b203350fd 100644 --- a/docs/javascript/api/enums/Mappings.html +++ b/docs/javascript/api/enums/Mappings.html @@ -1,6 +1,6 @@ -Mappings | rhino3dm

Enumeration Mappings

Enumeration Members

Cylindrical +Mappings | rhino3dm

Enumeration Mappings

Enumeration Members

Enumeration Members

Cylindrical: number
None: number
Planar: number
Spherical: number
UV: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

Cylindrical: number
None: number
Planar: number
Spherical: number
UV: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/MeshType.html b/docs/javascript/api/enums/MeshType.html index 6d5f91ee2..68cb5fb33 100644 --- a/docs/javascript/api/enums/MeshType.html +++ b/docs/javascript/api/enums/MeshType.html @@ -1,6 +1,6 @@ -MeshType | rhino3dm

Enumeration MeshType

Enumeration Members

Analysis +MeshType | rhino3dm

Enumeration MeshType

Enumeration Members

Enumeration Members

Analysis: number
Any: number
Default: number
Preview: number
Render: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

Analysis: number
Any: number
Default: number
Preview: number
Render: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/ObjectColorSource.html b/docs/javascript/api/enums/ObjectColorSource.html index 9e368d1f0..09b7599bd 100644 --- a/docs/javascript/api/enums/ObjectColorSource.html +++ b/docs/javascript/api/enums/ObjectColorSource.html @@ -1,5 +1,5 @@ -ObjectColorSource | rhino3dm

Enumeration ObjectColorSource

Enumeration Members

ColorFromLayer +ObjectColorSource | rhino3dm

Enumeration ObjectColorSource

Enumeration Members

ColorFromLayer: number
ColorFromMaterial: number
ColorFromObject: number
ColorFromParent: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

ColorFromLayer: number
ColorFromMaterial: number
ColorFromObject: number
ColorFromParent: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/ObjectDecoration.html b/docs/javascript/api/enums/ObjectDecoration.html index ee8c937f9..a8e3c0c7b 100644 --- a/docs/javascript/api/enums/ObjectDecoration.html +++ b/docs/javascript/api/enums/ObjectDecoration.html @@ -1,5 +1,5 @@ -ObjectDecoration | rhino3dm

Enumeration ObjectDecoration

Enumeration Members

BothArrowhead +ObjectDecoration | rhino3dm

Enumeration ObjectDecoration

Enumeration Members

BothArrowhead: number
EndArrowhead: number
None: number
StartArrowhead: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

BothArrowhead: number
EndArrowhead: number
None: number
StartArrowhead: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/ObjectLinetypeSource.html b/docs/javascript/api/enums/ObjectLinetypeSource.html index 908a0acb6..a1c248d8d 100644 --- a/docs/javascript/api/enums/ObjectLinetypeSource.html +++ b/docs/javascript/api/enums/ObjectLinetypeSource.html @@ -1,4 +1,4 @@ -ObjectLinetypeSource | rhino3dm

Enumeration ObjectLinetypeSource

Enumeration Members

LinetypeFromLayer +ObjectLinetypeSource | rhino3dm

Enumeration ObjectLinetypeSource

Enumeration Members

LinetypeFromLayer: number
LinetypeFromObject: number
LinetypeFromParent: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

LinetypeFromLayer: number
LinetypeFromObject: number
LinetypeFromParent: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/ObjectMaterialSource.html b/docs/javascript/api/enums/ObjectMaterialSource.html index a743b7683..1d751a39a 100644 --- a/docs/javascript/api/enums/ObjectMaterialSource.html +++ b/docs/javascript/api/enums/ObjectMaterialSource.html @@ -1,4 +1,4 @@ -ObjectMaterialSource | rhino3dm

Enumeration ObjectMaterialSource

Enumeration Members

MaterialFromLayer +ObjectMaterialSource | rhino3dm

Enumeration ObjectMaterialSource

Enumeration Members

MaterialFromLayer: number
MaterialFromObject: number
MaterialFromParent: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

MaterialFromLayer: number
MaterialFromObject: number
MaterialFromParent: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/ObjectMode.html b/docs/javascript/api/enums/ObjectMode.html index 3869a51a6..3fe16e895 100644 --- a/docs/javascript/api/enums/ObjectMode.html +++ b/docs/javascript/api/enums/ObjectMode.html @@ -1,5 +1,5 @@ -ObjectMode | rhino3dm

Enumeration ObjectMode

Enumeration Members

Hidden +ObjectMode | rhino3dm

Enumeration ObjectMode

Enumeration Members

Hidden: number
InstanceDefinitionObject: number
Locked: number
Normal: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

Hidden: number
InstanceDefinitionObject: number
Locked: number
Normal: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/ObjectPlotColorSource.html b/docs/javascript/api/enums/ObjectPlotColorSource.html index aa05eda9a..7950b8cdd 100644 --- a/docs/javascript/api/enums/ObjectPlotColorSource.html +++ b/docs/javascript/api/enums/ObjectPlotColorSource.html @@ -1,5 +1,5 @@ -ObjectPlotColorSource | rhino3dm

Enumeration ObjectPlotColorSource

Enumeration Members

PlotColorFromDisplay +ObjectPlotColorSource | rhino3dm

Enumeration ObjectPlotColorSource

Enumeration Members

PlotColorFromDisplay: number
PlotColorFromLayer: number
PlotColorFromObject: number
PlotColorFromParent: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

PlotColorFromDisplay: number
PlotColorFromLayer: number
PlotColorFromObject: number
PlotColorFromParent: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/ObjectPlotWeightSource.html b/docs/javascript/api/enums/ObjectPlotWeightSource.html index b951e35ef..5a9bd9a8e 100644 --- a/docs/javascript/api/enums/ObjectPlotWeightSource.html +++ b/docs/javascript/api/enums/ObjectPlotWeightSource.html @@ -1,4 +1,4 @@ -ObjectPlotWeightSource | rhino3dm

Enumeration ObjectPlotWeightSource

Enumeration Members

PlotWeightFromLayer +ObjectPlotWeightSource | rhino3dm

Enumeration ObjectPlotWeightSource

Enumeration Members

PlotWeightFromLayer: number
PlotWeightFromObject: number
PlotWeightFromParent: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

PlotWeightFromLayer: number
PlotWeightFromObject: number
PlotWeightFromParent: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/ObjectType.html b/docs/javascript/api/enums/ObjectType.html index 049bbae9f..9a0525f02 100644 --- a/docs/javascript/api/enums/ObjectType.html +++ b/docs/javascript/api/enums/ObjectType.html @@ -1,4 +1,4 @@ -ObjectType | rhino3dm

Enumeration ObjectType

Enumeration Members

Annotation +ObjectType | rhino3dm

Enumeration ObjectType

Enumeration Members

Enumeration Members

Annotation: number
AnyObject: number
Brep: number
BrepLoop: number
Cage: number
ClipPlane: number
Curve: number
Detail: number
EdgeFilter: number
Extrusion: number
Grip: number
Hatch: number
InstanceDefinition: number
InstanceReference: number
Light: number
Mesh: number
MeshEdge: number
MeshFace: number
MeshVertex: number
MorphControl: number
None: number
Phantom: number
Point: number
PointSet: number
PolyedgeFilter: number
PolysrfFilter: number
SubD: number
Surface: number
TextDot: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

Annotation: number
AnyObject: number
Brep: number
BrepLoop: number
Cage: number
ClipPlane: number
Curve: number
Detail: number
EdgeFilter: number
Extrusion: number
Grip: number
Hatch: number
InstanceDefinition: number
InstanceReference: number
Light: number
Mesh: number
MeshEdge: number
MeshFace: number
MeshVertex: number
MorphControl: number
None: number
Phantom: number
Point: number
PointSet: number
PolyedgeFilter: number
PolysrfFilter: number
SubD: number
Surface: number
TextDot: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/PlaneSphereIntersection.html b/docs/javascript/api/enums/PlaneSphereIntersection.html index 2f10ef1ac..b6fb7147d 100644 --- a/docs/javascript/api/enums/PlaneSphereIntersection.html +++ b/docs/javascript/api/enums/PlaneSphereIntersection.html @@ -1,4 +1,4 @@ -PlaneSphereIntersection | rhino3dm

Enumeration PlaneSphereIntersection

Enumeration Members

Circle +PlaneSphereIntersection | rhino3dm

Enumeration PlaneSphereIntersection

Enumeration Members

Enumeration Members

Circle: number
None: number
Point: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

Circle: number
None: number
Point: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/PostEffectTypes.html b/docs/javascript/api/enums/PostEffectTypes.html index 6dfd57cc9..c096ae5b5 100644 --- a/docs/javascript/api/enums/PostEffectTypes.html +++ b/docs/javascript/api/enums/PostEffectTypes.html @@ -1,4 +1,4 @@ -PostEffectTypes | rhino3dm

Enumeration PostEffectTypes

Enumeration Members

Early +PostEffectTypes | rhino3dm

Enumeration PostEffectTypes

Enumeration Members

Enumeration Members

Early: number
Late: number
ToneMapping: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

Early: number
Late: number
ToneMapping: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/Projections.html b/docs/javascript/api/enums/Projections.html index af8df6129..55d977a56 100644 --- a/docs/javascript/api/enums/Projections.html +++ b/docs/javascript/api/enums/Projections.html @@ -1,5 +1,5 @@ -Projections | rhino3dm

Enumeration Projections

Enumeration Members

Backward +Projections | rhino3dm

Enumeration Projections

Enumeration Members

Enumeration Members

Backward: number
Both: number
Forward: number
None: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

Backward: number
Both: number
Forward: number
None: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/RenderChannelsModes.html b/docs/javascript/api/enums/RenderChannelsModes.html index f6075ba00..e8eb1ec5f 100644 --- a/docs/javascript/api/enums/RenderChannelsModes.html +++ b/docs/javascript/api/enums/RenderChannelsModes.html @@ -1,3 +1,3 @@ -RenderChannelsModes | rhino3dm

Enumeration RenderChannelsModes

Enumeration Members

Automatic +RenderChannelsModes | rhino3dm

Enumeration RenderChannelsModes

Enumeration Members

Enumeration Members

Automatic: number
Custom: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

Automatic: number
Custom: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/SphereSphereIntersection.html b/docs/javascript/api/enums/SphereSphereIntersection.html index e319bffae..4fc68fc7d 100644 --- a/docs/javascript/api/enums/SphereSphereIntersection.html +++ b/docs/javascript/api/enums/SphereSphereIntersection.html @@ -1,5 +1,5 @@ -SphereSphereIntersection | rhino3dm

Enumeration SphereSphereIntersection

Enumeration Members

Circle +SphereSphereIntersection | rhino3dm

Enumeration SphereSphereIntersection

Enumeration Members

Enumeration Members

Circle: number
None: number
Overlap: number
Point: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

Circle: number
None: number
Overlap: number
Point: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/TextureType.html b/docs/javascript/api/enums/TextureType.html index 56cba60b0..c7f4f9120 100644 --- a/docs/javascript/api/enums/TextureType.html +++ b/docs/javascript/api/enums/TextureType.html @@ -1,4 +1,4 @@ -TextureType | rhino3dm

Enumeration TextureType

Enumeration Members

Bitmap +TextureType | rhino3dm

Enumeration TextureType

Enumeration Members

Bitmap: number
Bump: number
Diffuse: number
Emap: number
None: number
Opacity: number
PBR_AmbientOcclusion: number
PBR_Anisotropic: number
PBR_Anisotropic_Rotation: number
PBR_BaseColor: number
PBR_Clearcoat: number
PBR_ClearcoatBump: number
PBR_ClearcoatRoughness: number
PBR_Displacement: number
PBR_Emission: number
PBR_Metallic: number
PBR_OpacityIor: number
PBR_OpacityRoughness: number
PBR_Roughness: number
PBR_Sheen: number
PBR_SheenTint: number
PBR_Specular: number
PBR_SpecularTint: number
PBR_Subsurface: number
PBR_SubsurfaceScattering: number
PBR_SubsurfaceScatteringRadius: number
Transparency: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

Bitmap: number
Bump: number
Diffuse: number
Emap: number
None: number
Opacity: number
PBR_AmbientOcclusion: number
PBR_Anisotropic: number
PBR_Anisotropic_Rotation: number
PBR_BaseColor: number
PBR_Clearcoat: number
PBR_ClearcoatBump: number
PBR_ClearcoatRoughness: number
PBR_Displacement: number
PBR_Emission: number
PBR_Metallic: number
PBR_OpacityIor: number
PBR_OpacityRoughness: number
PBR_Roughness: number
PBR_Sheen: number
PBR_SheenTint: number
PBR_Specular: number
PBR_SpecularTint: number
PBR_Subsurface: number
PBR_SubsurfaceScattering: number
PBR_SubsurfaceScatteringRadius: number
Transparency: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/TextureUvwWrapping.html b/docs/javascript/api/enums/TextureUvwWrapping.html index 0eec7fab8..322204333 100644 --- a/docs/javascript/api/enums/TextureUvwWrapping.html +++ b/docs/javascript/api/enums/TextureUvwWrapping.html @@ -1,3 +1,3 @@ -TextureUvwWrapping | rhino3dm

Enumeration TextureUvwWrapping

Enumeration Members

Clamp +TextureUvwWrapping | rhino3dm

Enumeration TextureUvwWrapping

Enumeration Members

Enumeration Members

Clamp: number
Repeat: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

Clamp: number
Repeat: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/TransformRigidType.html b/docs/javascript/api/enums/TransformRigidType.html index cfb5cb41a..7635ab4f5 100644 --- a/docs/javascript/api/enums/TransformRigidType.html +++ b/docs/javascript/api/enums/TransformRigidType.html @@ -1,4 +1,4 @@ -TransformRigidType | rhino3dm

Enumeration TransformRigidType

Enumeration Members

NotRigid +TransformRigidType | rhino3dm

Enumeration TransformRigidType

Enumeration Members

Enumeration Members

NotRigid: number
Rigid: number
RigidReversing: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

NotRigid: number
Rigid: number
RigidReversing: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/TransformSimilarityType.html b/docs/javascript/api/enums/TransformSimilarityType.html index e2045b50e..31392c202 100644 --- a/docs/javascript/api/enums/TransformSimilarityType.html +++ b/docs/javascript/api/enums/TransformSimilarityType.html @@ -1,4 +1,4 @@ -TransformSimilarityType | rhino3dm

Enumeration TransformSimilarityType

Enumeration Members

NotSimilarity +TransformSimilarityType | rhino3dm

Enumeration TransformSimilarityType

Enumeration Members

NotSimilarity: number
OrientationPreserving: number
OrientationReversing: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

NotSimilarity: number
OrientationPreserving: number
OrientationReversing: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/enums/UnitSystem.html b/docs/javascript/api/enums/UnitSystem.html index 8e6f2a4fa..8a212c9c2 100644 --- a/docs/javascript/api/enums/UnitSystem.html +++ b/docs/javascript/api/enums/UnitSystem.html @@ -1,4 +1,4 @@ -UnitSystem | rhino3dm

Enumeration UnitSystem

Enumeration Members

Angstroms +UnitSystem | rhino3dm

Enumeration UnitSystem

Enumeration Members

Angstroms: number
AstronomicalUnits: number
Centimeters: number
CustomUnits: number
Decimeters: number
Dekameters: number
Feet: number
Gigameters: number
Hectometers: number
Inches: number
Kilometers: number
LightYears: number
Megameters: number
Meters: number
Microinches: number
Microns: number
Miles: number
Millimeters: number
Mils: number
Nanometers: number
NauticalMiles: number
None: number
Parsecs: number
PrinterPicas: number
PrinterPoints: number
Unset: number
Yards: number

Generated using TypeDoc

\ No newline at end of file +

Enumeration Members

Angstroms: number
AstronomicalUnits: number
Centimeters: number
CustomUnits: number
Decimeters: number
Dekameters: number
Feet: number
Gigameters: number
Hectometers: number
Inches: number
Kilometers: number
LightYears: number
Megameters: number
Meters: number
Microinches: number
Microns: number
Miles: number
Millimeters: number
Mils: number
Nanometers: number
NauticalMiles: number
None: number
Parsecs: number
PrinterPicas: number
PrinterPoints: number
Unset: number
Yards: number

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/functions/default.html b/docs/javascript/api/functions/default.html index dba010e37..71f74f2d6 100644 --- a/docs/javascript/api/functions/default.html +++ b/docs/javascript/api/functions/default.html @@ -1 +1 @@ -default | rhino3dm

Function default

Generated using TypeDoc

\ No newline at end of file +default | rhino3dm

Function default

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/hierarchy.html b/docs/javascript/api/hierarchy.html index 8536f06be..b24032186 100644 --- a/docs/javascript/api/hierarchy.html +++ b/docs/javascript/api/hierarchy.html @@ -1 +1 @@ -rhino3dm

Generated using TypeDoc

\ No newline at end of file +rhino3dm

Generated using TypeDoc

\ No newline at end of file diff --git a/docs/javascript/api/index.html b/docs/javascript/api/index.html index 93d53dd97..e8f64e823 100644 --- a/docs/javascript/api/index.html +++ b/docs/javascript/api/index.html @@ -2,7 +2,7 @@

rhino3dm.js is a javascript library with associated web assembly (rhino3dm.wasm) that is OpenNURBS plus additional C++ to javascript bindings compiled to web assembly. The library based on OpenNURBS with a RhinoCommon style. The libraries will run on on all major browsers as well as node.js.

For browser based applications, we also develop a 3dmLoader for the popular three.js WebGL library: https://threejs.org/examples/?q=3dm#webgl_loader_3dm

Usage

The easiest way to get started is to reference a specific version of the library using jsDelivr.

-
<!DOCTYPE html>

<body>

<!-- Import maps polyfill -->
<!-- Remove this when import maps will be widely supported -->
<script async src="https://unpkg.com/es-module-shims@1.10.0/dist/es-module-shims.js"></script>

<script type="importmap">
{
"imports": {
"rhino3dm":"https://cdn.jsdelivr.net/npm/rhino3dm@8.9.0/rhino3dm.module.min.js"
}
}
</script>

<script type="module">

import rhino3dm from 'rhino3dm'
const rhino = await rhino3dm()
const sphere = new rhino.Sphere( [1,2,3,], 12 )
console.log(sphere.diameter)

</script>

</body>

</html> +
<!DOCTYPE html>

<body>

<!-- Import maps polyfill -->
<!-- Remove this when import maps will be widely supported -->
<script async src="https://unpkg.com/es-module-shims@1.10.0/dist/es-module-shims.js"></script>

<script type="importmap">
{
"imports": {
"rhino3dm":"https://cdn.jsdelivr.net/npm/rhino3dm@8.13.0-beta/rhino3dm.module.min.js"
}
}
</script>

<script type="module">

import rhino3dm from 'rhino3dm'
const rhino = await rhino3dm()
const sphere = new rhino.Sphere( [1,2,3,], 12 )
console.log(sphere.diameter)

</script>

</body>

</html>

You can also download the files if you want to bake them into your site or application. You'll need the .wasm web assembly along with the .js (or .min.js) wrapper.

Node.js

rhino3dm.js is available on npm; try npm install rhino3dm. Note: the resulting webassembly binary (rhino3dm.wasm) is fairly large for browser based applications. We are working on ways to make this smaller.

diff --git a/docs/javascript/api/modules.html b/docs/javascript/api/modules.html index 162f8d948..2d4533490 100644 --- a/docs/javascript/api/modules.html +++ b/docs/javascript/api/modules.html @@ -1,5 +1,5 @@ rhino3dm

rhino3dm

Index

Enumerations

ActiveSpace -AnnotationTypes +AnnotationType ArrowheadTypes BasepointZero ComponentIndexType diff --git a/docs/python/api/.buildinfo b/docs/python/api/.buildinfo index 5bf4b75a6..e7445e537 100644 --- a/docs/python/api/.buildinfo +++ b/docs/python/api/.buildinfo @@ -1,4 +1,4 @@ # Sphinx build info version 1 # This file hashes the configuration used when building these files. When it is not found, a full rebuild will be done. -config: b377e2eeacfc755db9533c186b4a9001 +config: 1b9a1a4ef163c27e201547cc562daee1 tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/docs/python/api/.nojekyll b/docs/python/api/.nojekyll deleted file mode 100644 index e69de29bb..000000000 diff --git a/docs/python/api/AnnotationBase.html b/docs/python/api/AnnotationBase.html index 61fbe7163..b831a080a 100644 --- a/docs/python/api/AnnotationBase.html +++ b/docs/python/api/AnnotationBase.html @@ -4,7 +4,7 @@ - AnnotationBase — rhino3dm 8.6.0-beta1 documentation + AnnotationBase — rhino3dm 8.13.0-beta documentation @@ -15,8 +15,8 @@ - - + + @@ -37,7 +37,7 @@ rhino3dm
- 8.6.0-beta1 + 8.13.0-beta
@@ -51,9 +51,14 @@
diff --git a/docs/python/api/Arc.html b/docs/python/api/Arc.html index b55124c76..4edce8419 100644 --- a/docs/python/api/Arc.html +++ b/docs/python/api/Arc.html @@ -4,7 +4,7 @@ - Arc — rhino3dm 8.6.0-beta1 documentation + Arc — rhino3dm 8.13.0-beta documentation @@ -15,8 +15,8 @@ - - + + @@ -37,7 +37,7 @@ rhino3dm
- 8.6.0-beta1 + 8.13.0-beta
@@ -89,6 +89,7 @@
  • ArcCurve
  • ArchivableDictionary
  • +
  • Arrowhead
  • BezierCurve
  • Bitmap
  • BoundingBox
  • @@ -101,6 +102,8 @@
  • BrepSurfaceList
  • BrepVertex
  • BrepVertexList
  • +
  • CachedTextureCoordinates
  • +
  • Centermark
  • Circle
  • CommonObject
  • ComponentIndex
  • @@ -111,7 +114,12 @@
  • CurveProxy
  • Cylinder
  • Decal
  • +
  • DimAngular
  • +
  • Dimension
  • DimensionStyle
  • +
  • DimLinear
  • +
  • DimOrdinate
  • +
  • DimRadial
  • Displacement
  • Dithering
  • DracoCompression
  • @@ -156,6 +164,7 @@
  • Intersection
  • Interval
  • Layer
  • +
  • Leader
  • Light
  • Line
  • LinearWorkflow
  • @@ -212,6 +221,7 @@
  • Sun
  • Surface
  • SurfaceProxy
  • +
  • Text
  • TextDot
  • Texture
  • TextureMapping
  • diff --git a/docs/python/api/ArcCurve.html b/docs/python/api/ArcCurve.html index c53cf8dfa..07bb74178 100644 --- a/docs/python/api/ArcCurve.html +++ b/docs/python/api/ArcCurve.html @@ -4,7 +4,7 @@ - ArcCurve — rhino3dm 8.6.0-beta1 documentation + ArcCurve — rhino3dm 8.13.0-beta documentation @@ -15,8 +15,8 @@ - - + + @@ -37,7 +37,7 @@ rhino3dm
    - 8.6.0-beta1 + 8.13.0-beta
    @@ -69,6 +69,7 @@
  • ArchivableDictionary
  • +
  • Arrowhead
  • BezierCurve
  • Bitmap
  • BoundingBox
  • @@ -81,6 +82,8 @@
  • BrepSurfaceList
  • BrepVertex
  • BrepVertexList
  • +
  • CachedTextureCoordinates
  • +
  • Centermark
  • Circle
  • CommonObject
  • ComponentIndex
  • @@ -91,7 +94,12 @@
  • CurveProxy
  • Cylinder
  • Decal
  • +
  • DimAngular
  • +
  • Dimension
  • DimensionStyle
  • +
  • DimLinear
  • +
  • DimOrdinate
  • +
  • DimRadial
  • Displacement
  • Dithering
  • DracoCompression
  • @@ -136,6 +144,7 @@
  • Intersection
  • Interval
  • Layer
  • +
  • Leader
  • Light
  • Line
  • LinearWorkflow
  • @@ -192,6 +201,7 @@
  • Sun
  • Surface
  • SurfaceProxy
  • +
  • Text
  • TextDot
  • Texture
  • TextureMapping
  • diff --git a/docs/python/api/ArchivableDictionary.html b/docs/python/api/ArchivableDictionary.html index 159fa227f..ac526422a 100644 --- a/docs/python/api/ArchivableDictionary.html +++ b/docs/python/api/ArchivableDictionary.html @@ -4,7 +4,7 @@ - ArchivableDictionary — rhino3dm 8.6.0-beta1 documentation + ArchivableDictionary — rhino3dm 8.13.0-beta documentation @@ -15,13 +15,13 @@ - - + + - + @@ -37,7 +37,7 @@ rhino3dm
    - 8.6.0-beta1 + 8.13.0-beta
    diff --git a/docs/python/api/BoundingBox.html b/docs/python/api/BoundingBox.html index ac1128dc5..4e564a99a 100644 --- a/docs/python/api/BoundingBox.html +++ b/docs/python/api/BoundingBox.html @@ -4,7 +4,7 @@ - BoundingBox — rhino3dm 8.6.0-beta1 documentation + BoundingBox — rhino3dm 8.13.0-beta documentation @@ -15,8 +15,8 @@ - - + + @@ -37,7 +37,7 @@ rhino3dm
    - 8.6.0-beta1 + 8.13.0-beta
    @@ -53,6 +53,7 @@
  • Arc
  • ArcCurve
  • ArchivableDictionary
  • +
  • Arrowhead
  • BezierCurve
  • Bitmap
  • BoundingBox
  • BrepVertexList
  • +
  • CachedTextureCoordinates
  • +
  • Centermark
  • Circle
  • CommonObject
  • ComponentIndex
  • @@ -83,7 +86,12 @@
  • CurveProxy
  • Cylinder
  • Decal
  • +
  • DimAngular
  • +
  • Dimension
  • DimensionStyle
  • +
  • DimLinear
  • +
  • DimOrdinate
  • +
  • DimRadial
  • Displacement
  • Dithering
  • DracoCompression
  • @@ -128,6 +136,7 @@
  • Intersection
  • Interval
  • Layer
  • +
  • Leader
  • Light
  • Line
  • LinearWorkflow
  • @@ -184,6 +193,7 @@
  • Sun
  • Surface
  • SurfaceProxy
  • +
  • Text
  • TextDot
  • Texture
  • TextureMapping
  • diff --git a/docs/python/api/BrepVertexList.html b/docs/python/api/BrepVertexList.html index 2d59317f7..655054483 100644 --- a/docs/python/api/BrepVertexList.html +++ b/docs/python/api/BrepVertexList.html @@ -4,7 +4,7 @@ - BrepVertexList — rhino3dm 8.6.0-beta1 documentation + BrepVertexList — rhino3dm 8.13.0-beta documentation @@ -15,13 +15,13 @@ - - + + - + @@ -37,7 +37,7 @@ rhino3dm
    - 8.6.0-beta1 + 8.13.0-beta