jsxgraph 1.10.0 → 1.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/distrib/docs/files.html +2 -61
- package/distrib/docs/index.html +2 -58
- package/distrib/docs/static/jsxgraphcore.js +2 -2
- package/distrib/docs/symbols/Angle.html +2 -18
- package/distrib/docs/symbols/Arc.html +2 -18
- package/distrib/docs/symbols/Arrow.html +2 -18
- package/distrib/docs/symbols/Arrowparallel.html +2 -18
- package/distrib/docs/symbols/Axes3D.html +2 -18
- package/distrib/docs/symbols/Axis.html +2 -18
- package/distrib/docs/symbols/Axis3D.html +2 -18
- package/distrib/docs/symbols/Bisector.html +2 -18
- package/distrib/docs/symbols/Bisectorlines.html +2 -18
- package/distrib/docs/symbols/Boxplot.html +2 -18
- package/distrib/docs/symbols/Button.html +2 -18
- package/distrib/docs/symbols/Cardinalspline.html +2 -18
- package/distrib/docs/symbols/Chart.html +2 -18
- package/distrib/docs/symbols/Checkbox.html +2 -18
- package/distrib/docs/symbols/Circle.html +2 -18
- package/distrib/docs/symbols/Circle3D.html +2 -18
- package/distrib/docs/symbols/Circumcenter.html +2 -18
- package/distrib/docs/symbols/Circumcircle.html +2 -18
- package/distrib/docs/symbols/CircumcircleArc.html +2 -18
- package/distrib/docs/symbols/CircumcircleSector.html +2 -18
- package/distrib/docs/symbols/Comb.html +2 -18
- package/distrib/docs/symbols/Conic.html +2 -18
- package/distrib/docs/symbols/Curve.html +2 -18
- package/distrib/docs/symbols/Curve3D.html +2 -18
- package/distrib/docs/symbols/CurveDifference.html +2 -18
- package/distrib/docs/symbols/CurveIntersection.html +2 -18
- package/distrib/docs/symbols/CurveUnion.html +2 -18
- package/distrib/docs/symbols/Derivative.html +2 -18
- package/distrib/docs/symbols/Ellipse.html +2 -18
- package/distrib/docs/symbols/ForeignObject.html +2 -18
- package/distrib/docs/symbols/Functiongraph.html +2 -18
- package/distrib/docs/symbols/Functiongraph3D.html +2 -18
- package/distrib/docs/symbols/Glider.html +2 -18
- package/distrib/docs/symbols/Grid.html +2 -18
- package/distrib/docs/symbols/Group.html +2 -18
- package/distrib/docs/symbols/Hatch.html +2 -18
- package/distrib/docs/symbols/Hyperbola.html +2 -18
- package/distrib/docs/symbols/Image.html +2 -18
- package/distrib/docs/symbols/ImplicitCurve.html +2 -18
- package/distrib/docs/symbols/Incenter.html +2 -18
- package/distrib/docs/symbols/Incircle.html +2 -18
- package/distrib/docs/symbols/Inequality.html +2 -18
- package/distrib/docs/symbols/Input.html +2 -18
- package/distrib/docs/symbols/Integral.html +2 -18
- package/distrib/docs/symbols/Intersection.html +2 -18
- package/distrib/docs/symbols/IntersectionCircle3D.html +2 -18
- package/distrib/docs/symbols/IntersectionLine3D.html +2 -18
- package/distrib/docs/symbols/JXG.AbstractRenderer.html +2 -18
- package/distrib/docs/symbols/JXG.Board.html +4 -20
- package/distrib/docs/symbols/JXG.Board.infobox.html +2 -18
- package/distrib/docs/symbols/JXG.C.html +2 -18
- package/distrib/docs/symbols/JXG.CA.html +2 -18
- package/distrib/docs/symbols/JXG.CanvasRenderer.html +2 -18
- package/distrib/docs/symbols/JXG.Chart.html +2 -18
- package/distrib/docs/symbols/JXG.Circle.html +2 -18
- package/distrib/docs/symbols/JXG.Circle3D.html +2 -18
- package/distrib/docs/symbols/JXG.Complex.html +2 -18
- package/distrib/docs/symbols/JXG.Composition.html +2 -18
- package/distrib/docs/symbols/JXG.Coords.html +2 -18
- package/distrib/docs/symbols/JXG.CoordsElement.html +98 -22
- package/distrib/docs/symbols/JXG.Curve.html +2 -18
- package/distrib/docs/symbols/JXG.Curve3D.html +2 -18
- package/distrib/docs/symbols/JXG.Dump.html +2 -18
- package/distrib/docs/symbols/JXG.EventEmitter.html +2 -18
- package/distrib/docs/symbols/JXG.Expect.html +2 -18
- package/distrib/docs/symbols/JXG.ForeignObject.html +2 -18
- package/distrib/docs/symbols/JXG.GeometryElement.html +2 -18
- package/distrib/docs/symbols/JXG.GeometryElement3D.html +2 -18
- package/distrib/docs/symbols/JXG.GeonextParser.html +2 -18
- package/distrib/docs/symbols/JXG.Group.html +2 -18
- package/distrib/docs/symbols/JXG.Image.html +2 -18
- package/distrib/docs/symbols/JXG.JSXGraph.html +2 -18
- package/distrib/docs/symbols/JXG.JessieCode.html +2 -18
- package/distrib/docs/symbols/JXG.Legend.html +2 -18
- package/distrib/docs/symbols/JXG.Line.html +2 -18
- package/distrib/docs/symbols/JXG.Line3D.html +2 -18
- package/distrib/docs/symbols/JXG.Math.BoxQuadtree.html +2 -18
- package/distrib/docs/symbols/JXG.Math.Clip.html +2 -18
- package/distrib/docs/symbols/JXG.Math.Extrapolate.html +2 -18
- package/distrib/docs/symbols/JXG.Math.Geometry.html +2 -18
- package/distrib/docs/symbols/JXG.Math.ImplicitPlot.html +2 -18
- package/distrib/docs/symbols/JXG.Math.IntervalArithmetic.html +2 -18
- package/distrib/docs/symbols/JXG.Math.Metapost.html +2 -18
- package/distrib/docs/symbols/JXG.Math.Nlp.html +2 -18
- package/distrib/docs/symbols/JXG.Math.Numerics.html +2 -18
- package/distrib/docs/symbols/JXG.Math.Plot.html +2 -18
- package/distrib/docs/symbols/JXG.Math.Poly.Monomial.html +2 -18
- package/distrib/docs/symbols/JXG.Math.Poly.Polynomial.html +2 -18
- package/distrib/docs/symbols/JXG.Math.Poly.Ring.html +2 -18
- package/distrib/docs/symbols/JXG.Math.Poly.html +2 -18
- package/distrib/docs/symbols/JXG.Math.ProbFuncs.html +2 -18
- package/distrib/docs/symbols/JXG.Math.Quadtree.html +2 -18
- package/distrib/docs/symbols/JXG.Math.Statistics.html +22 -34
- package/distrib/docs/symbols/JXG.Math.html +2 -18
- package/distrib/docs/symbols/JXG.NoRenderer.html +2 -18
- package/distrib/docs/symbols/JXG.Options.html +2 -18
- package/distrib/docs/symbols/JXG.Plane3D.html +2 -18
- package/distrib/docs/symbols/JXG.Point.html +2 -18
- package/distrib/docs/symbols/JXG.Point3D.html +2 -18
- package/distrib/docs/symbols/JXG.Polygon.html +2 -18
- package/distrib/docs/symbols/JXG.Polygon3D.html +2 -18
- package/distrib/docs/symbols/JXG.PrefixParser.html +2 -18
- package/distrib/docs/symbols/JXG.SVGRenderer.html +2 -18
- package/distrib/docs/symbols/JXG.Sphere3D.html +2 -18
- package/distrib/docs/symbols/JXG.Surface3D.html +2 -18
- package/distrib/docs/symbols/JXG.Text.html +2 -18
- package/distrib/docs/symbols/JXG.Text3D.html +2 -18
- package/distrib/docs/symbols/JXG.Ticks.html +2 -18
- package/distrib/docs/symbols/JXG.Transformation.html +2 -18
- package/distrib/docs/symbols/JXG.Turtle.html +2 -18
- package/distrib/docs/symbols/JXG.Util.Base64.html +2 -18
- package/distrib/docs/symbols/JXG.Util.UTF8.html +2 -18
- package/distrib/docs/symbols/JXG.Util.Unzip.html +2 -18
- package/distrib/docs/symbols/JXG.Util.html +2 -18
- package/distrib/docs/symbols/JXG.VMLRenderer.html +2 -18
- package/distrib/docs/symbols/JXG.View3D.html +4 -19
- package/distrib/docs/symbols/JXG.XML.html +2 -18
- package/distrib/docs/symbols/JXG.html +2 -18
- package/distrib/docs/symbols/Label.html +2 -18
- package/distrib/docs/symbols/Legend.html +2 -18
- package/distrib/docs/symbols/Line.html +2 -18
- package/distrib/docs/symbols/Line3D.html +2 -18
- package/distrib/docs/symbols/MajorArc.html +2 -18
- package/distrib/docs/symbols/MajorSector.html +2 -18
- package/distrib/docs/symbols/Measurement.html +2 -18
- package/distrib/docs/symbols/Mesh3D.html +2 -18
- package/distrib/docs/symbols/Metapostspline.html +2 -18
- package/distrib/docs/symbols/Midpoint.html +2 -18
- package/distrib/docs/symbols/MinorArc.html +2 -18
- package/distrib/docs/symbols/MinorSector.html +2 -18
- package/distrib/docs/symbols/Mirrorpoint.html +2 -18
- package/distrib/docs/symbols/NonReflexAngle.html +2 -18
- package/distrib/docs/symbols/Normal.html +2 -18
- package/distrib/docs/symbols/Orthogonalprojection.html +2 -18
- package/distrib/docs/symbols/OtherIntersection.html +2 -18
- package/distrib/docs/symbols/Parabola.html +2 -18
- package/distrib/docs/symbols/Parallel.html +2 -18
- package/distrib/docs/symbols/Parallelogram.html +2 -18
- package/distrib/docs/symbols/Parallelpoint.html +2 -18
- package/distrib/docs/symbols/ParametricSurface3D.html +2 -18
- package/distrib/docs/symbols/Perpendicular.html +2 -18
- package/distrib/docs/symbols/PerpendicularPoint.html +2 -18
- package/distrib/docs/symbols/PerpendicularSegment.html +2 -18
- package/distrib/docs/symbols/Point.html +2 -18
- package/distrib/docs/symbols/Point3D.html +2 -18
- package/distrib/docs/symbols/PolarLine.html +2 -18
- package/distrib/docs/symbols/PolePoint.html +2 -18
- package/distrib/docs/symbols/Polygon.html +2 -18
- package/distrib/docs/symbols/PolygonalChain.html +2 -18
- package/distrib/docs/symbols/RadicalAxis.html +2 -18
- package/distrib/docs/symbols/Reflection.html +2 -18
- package/distrib/docs/symbols/ReflexAngle.html +2 -18
- package/distrib/docs/symbols/RegularPolygon.html +2 -18
- package/distrib/docs/symbols/Riemannsum.html +2 -18
- package/distrib/docs/symbols/Sector.html +2 -18
- package/distrib/docs/symbols/Segment.html +2 -18
- package/distrib/docs/symbols/Semicircle.html +2 -18
- package/distrib/docs/symbols/Slider.html +2 -18
- package/distrib/docs/symbols/Slopefield.html +2 -18
- package/distrib/docs/symbols/Slopetriangle.html +2 -18
- package/distrib/docs/symbols/Smartlabel.html +2 -18
- package/distrib/docs/symbols/Sphere3D.html +2 -18
- package/distrib/docs/symbols/Spline.html +2 -18
- package/distrib/docs/symbols/Stepfunction.html +2 -18
- package/distrib/docs/symbols/Tangent.html +2 -18
- package/distrib/docs/symbols/TangentTo.html +2 -18
- package/distrib/docs/symbols/Tapemeasure.html +2 -18
- package/distrib/docs/symbols/Text.html +12 -26
- package/distrib/docs/symbols/Text3D.html +2 -18
- package/distrib/docs/symbols/Ticks.html +2 -18
- package/distrib/docs/symbols/Ticks3D.html +2 -18
- package/distrib/docs/symbols/Tracecurve.html +2 -18
- package/distrib/docs/symbols/Transformation.html +2 -18
- package/distrib/docs/symbols/Turtle.html +2 -18
- package/distrib/docs/symbols/Vectorfield.html +2 -18
- package/distrib/docs/symbols/Vectorfield3D.html +53 -18
- package/distrib/docs/symbols/View3D.html +2 -18
- package/distrib/docs/symbols/_global_.html +2 -18
- package/distrib/docs/symbols/mirrorelement.html +2 -18
- package/distrib/docs/symbols/src/src_3d_box3d.js.html +261 -259
- package/distrib/docs/symbols/src/src_3d_curve3d.js.html +205 -156
- package/distrib/docs/symbols/src/src_3d_linspace3d.js.html +337 -327
- package/distrib/docs/symbols/src/src_3d_point3d.js.html +204 -187
- package/distrib/docs/symbols/src/src_3d_text3d.js.html +189 -177
- package/distrib/docs/symbols/src/src_3d_view3d.js.html +1246 -1236
- package/distrib/docs/symbols/src/src_base_board.js.html +2058 -2057
- package/distrib/docs/symbols/src/src_base_constants.js.html +1 -1
- package/distrib/docs/symbols/src/src_base_coordselement.js.html +383 -274
- package/distrib/docs/symbols/src/src_element_sector.js.html +1 -1
- package/distrib/docs/symbols/src/src_math_geometry.js.html +609 -604
- package/distrib/docs/symbols/src/src_math_statistics.js.html +418 -411
- package/distrib/docs/symbols/src/src_options.js.html +504 -502
- package/distrib/docs/symbols/src/src_options3d.js.html +952 -944
- package/distrib/docs.zip +0 -0
- package/distrib/geogebra.min.js +1 -1
- package/distrib/geonext.min.js +1 -1
- package/distrib/intergeo.min.js +1 -1
- package/distrib/jsxgraph.zip +0 -0
- package/distrib/jsxgraphcore.js +2 -2
- package/distrib/jsxgraphcore.mjs +2 -2
- package/distrib/jsxgraphcore.mjs.map +1 -1
- package/distrib/jsxgraphsrc.js +15405 -16038
- package/distrib/jsxgraphsrc.mjs +15405 -16038
- package/distrib/jsxgraphsrc.mjs.map +1 -1
- package/distrib/sketch.min.js +1 -1
- package/package.json +1 -1
- package/src/3d/box3d.js +2 -0
- package/src/3d/curve3d.js +53 -4
- package/src/3d/linspace3d.js +17 -7
- package/src/3d/point3d.js +20 -3
- package/src/3d/text3d.js +20 -8
- package/src/3d/view3d.js +17 -7
- package/src/base/board.js +1 -0
- package/src/base/constants.js +1 -1
- package/src/base/coordselement.js +119 -10
- package/src/element/sector.js +1 -1
- package/src/index.js +0 -3
- package/src/math/geometry.js +27 -22
- package/src/math/statistics.js +29 -22
- package/src/options.js +8 -6
- package/src/options3d.js +10 -2
- package/src/{server → unused/server}/JXGServer.py +4 -9
- package/src/{server → unused/server}/JXGServerModule.py +2 -2
- package/src/{server → unused/server}/README.md +25 -14
- package/src/{server → unused/server}/RStats.py +1 -1
- package/src/{server → unused/server}/YahooFinance.py +4 -4
- package/src/{server → unused/server}/fft.py +6 -6
- package/src/{server → unused/server}/geoloci.py +17 -17
- package/src/{server → unused/server}/jxggroebner.py +22 -22
- package/src/index2.js +0 -105
- /package/src/{element → unused}/locus.js +0 -0
- /package/src/{server → unused/server}/JXG.py +0 -0
- /package/src/{server → unused/server}/jxgtestplugin.py +0 -0
- /package/src/{server → unused/server}/server.js +0 -0
- /package/src/{math → unused}/symbolic.js +0 -0
|
@@ -609,7 +609,7 @@
|
|
|
609
609
|
<span class='line'>602</span>
|
|
610
610
|
<span class='line'>603</span> </span><span class="WHIT"> </span><span class="NAME">updateDataArray</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
611
611
|
<span class='line'>604</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">s1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">e1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">s2</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">e2</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">c2d</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">l2</span><span class="PUNC">,</span><span class="WHIT">
|
|
612
|
-
<span class='line'>605</span> </span><span class="WHIT"> </span><span class="NAME">planes</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="STRN">'xPlaneRear'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'yPlaneRear'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'zPlaneRear'</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
|
|
612
|
+
<span class='line'>605</span> </span><span class="WHIT"> </span><span class="NAME">planes</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="STRN">'xPlaneRear'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'yPlaneRear'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'zPlaneRear'</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="COMM">// Must be ordered x, y, z</span><span class="WHIT">
|
|
613
613
|
<span class='line'>606</span> </span><span class="WHIT"> </span><span class="NAME">points</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
|
|
614
614
|
<span class='line'>607</span> </span><span class="WHIT"> </span><span class="NAME">v1</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
|
|
615
615
|
<span class='line'>608</span> </span><span class="WHIT"> </span><span class="NAME">v2</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
|
|
@@ -632,333 +632,343 @@
|
|
|
632
632
|
<span class='line'>625</span> </span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.range2</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="PUNC">-</span><span class="NAME">Infinity</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
|
|
633
633
|
<span class='line'>626</span> </span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.range2</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">Infinity</span><span class="WHIT">
|
|
634
634
|
<span class='line'>627</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
635
|
-
<span class='line'>628</span> </span><span class="WHIT"> </span><span class="COMM">//
|
|
636
|
-
<span class='line'>629</span> </span><span class="WHIT"> </span><span class="COMM">//
|
|
637
|
-
<span class='line'>630</span> </span><span class="WHIT"> </span><span class="COMM"
|
|
638
|
-
<span class='line'>631</span> </span><span class="WHIT"> </span><span class="COMM">//
|
|
639
|
-
<span class='line'>632</span> </span><span class="WHIT"> </span><span class="COMM">//
|
|
640
|
-
<span class='line'>633</span> </span><span class="WHIT"> </span><span class="
|
|
641
|
-
<span class='line'>634</span> </span><span class="WHIT">
|
|
642
|
-
<span class='line'>635</span>
|
|
643
|
-
<span class='line'>636</span> </span><span class="WHIT">
|
|
644
|
-
<span class='line'>637</span> </span><span class="WHIT">
|
|
645
|
-
<span class='line'>638</span> </span><span class="WHIT">
|
|
646
|
-
<span class='line'>639</span> </span><span class="WHIT"> </span><span class="
|
|
647
|
-
<span class='line'>640</span> </span><span class="WHIT">
|
|
648
|
-
<span class='line'>641</span> </span><span class="WHIT">
|
|
649
|
-
<span class='line'>642</span> </span><span class="WHIT">
|
|
650
|
-
<span class='line'>643</span> </span><span class="WHIT">
|
|
651
|
-
<span class='line'>644</span> </span><span class="WHIT">
|
|
652
|
-
<span class='line'>645</span> </span><span class="WHIT">
|
|
653
|
-
<span class='line'>646</span> </span><span class="WHIT"> </span><span class="
|
|
654
|
-
<span class='line'>647</span> </span><span class="WHIT">
|
|
655
|
-
<span class='line'>648</span> </span><span class="WHIT">
|
|
656
|
-
<span class='line'>649</span> </span><span class="WHIT">
|
|
657
|
-
<span class='line'>650</span> </span><span class="WHIT"> </span><span class="
|
|
635
|
+
<span class='line'>628</span> </span><span class="WHIT"> </span><span class="COMM">// Determine the intersections of the new plane with</span><span class="WHIT">
|
|
636
|
+
<span class='line'>629</span> </span><span class="WHIT"> </span><span class="COMM">// the view bbox3d.</span><span class="WHIT">
|
|
637
|
+
<span class='line'>630</span> </span><span class="WHIT"> </span><span class="COMM">//</span><span class="WHIT">
|
|
638
|
+
<span class='line'>631</span> </span><span class="WHIT"> </span><span class="COMM">// Start with the rear plane.</span><span class="WHIT">
|
|
639
|
+
<span class='line'>632</span> </span><span class="WHIT"> </span><span class="COMM">// For each face of the bbox3d we determine two points</span><span class="WHIT">
|
|
640
|
+
<span class='line'>633</span> </span><span class="WHIT"> </span><span class="COMM">// which are the end points of the intersecting line</span><span class="WHIT">
|
|
641
|
+
<span class='line'>634</span> </span><span class="WHIT"> </span><span class="COMM">// between the plane and a face of bbox3d.</span><span class="WHIT">
|
|
642
|
+
<span class='line'>635</span> </span><span class="WHIT"> </span><span class="COMM">// We start with the three rear planes (set in planes[] above)</span><span class="WHIT">
|
|
643
|
+
<span class='line'>636</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">planes.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">j</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
644
|
+
<span class='line'>637</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">view.intersectionPlanePlane</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">view.defaultAxes</span><span class="PUNC">[</span><span class="NAME">planes</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
645
|
+
<span class='line'>638</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
646
|
+
<span class='line'>639</span> </span><span class="WHIT"> </span><span class="COMM">// This test is necessary to filter out intersection lines which are</span><span class="WHIT">
|
|
647
|
+
<span class='line'>640</span> </span><span class="WHIT"> </span><span class="COMM">// identical to intersections of axis planes (they would occur twice),</span><span class="WHIT">
|
|
648
|
+
<span class='line'>641</span> </span><span class="WHIT"> </span><span class="COMM">// i.e. edges of bbox3d.</span><span class="WHIT">
|
|
649
|
+
<span class='line'>642</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">points.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
650
|
+
<span class='line'>643</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
|
|
651
|
+
<span class='line'>644</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Geometry.distance</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">points</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">Mat.eps</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
|
|
652
|
+
<span class='line'>645</span> </span><span class="WHIT"> </span><span class="NAME">Geometry.distance</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">points</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">Mat.eps</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT">
|
|
653
|
+
<span class='line'>646</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Geometry.distance</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">points</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">Mat.eps</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
|
|
654
|
+
<span class='line'>647</span> </span><span class="WHIT"> </span><span class="NAME">Geometry.distance</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">points</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">Mat.eps</span><span class="PUNC">)</span><span class="WHIT">
|
|
655
|
+
<span class='line'>648</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
656
|
+
<span class='line'>649</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
|
|
657
|
+
<span class='line'>650</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
|
658
658
|
<span class='line'>651</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
|
659
|
-
<span class='line'>652</span> </span><span class="WHIT">
|
|
660
|
-
<span class='line'>653</span>
|
|
661
|
-
<span class='line'>654</span> </span><span class="WHIT">
|
|
662
|
-
<span class='line'>655</span> </span><span class="WHIT"> </span><span class="
|
|
663
|
-
<span class='line'>656</span>
|
|
664
|
-
<span class='line'>657</span>
|
|
665
|
-
<span class='line'>658</span> </span><span class="WHIT"> </span><span class="
|
|
666
|
-
<span class='line'>659</span> </span><span class="WHIT"> </span><span class="NAME">
|
|
667
|
-
<span class='line'>660</span>
|
|
668
|
-
<span class='line'>661</span>
|
|
669
|
-
<span class='line'>662</span> </span><span class="WHIT"> </span><span class="
|
|
670
|
-
<span class='line'>663</span> </span><span class="WHIT">
|
|
671
|
-
<span class='line'>664</span> </span><span class="WHIT">
|
|
672
|
-
<span class='line'>665</span>
|
|
673
|
-
<span class='line'>666</span> </span><span class="WHIT">
|
|
674
|
-
<span class='line'>667</span> </span><span class="WHIT">
|
|
675
|
-
<span class='line'>668</span> </span><span class="WHIT">
|
|
676
|
-
<span class='line'>669</span> </span><span class="WHIT">
|
|
677
|
-
<span class='line'>670</span> </span><span class="WHIT"> </span><span class="
|
|
678
|
-
<span class='line'>671</span> </span><span class="WHIT"> </span><span class="
|
|
679
|
-
<span class='line'>672</span> </span><span class="WHIT">
|
|
680
|
-
<span class='line'>673</span> </span><span class="WHIT">
|
|
681
|
-
<span class='line'>674</span> </span><span class="WHIT">
|
|
682
|
-
<span class='line'>675</span> </span><span class="WHIT"> </span><span class="
|
|
683
|
-
<span class='line'>676</span> </span><span class="WHIT">
|
|
684
|
-
<span class='line'>677</span> </span><span class="WHIT">
|
|
685
|
-
<span class='line'>678</span> </span><span class="WHIT">
|
|
686
|
-
<span class='line'>679</span>
|
|
687
|
-
<span class='line'>680</span> </span><span class="WHIT">
|
|
688
|
-
<span class='line'>681</span> </span><span class="WHIT">
|
|
689
|
-
<span class='line'>682</span> </span><span class="WHIT">
|
|
690
|
-
<span class='line'>683</span> </span><span class="WHIT"> </span><span class="
|
|
691
|
-
<span class='line'>684</span>
|
|
692
|
-
<span class='line'>685</span> </span><span class="WHIT"> </span><span class="
|
|
693
|
-
<span class='line'>686</span> </span><span class="WHIT"> </span><span class="KEYW">
|
|
694
|
-
<span class='line'>687</span> </span><span class="WHIT"> </span><span class="
|
|
695
|
-
<span class='line'>688</span> </span><span class="WHIT">
|
|
696
|
-
<span class='line'>689</span>
|
|
697
|
-
<span class='line'>690</span> </span><span class="WHIT">
|
|
698
|
-
<span class='line'>691</span> </span><span class="WHIT">
|
|
699
|
-
<span class='line'>692</span> </span><span class="WHIT">
|
|
700
|
-
<span class='line'>693</span> </span><span class="WHIT">
|
|
701
|
-
<span class='line'>694</span> </span><span class="WHIT">
|
|
702
|
-
<span class='line'>695</span>
|
|
703
|
-
<span class='line'>696</span> </span><span class="WHIT">
|
|
704
|
-
<span class='line'>697</span> </span><span class="WHIT"> </span><span class="
|
|
705
|
-
<span class='line'>698</span> </span><span class="WHIT">
|
|
706
|
-
<span class='line'>699</span> </span><span class="WHIT">
|
|
707
|
-
<span class='line'>700</span> </span><span class="WHIT">
|
|
708
|
-
<span class='line'>701</span> </span><span class="WHIT">
|
|
709
|
-
<span class='line'>702</span> </span><span class="WHIT">
|
|
710
|
-
<span class='line'>703</span> </span><span class="WHIT">
|
|
711
|
-
<span class='line'>704</span> </span><span class="WHIT">
|
|
712
|
-
<span class='line'>705</span>
|
|
713
|
-
<span class='line'>706</span> </span><span class="WHIT">
|
|
714
|
-
<span class='line'>707</span> </span><span class="WHIT">
|
|
715
|
-
<span class='line'>708</span> </span><span class="WHIT">
|
|
716
|
-
<span class='line'>709</span> </span><span class="WHIT">
|
|
717
|
-
<span class='line'>710</span> </span><span class="WHIT">
|
|
718
|
-
<span class='line'>711</span> </span><span class="WHIT">
|
|
719
|
-
<span class='line'>712</span> </span><span class="WHIT">
|
|
720
|
-
<span class='line'>713</span> </span><span class="WHIT">
|
|
721
|
-
<span class='line'>714</span>
|
|
722
|
-
<span class='line'>715</span> </span><span class="WHIT">
|
|
723
|
-
<span class='line'>716</span> </span><span class="WHIT">
|
|
724
|
-
<span class='line'>717</span> </span><span class="WHIT">
|
|
725
|
-
<span class='line'>718</span> </span><span class="WHIT">
|
|
726
|
-
<span class='line'>719</span> </span><span class="WHIT">
|
|
727
|
-
<span class='line'>720</span> </span><span class="WHIT">
|
|
728
|
-
<span class='line'>721</span> </span><span class="WHIT">
|
|
729
|
-
<span class='line'>722</span> </span><span class="WHIT">
|
|
730
|
-
<span class='line'>723</span> </span><span class="WHIT"> </span><span class="
|
|
659
|
+
<span class='line'>652</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">points.length</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
660
|
+
<span class='line'>653</span> </span><span class="WHIT"> </span><span class="NAME">points.push</span><span class="PUNC">(</span><span class="NAME">p.slice</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
661
|
+
<span class='line'>654</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
|
662
|
+
<span class='line'>655</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
|
663
|
+
<span class='line'>656</span>
|
|
664
|
+
<span class='line'>657</span> </span><span class="WHIT"> </span><span class="COMM">// Take a point on the corresponding front plane of bbox3d.</span><span class="WHIT">
|
|
665
|
+
<span class='line'>658</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
|
666
|
+
<span class='line'>659</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">view.bbox3D</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
|
667
|
+
<span class='line'>660</span>
|
|
668
|
+
<span class='line'>661</span> </span><span class="WHIT"> </span><span class="COMM">// Use the Hesse normal form of front plane to intersect it with the plane</span><span class="WHIT">
|
|
669
|
+
<span class='line'>662</span> </span><span class="WHIT"> </span><span class="COMM">// d is the rhs of the Hesse normal form of the front plane.</span><span class="WHIT">
|
|
670
|
+
<span class='line'>663</span> </span><span class="WHIT"> </span><span class="NAME">d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Mat.innerProduct</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">view.defaultAxes</span><span class="PUNC">[</span><span class="NAME">planes</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">normal</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
671
|
+
<span class='line'>664</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">view.intersectionPlanePlane</span><span class="PUNC">(</span><span class="KEYW">this</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">view.defaultAxes</span><span class="PUNC">[</span><span class="NAME">planes</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">d</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
672
|
+
<span class='line'>665</span>
|
|
673
|
+
<span class='line'>666</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">.</span><span class="NAME">length</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
674
|
+
<span class='line'>667</span> </span><span class="WHIT"> </span><span class="COMM">// Do the same test as above</span><span class="WHIT">
|
|
675
|
+
<span class='line'>668</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">points.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
676
|
+
<span class='line'>669</span> </span><span class="WHIT"> </span><span class="COMM">// Same test for edges of bbox3d as above</span><span class="WHIT">
|
|
677
|
+
<span class='line'>670</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
|
|
678
|
+
<span class='line'>671</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Geometry.distance</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">points</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">Mat.eps</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
|
|
679
|
+
<span class='line'>672</span> </span><span class="WHIT"> </span><span class="NAME">Geometry.distance</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">points</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">Mat.eps</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT">
|
|
680
|
+
<span class='line'>673</span> </span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">Geometry.distance</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">points</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">Mat.eps</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
|
|
681
|
+
<span class='line'>674</span> </span><span class="WHIT"> </span><span class="NAME">Geometry.distance</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">points</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">Mat.eps</span><span class="PUNC">)</span><span class="WHIT">
|
|
682
|
+
<span class='line'>675</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
683
|
+
<span class='line'>676</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
|
|
684
|
+
<span class='line'>677</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
|
685
|
+
<span class='line'>678</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
|
686
|
+
<span class='line'>679</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">points.length</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
687
|
+
<span class='line'>680</span> </span><span class="WHIT"> </span><span class="NAME">points.push</span><span class="PUNC">(</span><span class="NAME">p.slice</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
688
|
+
<span class='line'>681</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
|
689
|
+
<span class='line'>682</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
|
690
|
+
<span class='line'>683</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
|
691
|
+
<span class='line'>684</span>
|
|
692
|
+
<span class='line'>685</span> </span><span class="WHIT"> </span><span class="COMM">// Handle the case that the plane does not intersect bbox3d at all.</span><span class="WHIT">
|
|
693
|
+
<span class='line'>686</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">points.length</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
694
|
+
<span class='line'>687</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">X</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.dataX</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Y</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.dataY</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
|
695
|
+
<span class='line'>688</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
|
696
|
+
<span class='line'>689</span>
|
|
697
|
+
<span class='line'>690</span> </span><span class="WHIT"> </span><span class="COMM">// Concatenate the intersection points to a polygon.</span><span class="WHIT">
|
|
698
|
+
<span class='line'>691</span> </span><span class="WHIT"> </span><span class="COMM">// If all went well, each intersection should appear</span><span class="WHIT">
|
|
699
|
+
<span class='line'>692</span> </span><span class="WHIT"> </span><span class="COMM">// twice in the list.</span><span class="WHIT">
|
|
700
|
+
<span class='line'>693</span> </span><span class="WHIT"> </span><span class="NAME">first</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
|
701
|
+
<span class='line'>694</span> </span><span class="WHIT"> </span><span class="NAME">pos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">first</span><span class="PUNC">;</span><span class="WHIT">
|
|
702
|
+
<span class='line'>695</span> </span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
|
703
|
+
<span class='line'>696</span> </span><span class="WHIT"> </span><span class="KEYW">do</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
704
|
+
<span class='line'>697</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">points</span><span class="PUNC">[</span><span class="NAME">pos</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
|
705
|
+
<span class='line'>698</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">p.length</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
706
|
+
<span class='line'>699</span> </span><span class="WHIT"> </span><span class="NAME">c2d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">view.project3DTo2D</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
707
|
+
<span class='line'>700</span> </span><span class="WHIT"> </span><span class="NAME">this.dataX.push</span><span class="PUNC">(</span><span class="NAME">c2d</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
708
|
+
<span class='line'>701</span> </span><span class="WHIT"> </span><span class="NAME">this.dataY.push</span><span class="PUNC">(</span><span class="NAME">c2d</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
709
|
+
<span class='line'>702</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
|
710
|
+
<span class='line'>703</span> </span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">%</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">;</span><span class="WHIT">
|
|
711
|
+
<span class='line'>704</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">points</span><span class="PUNC">[</span><span class="NAME">pos</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
|
712
|
+
<span class='line'>705</span>
|
|
713
|
+
<span class='line'>706</span> </span><span class="WHIT"> </span><span class="NAME">pos_akt</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">pos</span><span class="PUNC">;</span><span class="WHIT">
|
|
714
|
+
<span class='line'>707</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">points.length</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">j</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
715
|
+
<span class='line'>708</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">pos</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">Geometry.distance</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">points</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">Mat.eps</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
716
|
+
<span class='line'>709</span> </span><span class="WHIT"> </span><span class="NAME">pos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">j</span><span class="PUNC">;</span><span class="WHIT">
|
|
717
|
+
<span class='line'>710</span> </span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT">
|
|
718
|
+
<span class='line'>711</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
|
|
719
|
+
<span class='line'>712</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
|
720
|
+
<span class='line'>713</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">pos</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT"> </span><span class="NAME">Geometry.distance</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">points</span><span class="PUNC">[</span><span class="NAME">j</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NAME">Mat.eps</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
721
|
+
<span class='line'>714</span> </span><span class="WHIT"> </span><span class="NAME">pos</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">j</span><span class="PUNC">;</span><span class="WHIT">
|
|
722
|
+
<span class='line'>715</span> </span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">;</span><span class="WHIT">
|
|
723
|
+
<span class='line'>716</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
|
|
724
|
+
<span class='line'>717</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
|
725
|
+
<span class='line'>718</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
|
726
|
+
<span class='line'>719</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">pos</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="NAME">pos_akt</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
727
|
+
<span class='line'>720</span> </span><span class="WHIT"> </span><span class="NAME">console.log</span><span class="PUNC">(</span><span class="STRN">'Error: update plane3d: did not find next'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">pos</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
728
|
+
<span class='line'>721</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
|
|
729
|
+
<span class='line'>722</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
|
730
|
+
<span class='line'>723</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">while</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">pos</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">first</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
731
731
|
<span class='line'>724</span>
|
|
732
|
-
<span class='line'>725</span> </span><span class="WHIT"> </span><span class="NAME">
|
|
733
|
-
<span class='line'>726</span>
|
|
734
|
-
<span class='line'>727</span> </span><span class="WHIT"> </span><span class="NAME">
|
|
735
|
-
<span class='line'>728</span> </span><span class="WHIT">
|
|
736
|
-
<span class='line'>729</span> </span><span class="WHIT"> </span><span class="
|
|
737
|
-
<span class='line'>730</span> </span><span class="WHIT"> </span><span class="NAME">
|
|
738
|
-
<span class='line'>731</span> </span><span class="WHIT"> </span><span class="
|
|
739
|
-
<span class='line'>732</span> </span><span class="WHIT">
|
|
740
|
-
<span class='line'>733</span> </span><span class="WHIT">
|
|
741
|
-
<span class='line'>734</span>
|
|
742
|
-
<span class='line'>735</span>
|
|
743
|
-
<span class='line'>736</span>
|
|
744
|
-
<span class='line'>737</span> </span><span class="WHIT">
|
|
745
|
-
<span class='line'>738</span> </span><span class="WHIT">
|
|
746
|
-
<span class='line'>739</span> </span><span class="WHIT">
|
|
747
|
-
<span class='line'>740</span> </span><span class="WHIT">
|
|
748
|
-
<span class='line'>741</span> </span><span class="WHIT">
|
|
749
|
-
<span class='line'>742</span> </span><span class="WHIT">
|
|
750
|
-
<span class='line'>743</span> </span><span class="WHIT">
|
|
751
|
-
<span class='line'>744</span> </span><span class="WHIT">
|
|
752
|
-
<span class='line'>745</span>
|
|
753
|
-
<span class='line'>746</span> </span><span class="WHIT">
|
|
754
|
-
<span class='line'>747</span> </span><span class="WHIT">
|
|
755
|
-
<span class='line'>748</span> </span><span class="WHIT">
|
|
756
|
-
<span class='line'>749</span> </span><span class="WHIT"> </span><span class="
|
|
757
|
-
<span class='line'>750</span> </span><span class="WHIT">
|
|
758
|
-
<span class='line'>751</span> </span><span class="WHIT"> </span><span class="
|
|
759
|
-
<span class='line'>752</span> </span><span class="WHIT">
|
|
760
|
-
<span class='line'>753</span> </span><span class="WHIT">
|
|
761
|
-
<span class='line'>754</span> </span><span class="WHIT">
|
|
762
|
-
<span class='line'>755</span> </span><span class="WHIT">
|
|
763
|
-
<span class='line'>756</span> </span><span class="WHIT">
|
|
764
|
-
<span class='line'>757</span> </span><span class="WHIT">
|
|
765
|
-
<span class='line'>758</span> </span><span class="WHIT">
|
|
766
|
-
<span class='line'>759</span> </span><span class="WHIT">
|
|
767
|
-
<span class='line'>760</span> </span><span class="WHIT">
|
|
768
|
-
<span class='line'>761</span> </span><span class="WHIT">
|
|
769
|
-
<span class='line'>762</span> </span><span class="WHIT">
|
|
770
|
-
<span class='line'>763</span> </span><span class="WHIT">
|
|
771
|
-
<span class='line'>764</span> </span><span class="WHIT">
|
|
772
|
-
<span class='line'>765</span> </span><span class="WHIT">
|
|
773
|
-
<span class='line'>766</span> </span><span class="WHIT">
|
|
774
|
-
<span class='line'>767</span>
|
|
775
|
-
<span class='line'>768</span> </span><span class="WHIT">
|
|
776
|
-
<span class='line'>769</span> </span><span class="WHIT">
|
|
777
|
-
<span class='line'>770</span> </span><span class="WHIT">
|
|
778
|
-
<span class='line'>771</span>
|
|
779
|
-
<span class='line'>772</span> </span><span class="WHIT">
|
|
780
|
-
<span class='line'>773</span> </span><span class="WHIT">
|
|
781
|
-
<span class='line'>774</span> </span><span class="WHIT"> </span><span class="
|
|
782
|
-
<span class='line'>775</span> </span><span class="WHIT">
|
|
783
|
-
<span class='line'>776</span> </span><span class="WHIT">
|
|
784
|
-
<span class='line'>777</span>
|
|
785
|
-
<span class='line'>778</span>
|
|
786
|
-
<span class='line'>779</span> </span><span class="
|
|
787
|
-
<span class='line'>780</span> </span><span class="
|
|
788
|
-
<span class='line'>781</span>
|
|
789
|
-
<span class='line'>782</span> </span><span class="WHIT"> </span><span class="NAME">
|
|
790
|
-
<span class='line'>783</span> </span><span class="WHIT">
|
|
791
|
-
<span class='line'>784</span> </span><span class="WHIT">
|
|
792
|
-
<span class='line'>785</span> </span><span class="WHIT"> </span><span class="
|
|
793
|
-
<span class='line'>786</span> </span><span class="WHIT">
|
|
794
|
-
<span class='line'>787</span> </span><span class="
|
|
795
|
-
<span class='line'>788</span>
|
|
796
|
-
<span class='line'>789</span> </span><span class="
|
|
797
|
-
<span class='line'>790</span>
|
|
798
|
-
<span class='line'>791</span> </span><span class="WHIT"> </span><span class="
|
|
799
|
-
<span class='line'>792</span> </span><span class="WHIT">
|
|
800
|
-
<span class='line'>793</span> </span><span class="WHIT"> </span><span class="
|
|
801
|
-
<span class='line'>794</span> </span><span class="WHIT">
|
|
802
|
-
<span class='line'>795</span>
|
|
803
|
-
<span class='line'>796</span> </span><span class="WHIT">
|
|
804
|
-
<span class='line'>797</span> </span><span class="WHIT">
|
|
805
|
-
<span class='line'>798</span> </span><span class="WHIT">
|
|
806
|
-
<span class='line'>799</span>
|
|
807
|
-
<span class='line'>800</span>
|
|
808
|
-
<span class='line'>801</span> </span><span class="WHIT"> </span><span class="NAME">
|
|
809
|
-
<span class='line'>802</span> </span><span class="WHIT"> </span><span class="NAME">
|
|
810
|
-
<span class='line'>803</span>
|
|
811
|
-
<span class='line'>804</span> </span><span class="WHIT"> </span><span class="
|
|
812
|
-
<span class='line'>805</span>
|
|
813
|
-
<span class='line'>806</span>
|
|
814
|
-
<span class='line'>807</span>
|
|
815
|
-
<span class='line'>808</span> </span><span class="WHIT"> </span><span class="NAME">
|
|
816
|
-
<span class='line'>809</span>
|
|
817
|
-
<span class='line'>810</span> </span><span class="WHIT">
|
|
818
|
-
<span class='line'>811</span> </span><span class="WHIT">
|
|
819
|
-
<span class='line'>812</span> </span><span class="WHIT"> </span><span class="PUNC">
|
|
820
|
-
<span class='line'>813</span>
|
|
821
|
-
<span class='line'>814</span> </span><span class="WHIT"> </span><span class="
|
|
822
|
-
<span class='line'>815</span>
|
|
823
|
-
<span class='line'>816</span>
|
|
824
|
-
<span class='line'>817</span>
|
|
825
|
-
<span class='line'>818</span> </span><span class="WHIT"> </span><span class="KEYW">
|
|
826
|
-
<span class='line'>819</span> </span><span class="WHIT"> </span><span class="
|
|
827
|
-
<span class='line'>820</span> </span><span class="WHIT"> </span><span class="NAME">
|
|
828
|
-
<span class='line'>821</span> </span><span class="WHIT"> </span><span class="NAME">
|
|
829
|
-
<span class='line'>822</span> </span><span class="WHIT">
|
|
830
|
-
<span class='line'>823</span> </span><span class="WHIT"> </span><span class="PUNC">
|
|
831
|
-
<span class='line'>824</span> </span><span class="WHIT">
|
|
832
|
-
<span class='line'>825</span> </span><span class="WHIT">
|
|
833
|
-
<span class='line'>826</span>
|
|
834
|
-
<span class='line'>827</span> </span><span class="WHIT">
|
|
835
|
-
<span class='line'>828</span> </span><span class="WHIT">
|
|
836
|
-
<span class='line'>829</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC"
|
|
837
|
-
<span class='line'>830</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC"
|
|
838
|
-
<span class='line'>831</span> </span><span class="WHIT"> </span><span class="NAME">el.
|
|
839
|
-
<span class='line'>832</span> </span><span class="WHIT"> </span><span class="NAME">
|
|
840
|
-
<span class='line'>833</span> </span><span class="WHIT">
|
|
841
|
-
<span class='line'>834</span> </span><span class="WHIT"> </span><span class="NAME">grid.
|
|
842
|
-
<span class='line'>835</span> </span><span class="WHIT">
|
|
843
|
-
<span class='line'>836</span>
|
|
844
|
-
<span class='line'>837</span> </span><span class="WHIT">
|
|
845
|
-
<span class='line'>838</span>
|
|
846
|
-
<span class='line'>839</span> </span><span class="WHIT">
|
|
847
|
-
<span class='line'>840</span> </span><span class="WHIT">
|
|
848
|
-
<span class='line'>841</span> </span><span class="WHIT"> </span><span class="NAME">el.
|
|
849
|
-
<span class='line'>842</span> </span><span class="WHIT">
|
|
850
|
-
<span class='line'>843</span>
|
|
851
|
-
<span class='line'>844</span> </span><span class="WHIT">
|
|
852
|
-
<span class='line'>845</span> </span><span class="PUNC">
|
|
732
|
+
<span class='line'>725</span> </span><span class="WHIT"> </span><span class="NAME">c2d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">view.project3DTo2D</span><span class="PUNC">(</span><span class="NAME">points</span><span class="PUNC">[</span><span class="NAME">first</span><span class="PUNC">]</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
733
|
+
<span class='line'>726</span> </span><span class="WHIT"> </span><span class="NAME">this.dataX.push</span><span class="PUNC">(</span><span class="NAME">c2d</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
734
|
+
<span class='line'>727</span> </span><span class="WHIT"> </span><span class="NAME">this.dataY.push</span><span class="PUNC">(</span><span class="NAME">c2d</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
735
|
+
<span class='line'>728</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">else</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
736
|
+
<span class='line'>729</span> </span><span class="WHIT"> </span><span class="COMM">// 3D bounded flat</span><span class="WHIT">
|
|
737
|
+
<span class='line'>730</span> </span><span class="WHIT"> </span><span class="NAME">s1</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.range1</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
738
|
+
<span class='line'>731</span> </span><span class="WHIT"> </span><span class="NAME">e1</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.range1</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
739
|
+
<span class='line'>732</span> </span><span class="WHIT"> </span><span class="NAME">s2</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.range2</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
740
|
+
<span class='line'>733</span> </span><span class="WHIT"> </span><span class="NAME">e2</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.evaluate</span><span class="PUNC">(</span><span class="NAME">this.range2</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
741
|
+
<span class='line'>734</span>
|
|
742
|
+
<span class='line'>735</span> </span><span class="WHIT"> </span><span class="NAME">q</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.point.coords.slice</span><span class="PUNC">(</span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
743
|
+
<span class='line'>736</span>
|
|
744
|
+
<span class='line'>737</span> </span><span class="WHIT"> </span><span class="NAME">v1</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.vec1.slice</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
745
|
+
<span class='line'>738</span> </span><span class="WHIT"> </span><span class="NAME">v2</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">this.vec2.slice</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
746
|
+
<span class='line'>739</span> </span><span class="WHIT"> </span><span class="NAME">l1</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Mat.norm</span><span class="PUNC">(</span><span class="NAME">v1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
747
|
+
<span class='line'>740</span> </span><span class="WHIT"> </span><span class="NAME">l2</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Mat.norm</span><span class="PUNC">(</span><span class="NAME">v2</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
748
|
+
<span class='line'>741</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
749
|
+
<span class='line'>742</span> </span><span class="WHIT"> </span><span class="NAME">v1</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">l1</span><span class="PUNC">;</span><span class="WHIT">
|
|
750
|
+
<span class='line'>743</span> </span><span class="WHIT"> </span><span class="NAME">v2</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">/</span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">l2</span><span class="PUNC">;</span><span class="WHIT">
|
|
751
|
+
<span class='line'>744</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
|
752
|
+
<span class='line'>745</span>
|
|
753
|
+
<span class='line'>746</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">j</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">4</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">j</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
754
|
+
<span class='line'>747</span> </span><span class="WHIT"> </span><span class="KEYW">switch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">j</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
755
|
+
<span class='line'>748</span> </span><span class="WHIT"> </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">:</span><span class="WHIT">
|
|
756
|
+
<span class='line'>749</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">s1</span><span class="PUNC">;</span><span class="WHIT">
|
|
757
|
+
<span class='line'>750</span> </span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">s2</span><span class="PUNC">;</span><span class="WHIT">
|
|
758
|
+
<span class='line'>751</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
|
|
759
|
+
<span class='line'>752</span> </span><span class="WHIT"> </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">:</span><span class="WHIT">
|
|
760
|
+
<span class='line'>753</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">e1</span><span class="PUNC">;</span><span class="WHIT">
|
|
761
|
+
<span class='line'>754</span> </span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">s2</span><span class="PUNC">;</span><span class="WHIT">
|
|
762
|
+
<span class='line'>755</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
|
|
763
|
+
<span class='line'>756</span> </span><span class="WHIT"> </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">:</span><span class="WHIT">
|
|
764
|
+
<span class='line'>757</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">e1</span><span class="PUNC">;</span><span class="WHIT">
|
|
765
|
+
<span class='line'>758</span> </span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">e2</span><span class="PUNC">;</span><span class="WHIT">
|
|
766
|
+
<span class='line'>759</span> </span><span class="WHIT"> </span><span class="KEYW">break</span><span class="PUNC">;</span><span class="WHIT">
|
|
767
|
+
<span class='line'>760</span> </span><span class="WHIT"> </span><span class="KEYW">case</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">:</span><span class="WHIT">
|
|
768
|
+
<span class='line'>761</span> </span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">s1</span><span class="PUNC">;</span><span class="WHIT">
|
|
769
|
+
<span class='line'>762</span> </span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">e2</span><span class="PUNC">;</span><span class="WHIT">
|
|
770
|
+
<span class='line'>763</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
|
771
|
+
<span class='line'>764</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">3</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
772
|
+
<span class='line'>765</span> </span><span class="WHIT"> </span><span class="NAME">p</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">q</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">a</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">v1</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NAME">b</span><span class="WHIT"> </span><span class="PUNC">*</span><span class="WHIT"> </span><span class="NAME">v2</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
|
773
|
+
<span class='line'>766</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
|
774
|
+
<span class='line'>767</span> </span><span class="WHIT"> </span><span class="NAME">c2d</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">view.project3DTo2D</span><span class="PUNC">(</span><span class="NAME">p</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
775
|
+
<span class='line'>768</span> </span><span class="WHIT"> </span><span class="NAME">this.dataX.push</span><span class="PUNC">(</span><span class="NAME">c2d</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
776
|
+
<span class='line'>769</span> </span><span class="WHIT"> </span><span class="NAME">this.dataY.push</span><span class="PUNC">(</span><span class="NAME">c2d</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
777
|
+
<span class='line'>770</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
|
778
|
+
<span class='line'>771</span> </span><span class="WHIT"> </span><span class="COMM">// Close the curve</span><span class="WHIT">
|
|
779
|
+
<span class='line'>772</span> </span><span class="WHIT"> </span><span class="NAME">this.dataX.push</span><span class="PUNC">(</span><span class="NAME">this.dataX</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
780
|
+
<span class='line'>773</span> </span><span class="WHIT"> </span><span class="NAME">this.dataY.push</span><span class="PUNC">(</span><span class="NAME">this.dataY</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
781
|
+
<span class='line'>774</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
|
782
|
+
<span class='line'>775</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT"> </span><span class="NAME">X</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.dataX</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Y</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="NAME">this.dataY</span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
|
783
|
+
<span class='line'>776</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
|
|
784
|
+
<span class='line'>777</span>
|
|
785
|
+
<span class='line'>778</span> </span><span class="WHIT"> </span><span class="NAME">update</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
786
|
+
<span class='line'>779</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
|
|
787
|
+
<span class='line'>780</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
|
|
788
|
+
<span class='line'>781</span>
|
|
789
|
+
<span class='line'>782</span> </span><span class="WHIT"> </span><span class="NAME">updateRenderer</span><span class="PUNC">:</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
790
|
+
<span class='line'>783</span> </span><span class="WHIT"> </span><span class="NAME">this.needsUpdate</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">;</span><span class="WHIT">
|
|
791
|
+
<span class='line'>784</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="KEYW">this</span><span class="PUNC">;</span><span class="WHIT">
|
|
792
|
+
<span class='line'>785</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
|
793
|
+
<span class='line'>786</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
|
794
|
+
<span class='line'>787</span> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
795
|
+
<span class='line'>788</span>
|
|
796
|
+
<span class='line'>789</span> </span><span class="COMM">// TODO docs</span><span class="WHIT">
|
|
797
|
+
<span class='line'>790</span> </span><span class="NAME">JXG.createPlane3D</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
798
|
+
<span class='line'>791</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">view</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
|
|
799
|
+
<span class='line'>792</span> </span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">,</span><span class="WHIT">
|
|
800
|
+
<span class='line'>793</span> </span><span class="WHIT"> </span><span class="NAME">point</span><span class="PUNC">,</span><span class="WHIT">
|
|
801
|
+
<span class='line'>794</span> </span><span class="WHIT"> </span><span class="NAME">dir1</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
|
|
802
|
+
<span class='line'>795</span> </span><span class="WHIT"> </span><span class="NAME">dir2</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">3</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
|
|
803
|
+
<span class='line'>796</span> </span><span class="WHIT"> </span><span class="NAME">range1</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">4</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">-</span><span class="NAME">Infinity</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Infinity</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
|
|
804
|
+
<span class='line'>797</span> </span><span class="WHIT"> </span><span class="NAME">range2</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">5</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">||</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">-</span><span class="NAME">Infinity</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">Infinity</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
|
|
805
|
+
<span class='line'>798</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">,</span><span class="WHIT">
|
|
806
|
+
<span class='line'>799</span> </span><span class="WHIT"> </span><span class="NAME">grid</span><span class="PUNC">;</span><span class="WHIT">
|
|
807
|
+
<span class='line'>800</span>
|
|
808
|
+
<span class='line'>801</span> </span><span class="WHIT"> </span><span class="NAME">point</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.providePoints3D</span><span class="PUNC">(</span><span class="NAME">view</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'plane3d'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="STRN">'point'</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
|
809
|
+
<span class='line'>802</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">point</span><span class="WHIT"> </span><span class="PUNC">===</span><span class="WHIT"> </span><span class="KEYW">false</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
810
|
+
<span class='line'>803</span> </span><span class="WHIT"> </span><span class="COMM">// TODO Throw error</span><span class="WHIT">
|
|
811
|
+
<span class='line'>804</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
|
812
|
+
<span class='line'>805</span>
|
|
813
|
+
<span class='line'>806</span> </span><span class="WHIT"> </span><span class="NAME">attr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.copyAttributes</span><span class="PUNC">(</span><span class="NAME">attributes</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'plane3d'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
814
|
+
<span class='line'>807</span> </span><span class="WHIT"> </span><span class="NAME">el</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">JXG.Plane3D</span><span class="PUNC">(</span><span class="NAME">view</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">point</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dir1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">range1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dir2</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">range2</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
815
|
+
<span class='line'>808</span> </span><span class="WHIT"> </span><span class="NAME">point.addChild</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
816
|
+
<span class='line'>809</span>
|
|
817
|
+
<span class='line'>810</span> </span><span class="WHIT"> </span><span class="NAME">attr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.setAttr2D</span><span class="PUNC">(</span><span class="NAME">attr</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
818
|
+
<span class='line'>811</span> </span><span class="WHIT"> </span><span class="NAME">el.element2D</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">view.create</span><span class="PUNC">(</span><span class="STRN">'curve'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
819
|
+
<span class='line'>812</span> </span><span class="WHIT"> </span><span class="NAME">el.element2D.view</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">view</span><span class="PUNC">;</span><span class="WHIT">
|
|
820
|
+
<span class='line'>813</span>
|
|
821
|
+
<span class='line'>814</span> </span><span class="WHIT"> </span><span class="COMM">/**
|
|
822
|
+
<span class='line'>815</span> * @class
|
|
823
|
+
<span class='line'>816</span> * @ignore
|
|
824
|
+
<span class='line'>817</span> */</span><span class="WHIT">
|
|
825
|
+
<span class='line'>818</span> </span><span class="WHIT"> </span><span class="NAME">el.element2D.updateDataArray</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
826
|
+
<span class='line'>819</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">ret</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">el.updateDataArray</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
827
|
+
<span class='line'>820</span> </span><span class="WHIT"> </span><span class="NAME">this.dataX</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">ret.X</span><span class="PUNC">;</span><span class="WHIT">
|
|
828
|
+
<span class='line'>821</span> </span><span class="WHIT"> </span><span class="NAME">this.dataY</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">ret.Y</span><span class="PUNC">;</span><span class="WHIT">
|
|
829
|
+
<span class='line'>822</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
|
830
|
+
<span class='line'>823</span> </span><span class="WHIT"> </span><span class="NAME">el.addChild</span><span class="PUNC">(</span><span class="NAME">el.element2D</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
831
|
+
<span class='line'>824</span> </span><span class="WHIT"> </span><span class="NAME">el.inherits.push</span><span class="PUNC">(</span><span class="NAME">el.element2D</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
832
|
+
<span class='line'>825</span> </span><span class="WHIT"> </span><span class="NAME">el.element2D.setParents</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
833
|
+
<span class='line'>826</span>
|
|
834
|
+
<span class='line'>827</span> </span><span class="WHIT"> </span><span class="NAME">attr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.copyAttributes</span><span class="PUNC">(</span><span class="NAME">attributes.mesh3d</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">'mesh3d'</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
835
|
+
<span class='line'>828</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="WHIT">
|
|
836
|
+
<span class='line'>829</span> </span><span class="WHIT"> </span><span class="NAME">Math.abs</span><span class="PUNC">(</span><span class="NAME">el.range1</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">Infinity</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
|
|
837
|
+
<span class='line'>830</span> </span><span class="WHIT"> </span><span class="NAME">Math.abs</span><span class="PUNC">(</span><span class="NAME">el.range1</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">Infinity</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
|
|
838
|
+
<span class='line'>831</span> </span><span class="WHIT"> </span><span class="NAME">Math.abs</span><span class="PUNC">(</span><span class="NAME">el.range2</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">Infinity</span><span class="WHIT"> </span><span class="PUNC">&&</span><span class="WHIT">
|
|
839
|
+
<span class='line'>832</span> </span><span class="WHIT"> </span><span class="NAME">Math.abs</span><span class="PUNC">(</span><span class="NAME">el.range2</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">!==</span><span class="WHIT"> </span><span class="NAME">Infinity</span><span class="WHIT">
|
|
840
|
+
<span class='line'>833</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
841
|
+
<span class='line'>834</span> </span><span class="WHIT"> </span><span class="NAME">grid</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">view.create</span><span class="PUNC">(</span><span class="STRN">'mesh3d'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="WHIT">
|
|
842
|
+
<span class='line'>835</span> </span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
843
|
+
<span class='line'>836</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">point.coords</span><span class="PUNC">;</span><span class="WHIT">
|
|
844
|
+
<span class='line'>837</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="PUNC">,</span><span class="WHIT">
|
|
845
|
+
<span class='line'>838</span> </span><span class="WHIT"> </span><span class="NAME">dir1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">range1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">dir2</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">range2</span><span class="WHIT">
|
|
846
|
+
<span class='line'>839</span> </span><span class="WHIT"> </span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="WHIT">
|
|
847
|
+
<span class='line'>840</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
848
|
+
<span class='line'>841</span> </span><span class="WHIT"> </span><span class="NAME">el.grid</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">grid</span><span class="PUNC">;</span><span class="WHIT">
|
|
849
|
+
<span class='line'>842</span> </span><span class="WHIT"> </span><span class="NAME">el.addChild</span><span class="PUNC">(</span><span class="NAME">grid</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
850
|
+
<span class='line'>843</span> </span><span class="WHIT"> </span><span class="NAME">el.inherits.push</span><span class="PUNC">(</span><span class="NAME">grid</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
851
|
+
<span class='line'>844</span> </span><span class="WHIT"> </span><span class="NAME">grid.setParents</span><span class="PUNC">(</span><span class="NAME">el</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
852
|
+
<span class='line'>845</span> </span><span class="WHIT"> </span><span class="NAME">el.grid.view</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">view</span><span class="PUNC">;</span><span class="WHIT">
|
|
853
853
|
<span class='line'>846</span>
|
|
854
|
-
<span class='line'>847</span> </span><span class="
|
|
854
|
+
<span class='line'>847</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
|
855
855
|
<span class='line'>848</span>
|
|
856
|
-
<span class='line'>849</span> </span><span class="
|
|
857
|
-
<span class='line'>850</span>
|
|
858
|
-
<span class='line'>851</span>
|
|
859
|
-
<span class='line'>852</span>
|
|
860
|
-
<span class='line'>853</span>
|
|
861
|
-
<span class='line'>854</span>
|
|
862
|
-
<span class='line'>855</span>
|
|
863
|
-
<span class='line'>856</span>
|
|
864
|
-
<span class='line'>857</span>
|
|
865
|
-
<span class='line'>858</span>
|
|
866
|
-
<span class='line'>859</span>
|
|
867
|
-
<span class='line'>860</span> * @
|
|
868
|
-
<span class='line'>861</span> *
|
|
869
|
-
<span class='line'>862</span> *
|
|
870
|
-
<span class='line'>863</span> *
|
|
871
|
-
<span class='line'>864</span> *
|
|
872
|
-
<span class='line'>865</span> *
|
|
873
|
-
<span class='line'>866</span> *
|
|
874
|
-
<span class='line'>867</span> *
|
|
875
|
-
<span class='line'>868</span> *
|
|
876
|
-
<span class='line'>869</span> *
|
|
877
|
-
<span class='line'>870</span> *
|
|
878
|
-
<span class='line'>871</span> *
|
|
879
|
-
<span class='line'>872</span> * var
|
|
880
|
-
<span class='line'>873</span> *
|
|
881
|
-
<span class='line'>874</span> *
|
|
882
|
-
<span class='line'>875</span> *
|
|
883
|
-
<span class='line'>876</span> *
|
|
884
|
-
<span class='line'>877</span> *
|
|
885
|
-
<span class='line'>878</span> *
|
|
886
|
-
<span class='line'>879</span> *
|
|
887
|
-
<span class='line'>880</span> *
|
|
888
|
-
<span class='line'>881</span> *
|
|
889
|
-
<span class='line'>882</span> *
|
|
890
|
-
<span class='line'>883</span> *
|
|
891
|
-
<span class='line'>884</span> *
|
|
892
|
-
<span class='line'>885</span> *
|
|
893
|
-
<span class='line'>886</span> *
|
|
894
|
-
<span class='line'>887</span> *
|
|
895
|
-
<span class='line'>888</span> *
|
|
896
|
-
<span class='line'>889</span> *
|
|
897
|
-
<span class='line'>890</span> *
|
|
898
|
-
<span class='line'>891</span> *
|
|
899
|
-
<span class='line'>892</span> *
|
|
900
|
-
<span class='line'>893</span> *
|
|
901
|
-
<span class='line'>894</span> *
|
|
902
|
-
<span class='line'>895</span> *
|
|
903
|
-
<span class='line'>896</span> *
|
|
904
|
-
<span class='line'>897</span> *
|
|
905
|
-
<span class='line'>898</span> *
|
|
906
|
-
<span class='line'>899</span> *
|
|
907
|
-
<span class='line'>900</span> *
|
|
908
|
-
<span class='line'>901</span> *
|
|
909
|
-
<span class='line'>902</span> *
|
|
910
|
-
<span class='line'>903</span> *
|
|
911
|
-
<span class='line'>904</span> *
|
|
912
|
-
<span class='line'>905</span> *
|
|
913
|
-
<span class='line'>906</span> *
|
|
914
|
-
<span class='line'>907</span> *
|
|
915
|
-
<span class='line'>908</span> *
|
|
916
|
-
<span class='line'>909</span> *
|
|
917
|
-
<span class='line'>910</span> *
|
|
918
|
-
<span class='line'>911</span> *
|
|
919
|
-
<span class='line'>912</span> *
|
|
920
|
-
<span class='line'>913</span> *
|
|
921
|
-
<span class='line'>914</span> *
|
|
922
|
-
<span class='line'>915</span> *
|
|
923
|
-
<span class='line'>916</span> *
|
|
924
|
-
<span class='line'>917</span> *
|
|
925
|
-
<span class='line'>918</span> *
|
|
926
|
-
<span class='line'>919</span> *
|
|
927
|
-
<span class='line'>920</span> *
|
|
928
|
-
<span class='line'>921</span>
|
|
929
|
-
<span class='line'>922</span>
|
|
930
|
-
<span class='line'>923</span>
|
|
931
|
-
<span class='line'>924</span>
|
|
932
|
-
<span class='line'>925</span>
|
|
933
|
-
<span class='line'>926</span>
|
|
934
|
-
<span class='line'>927</span>
|
|
935
|
-
<span class='line'>928</span>
|
|
936
|
-
<span class='line'>929</span>
|
|
937
|
-
<span class='line'>930</span>
|
|
938
|
-
<span class='line'>931</span>
|
|
939
|
-
<span class='line'>932</span> </span><span class="
|
|
940
|
-
<span class='line'>933</span> </span><span class="WHIT"> </span><span class="PUNC">
|
|
941
|
-
<span class='line'>934</span> </span><span class="WHIT">
|
|
942
|
-
<span class='line'>935</span>
|
|
943
|
-
<span class='line'>936</span> </span><span class="WHIT">
|
|
944
|
-
<span class='line'>937</span> </span><span class="WHIT"> </span><span class="NAME">
|
|
945
|
-
<span class='line'>938</span> </span><span class="WHIT"> </span><span class="NAME">
|
|
946
|
-
<span class='line'>939</span>
|
|
947
|
-
<span class='line'>940</span> </span><span class="WHIT">
|
|
948
|
-
<span class='line'>941</span> </span><span class="WHIT">
|
|
949
|
-
<span class='line'>942</span> </span><span class="WHIT">
|
|
950
|
-
<span class='line'>943</span> </span><span class="WHIT">
|
|
951
|
-
<span class='line'>944</span> </span><span class="WHIT">
|
|
952
|
-
<span class='line'>945</span>
|
|
953
|
-
<span class='line'>946</span> </span><span class="WHIT">
|
|
954
|
-
<span class='line'>947</span> </span><span class="WHIT">
|
|
955
|
-
<span class='line'>948</span>
|
|
956
|
-
<span class='line'>949</span> </span><span class="WHIT"> </span><span class="
|
|
957
|
-
<span class='line'>950</span> </span><span class="WHIT">
|
|
958
|
-
<span class='line'>951</span> </span><span class="WHIT">
|
|
959
|
-
<span class='line'>952</span>
|
|
960
|
-
<span class='line'>953</span> </span><span class="WHIT">
|
|
961
|
-
<span class='line'>954</span> </span><span class="PUNC">
|
|
962
|
-
<span class='line'>955</span>
|
|
963
|
-
<span class='line'>956</span> </span><span class="
|
|
964
|
-
<span class='line'>957</span> </span
|
|
856
|
+
<span class='line'>849</span> </span><span class="WHIT"> </span><span class="NAME">el.element2D.prepareUpdate</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">update</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
857
|
+
<span class='line'>850</span> </span><span class="WHIT"> </span><span class="KEYW">if</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="PUNC">!</span><span class="NAME">board.isSuspendedUpdate</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
858
|
+
<span class='line'>851</span> </span><span class="WHIT"> </span><span class="NAME">el.element2D.updateVisibility</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">.</span><span class="NAME">updateRenderer</span><span class="PUNC">(</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
859
|
+
<span class='line'>852</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
|
860
|
+
<span class='line'>853</span>
|
|
861
|
+
<span class='line'>854</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">el</span><span class="PUNC">;</span><span class="WHIT">
|
|
862
|
+
<span class='line'>855</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
|
863
|
+
<span class='line'>856</span>
|
|
864
|
+
<span class='line'>857</span> </span><span class="NAME">JXG.registerElement</span><span class="PUNC">(</span><span class="STRN">'plane3d'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">JXG.createPlane3D</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
865
|
+
<span class='line'>858</span>
|
|
866
|
+
<span class='line'>859</span> </span><span class="COMM">/**
|
|
867
|
+
<span class='line'>860</span> * @class An intersection line is a line which lives on two JSXGraph elements.
|
|
868
|
+
<span class='line'>861</span> * The following element types can be (mutually) intersected: plane.
|
|
869
|
+
<span class='line'>862</span> *
|
|
870
|
+
<span class='line'>863</span> * @pseudo
|
|
871
|
+
<span class='line'>864</span> * @name IntersectionLine3D
|
|
872
|
+
<span class='line'>865</span> * @augments JXG.Line3D
|
|
873
|
+
<span class='line'>866</span> * @constructor
|
|
874
|
+
<span class='line'>867</span> * @type JXG.Line3D
|
|
875
|
+
<span class='line'>868</span> * @throws {Exception} If the element cannot be constructed with the given parent objects an exception is thrown.
|
|
876
|
+
<span class='line'>869</span> * @param {JXG.Plane3D_JXG.Plane3D} el1,el2 The result will be the intersection of el1 and el2.
|
|
877
|
+
<span class='line'>870</span> * @example
|
|
878
|
+
<span class='line'>871</span> * // Create the intersection line of two planes
|
|
879
|
+
<span class='line'>872</span> * var view = board.create(
|
|
880
|
+
<span class='line'>873</span> * 'view3d',
|
|
881
|
+
<span class='line'>874</span> * [[-6, -3], [8, 8],
|
|
882
|
+
<span class='line'>875</span> * [[0, 3], [0, 3], [0, 3]]],
|
|
883
|
+
<span class='line'>876</span> * {
|
|
884
|
+
<span class='line'>877</span> * xPlaneRear: {fillOpacity: 0.2, gradient: null},
|
|
885
|
+
<span class='line'>878</span> * yPlaneRear: {fillOpacity: 0.2, gradient: null},
|
|
886
|
+
<span class='line'>879</span> * zPlaneRear: {fillOpacity: 0.2, gradient: null}
|
|
887
|
+
<span class='line'>880</span> * }
|
|
888
|
+
<span class='line'>881</span> * );
|
|
889
|
+
<span class='line'>882</span> * var a = view.create('point3d', [0, 0, 0]);
|
|
890
|
+
<span class='line'>883</span> *
|
|
891
|
+
<span class='line'>884</span> * var p1 = view.create(
|
|
892
|
+
<span class='line'>885</span> * 'plane3d',
|
|
893
|
+
<span class='line'>886</span> * [a, [1, 0, 0], [0, 1, 0]],
|
|
894
|
+
<span class='line'>887</span> * {fillColor: '#00ff80'}
|
|
895
|
+
<span class='line'>888</span> * );
|
|
896
|
+
<span class='line'>889</span> * var p2 = view.create(
|
|
897
|
+
<span class='line'>890</span> * 'plane3d',
|
|
898
|
+
<span class='line'>891</span> * [a, [-2, 1, 1], [1, -2, 1]],
|
|
899
|
+
<span class='line'>892</span> * {fillColor: '#ff0000'}
|
|
900
|
+
<span class='line'>893</span> * );
|
|
901
|
+
<span class='line'>894</span> *
|
|
902
|
+
<span class='line'>895</span> * var i = view.create('intersectionline3d', [p1, p2]);
|
|
903
|
+
<span class='line'>896</span> *
|
|
904
|
+
<span class='line'>897</span> * </pre><div id="JXGdb931076-b29a-4eff-b97e-4251aaf24943" class="jxgbox" style="width: 300px; height: 300px;"></div>
|
|
905
|
+
<span class='line'>898</span> * <script type="text/javascript">
|
|
906
|
+
<span class='line'>899</span> * (function() {
|
|
907
|
+
<span class='line'>900</span> * var board = JXG.JSXGraph.initBoard('JXGdb931076-b29a-4eff-b97e-4251aaf24943',
|
|
908
|
+
<span class='line'>901</span> * {boundingbox: [-8, 8, 8,-8], axis: false, pan: {enabled: false}, showcopyright: false, shownavigation: false});
|
|
909
|
+
<span class='line'>902</span> * var view = board.create(
|
|
910
|
+
<span class='line'>903</span> * 'view3d',
|
|
911
|
+
<span class='line'>904</span> * [[-6, -3], [8, 8],
|
|
912
|
+
<span class='line'>905</span> * [[0, 3], [0, 3], [0, 3]]],
|
|
913
|
+
<span class='line'>906</span> * {
|
|
914
|
+
<span class='line'>907</span> * xPlaneRear: {fillOpacity: 0.2, gradient: null},
|
|
915
|
+
<span class='line'>908</span> * yPlaneRear: {fillOpacity: 0.2, gradient: null},
|
|
916
|
+
<span class='line'>909</span> * zPlaneRear: {fillOpacity: 0.2, gradient: null}
|
|
917
|
+
<span class='line'>910</span> * }
|
|
918
|
+
<span class='line'>911</span> * );
|
|
919
|
+
<span class='line'>912</span> * var a = view.create('point3d', [0, 0, 0]);
|
|
920
|
+
<span class='line'>913</span> *
|
|
921
|
+
<span class='line'>914</span> * var p1 = view.create(
|
|
922
|
+
<span class='line'>915</span> * 'plane3d',
|
|
923
|
+
<span class='line'>916</span> * [a, [1, 0, 0], [0, 1, 0]],
|
|
924
|
+
<span class='line'>917</span> * {fillColor: '#00ff80'}
|
|
925
|
+
<span class='line'>918</span> * );
|
|
926
|
+
<span class='line'>919</span> * var p2 = view.create(
|
|
927
|
+
<span class='line'>920</span> * 'plane3d',
|
|
928
|
+
<span class='line'>921</span> * [a, [-2, 1, 1], [1, -2, 1]],
|
|
929
|
+
<span class='line'>922</span> * {fillColor: '#ff0000'}
|
|
930
|
+
<span class='line'>923</span> * );
|
|
931
|
+
<span class='line'>924</span> *
|
|
932
|
+
<span class='line'>925</span> * var i = view.create('intersectionline3d', [p1, p2]);
|
|
933
|
+
<span class='line'>926</span> *
|
|
934
|
+
<span class='line'>927</span> * })();
|
|
935
|
+
<span class='line'>928</span> *
|
|
936
|
+
<span class='line'>929</span> * </script><pre>
|
|
937
|
+
<span class='line'>930</span> *
|
|
938
|
+
<span class='line'>931</span> */</span><span class="WHIT">
|
|
939
|
+
<span class='line'>932</span> </span><span class="NAME">JXG.createIntersectionLine3D</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="KEYW">function</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">board</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attributes</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
940
|
+
<span class='line'>933</span> </span><span class="WHIT"> </span><span class="KEYW">var</span><span class="WHIT"> </span><span class="NAME">view</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
|
|
941
|
+
<span class='line'>934</span> </span><span class="WHIT"> </span><span class="NAME">el1</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
|
|
942
|
+
<span class='line'>935</span> </span><span class="WHIT"> </span><span class="NAME">el2</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">2</span><span class="PUNC">]</span><span class="PUNC">,</span><span class="WHIT">
|
|
943
|
+
<span class='line'>936</span> </span><span class="WHIT"> </span><span class="NAME">ixnLine</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">func</span><span class="PUNC">,</span><span class="WHIT">
|
|
944
|
+
<span class='line'>937</span> </span><span class="WHIT"> </span><span class="NAME">attr</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Type.copyAttributes</span><span class="PUNC">(</span><span class="NAME">attributes</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">board.options</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="STRN">"intersectionline3d"</span><span class="PUNC">)</span><span class="PUNC">,</span><span class="WHIT">
|
|
945
|
+
<span class='line'>938</span> </span><span class="WHIT"> </span><span class="NAME">pts</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="PUNC">[</span><span class="PUNC">]</span><span class="PUNC">;</span><span class="WHIT">
|
|
946
|
+
<span class='line'>939</span>
|
|
947
|
+
<span class='line'>940</span> </span><span class="WHIT"> </span><span class="KEYW">for</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NUMB">0</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC"><</span><span class="WHIT"> </span><span class="NUMB">2</span><span class="PUNC">;</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">++</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
948
|
+
<span class='line'>941</span> </span><span class="WHIT"> </span><span class="NAME">func</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Geometry.intersectionFunction3D</span><span class="PUNC">(</span><span class="NAME">view</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el1</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el2</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">i</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
949
|
+
<span class='line'>942</span> </span><span class="WHIT"> </span><span class="NAME">pts</span><span class="PUNC">[</span><span class="NAME">i</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">view.create</span><span class="PUNC">(</span><span class="STRN">'point3d'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">func</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">[</span><span class="STRN">'point'</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">i</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT"> </span><span class="NUMB">1</span><span class="PUNC">)</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
950
|
+
<span class='line'>943</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
|
951
|
+
<span class='line'>944</span> </span><span class="WHIT"> </span><span class="NAME">ixnLine</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">view.create</span><span class="PUNC">(</span><span class="STRN">'line3d'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">pts</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">attr</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
952
|
+
<span class='line'>945</span>
|
|
953
|
+
<span class='line'>946</span> </span><span class="WHIT"> </span><span class="KEYW">try</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
954
|
+
<span class='line'>947</span> </span><span class="WHIT"> </span><span class="NAME">el1.addChild</span><span class="PUNC">(</span><span class="NAME">ixnLine</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
955
|
+
<span class='line'>948</span> </span><span class="WHIT"> </span><span class="NAME">el2.addChild</span><span class="PUNC">(</span><span class="NAME">ixnLine</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
956
|
+
<span class='line'>949</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT"> </span><span class="KEYW">catch</span><span class="WHIT"> </span><span class="PUNC">(</span><span class="NAME">_e</span><span class="PUNC">)</span><span class="WHIT"> </span><span class="PUNC">{</span><span class="WHIT">
|
|
957
|
+
<span class='line'>950</span> </span><span class="WHIT"> </span><span class="KEYW">throw</span><span class="WHIT"> </span><span class="KEYW">new</span><span class="WHIT"> </span><span class="NAME">Error</span><span class="PUNC">(</span><span class="WHIT">
|
|
958
|
+
<span class='line'>951</span> </span><span class="WHIT"> </span><span class="STRN">"JSXGraph: Can't create 'intersection' with parent types '"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
|
|
959
|
+
<span class='line'>952</span> </span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">0</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
|
|
960
|
+
<span class='line'>953</span> </span><span class="WHIT"> </span><span class="STRN">"' and '"</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
|
|
961
|
+
<span class='line'>954</span> </span><span class="WHIT"> </span><span class="KEYW">typeof</span><span class="WHIT"> </span><span class="NAME">parents</span><span class="PUNC">[</span><span class="NUMB">1</span><span class="PUNC">]</span><span class="WHIT"> </span><span class="PUNC">+</span><span class="WHIT">
|
|
962
|
+
<span class='line'>955</span> </span><span class="WHIT"> </span><span class="STRN">"'."</span><span class="WHIT">
|
|
963
|
+
<span class='line'>956</span> </span><span class="WHIT"> </span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
964
|
+
<span class='line'>957</span> </span><span class="WHIT"> </span><span class="PUNC">}</span><span class="WHIT">
|
|
965
|
+
<span class='line'>958</span>
|
|
966
|
+
<span class='line'>959</span> </span><span class="WHIT"> </span><span class="NAME">ixnLine.type</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="NAME">Const.OBJECT_TYPE_INTERSECTION_LINE3D</span><span class="PUNC">;</span><span class="WHIT">
|
|
967
|
+
<span class='line'>960</span> </span><span class="WHIT"> </span><span class="NAME">ixnLine.elType</span><span class="WHIT"> </span><span class="PUNC">=</span><span class="WHIT"> </span><span class="STRN">'intersectionline3d'</span><span class="PUNC">;</span><span class="WHIT">
|
|
968
|
+
<span class='line'>961</span> </span><span class="WHIT"> </span><span class="NAME">ixnLine.setParents</span><span class="PUNC">(</span><span class="PUNC">[</span><span class="NAME">el1.id</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">el2.id</span><span class="PUNC">]</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
969
|
+
<span class='line'>962</span>
|
|
970
|
+
<span class='line'>963</span> </span><span class="WHIT"> </span><span class="KEYW">return</span><span class="WHIT"> </span><span class="NAME">ixnLine</span><span class="PUNC">;</span><span class="WHIT">
|
|
971
|
+
<span class='line'>964</span> </span><span class="PUNC">}</span><span class="PUNC">;</span><span class="WHIT">
|
|
972
|
+
<span class='line'>965</span>
|
|
973
|
+
<span class='line'>966</span> </span><span class="NAME">JXG.registerElement</span><span class="PUNC">(</span><span class="STRN">'intersectionline3d'</span><span class="PUNC">,</span><span class="WHIT"> </span><span class="NAME">JXG.createIntersectionLine3D</span><span class="PUNC">)</span><span class="PUNC">;</span><span class="WHIT">
|
|
974
|
+
<span class='line'>967</span> </span></pre></body></html>
|