[Bf-extensions-cvs] [c6007c26] master: Curve Tools 2: move to release T65825
Spivak Vladimir cwolf3d
noreply at git.blender.org
Fri Sep 13 15:04:05 CEST 2019
Commit: c6007c26d389da1738173fd52420c0747d281f2b
Author: Spivak Vladimir (cwolf3d)
Date: Fri Sep 13 16:03:35 2019 +0300
Branches: master
https://developer.blender.org/rBACc6007c26d389da1738173fd52420c0747d281f2b
Curve Tools 2: move to release T65825
===================================================================
D curve_tools/CurveIntersections.py
D curve_tools/Curves.py
D curve_tools/Math.py
D curve_tools/Operators.py
D curve_tools/PathFinder.py
D curve_tools/Properties.py
D curve_tools/ShowCurveResolution.py
D curve_tools/Surfaces.py
D curve_tools/Util.py
D curve_tools/__init__.py
D curve_tools/auto_loft.py
D curve_tools/cad.py
D curve_tools/curve_outline.py
D curve_tools/curve_remove_doubles.py
D curve_tools/exports.py
D curve_tools/internal.py
D curve_tools/toolpath.py
===================================================================
diff --git a/curve_tools/CurveIntersections.py b/curve_tools/CurveIntersections.py
deleted file mode 100644
index 06254701..00000000
--- a/curve_tools/CurveIntersections.py
+++ /dev/null
@@ -1,830 +0,0 @@
-import bpy
-from . import Math
-from . import Curves
-from . import Util
-
-from mathutils import Vector
-
-algoPOV = None
-algoDIR = None
-
-
-class BezierSegmentIntersectionPoint:
- def __init__(self, segment, parameter, intersectionPoint):
- self.segment = segment
- self.parameter = parameter
- self.intersectionPoint = intersectionPoint
-
-
-class BezierSegmentsIntersector:
- def __init__(self, segment1, segment2, worldMatrix1, worldMatrix2):
- self.segment1 = segment1
- self.segment2 = segment2
- self.worldMatrix1 = worldMatrix1
- self.worldMatrix2 = worldMatrix2
-
- def CalcFirstIntersection(self, nrSamples1, nrSamples2):
- algorithm = bpy.context.scene.curvetools.IntersectCurvesAlgorithm
-
- if algorithm == '3D':
- return self.CalcFirstRealIntersection3D(nrSamples1, nrSamples2)
-
- if algorithm == 'From View':
- global algoDIR
- if algoDIR is not None:
- return self.CalcFirstRealIntersectionFromViewDIR(nrSamples1, nrSamples2)
-
- global algoPOV
- if algoPOV is not None:
- return self.CalcFirstRealIntersectionFromViewPOV(nrSamples1, nrSamples2)
-
- return None
-
- def CalcFirstIntersection3D(self, nrSamples1, nrSamples2):
- fltNrSamples1 = float(nrSamples1)
- fltNrSamples2 = float(nrSamples2)
-
- limitDistance = bpy.context.scene.curvetools.LimitDistance
-
- for iSample1 in range(nrSamples1):
- segPar10 = float(iSample1) / fltNrSamples1
- segPar11 = float(iSample1 + 1) / fltNrSamples1
- P0 = self.worldMatrix1 @ self.segment1.CalcPoint(parameter=segPar10)
- P1 = self.worldMatrix1 @ self.segment1.CalcPoint(parameter=segPar11)
-
- for iSample2 in range(nrSamples2):
- segPar20 = float(iSample2) / fltNrSamples2
- segPar21 = float(iSample2 + 1) / fltNrSamples2
- Q0 = self.worldMatrix2 @ self.segment2.CalcPoint(parameter=segPar20)
- Q1 = self.worldMatrix2 @ self.segment2.CalcPoint(parameter=segPar21)
-
- intersectionPointData = Math.CalcIntersectionPointLineSegments(P0, P1, Q0, Q1, limitDistance)
- if intersectionPointData is None:
- continue
-
- intersectionSegment1Parameter = segPar10 + (intersectionPointData[0] / fltNrSamples1)
- intersectionPoint1 = BezierSegmentIntersectionPoint(self.segment1,
- intersectionSegment1Parameter,
- intersectionPointData[2])
-
- intersectionSegment2Parameter = segPar20 + (intersectionPointData[1] / fltNrSamples2)
- intersectionPoint2 = BezierSegmentIntersectionPoint(self.segment2,
- intersectionSegment2Parameter,
- intersectionPointData[3])
-
- return [intersectionPoint1, intersectionPoint2]
-
- return None
-
- def CalcFirstRealIntersection3D(self, nrSamples1, nrSamples2):
- fltNrSamples1 = float(nrSamples1)
- fltNrSamples2 = float(nrSamples2)
-
- limitDistance = bpy.context.scene.curvetools.LimitDistance
-
- for iSample1 in range(nrSamples1):
- segPar10 = float(iSample1) / fltNrSamples1
- segPar11 = float(iSample1 + 1) / fltNrSamples1
- P0 = self.worldMatrix1 @ self.segment1.CalcPoint(parameter=segPar10)
- P1 = self.worldMatrix1 @ self.segment1.CalcPoint(parameter=segPar11)
-
- for iSample2 in range(nrSamples2):
- segPar20 = float(iSample2) / fltNrSamples2
- segPar21 = float(iSample2 + 1) / fltNrSamples2
- Q0 = self.worldMatrix2 @ self.segment2.CalcPoint(parameter=segPar20)
- Q1 = self.worldMatrix2 @ self.segment2.CalcPoint(parameter=segPar21)
-
- intersectionPointData = Math.CalcIntersectionPointLineSegments(P0, P1, Q0, Q1, limitDistance)
- if intersectionPointData is None:
- continue
-
- # intersection point can't be an existing point
- intersectionSegment1Parameter = segPar10 + (intersectionPointData[0] / (fltNrSamples1))
- worldPoint1 = self.worldMatrix1 @ self.segment1.CalcPoint(parameter=intersectionSegment1Parameter)
- if (Math.IsSamePoint(P0, worldPoint1, limitDistance)) or \
- (Math.IsSamePoint(P1, worldPoint1, limitDistance)):
-
- intersectionPoint1 = None
- else:
- intersectionPoint1 = BezierSegmentIntersectionPoint(self.segment1,
- intersectionSegment1Parameter,
- worldPoint1)
-
- intersectionSegment2Parameter = segPar20 + (intersectionPointData[1] / (fltNrSamples2))
- worldPoint2 = self.worldMatrix2 @ self.segment2.CalcPoint(parameter=intersectionSegment2Parameter)
- if (Math.IsSamePoint(Q0, worldPoint2, limitDistance)) or \
- (Math.IsSamePoint(Q1, worldPoint2, limitDistance)):
-
- intersectionPoint2 = None
- else:
- intersectionPoint2 = BezierSegmentIntersectionPoint(self.segment2,
- intersectionSegment2Parameter,
- worldPoint2)
-
- return [intersectionPoint1, intersectionPoint2]
-
- return None
-
- def CalcFirstIntersectionFromViewDIR(self, nrSamples1, nrSamples2):
- global algoDIR
-
- fltNrSamples1 = float(nrSamples1)
- fltNrSamples2 = float(nrSamples2)
-
- for iSample1 in range(nrSamples1):
- segPar10 = float(iSample1) / fltNrSamples1
- segPar11 = float(iSample1 + 1) / fltNrSamples1
- P0 = self.worldMatrix1 @ self.segment1.CalcPoint(parameter=segPar10)
- P1 = self.worldMatrix1 @ self.segment1.CalcPoint(parameter=segPar11)
-
- for iSample2 in range(nrSamples2):
- segPar20 = float(iSample2) / fltNrSamples2
- segPar21 = float(iSample2 + 1) / fltNrSamples2
- Q0 = self.worldMatrix2 @ self.segment2.CalcPoint(parameter=segPar20)
- Q1 = self.worldMatrix2 @ self.segment2.CalcPoint(parameter=segPar21)
-
- intersectionPointData = Math.CalcIntersectionPointsLineSegmentsDIR(P0, P1, Q0, Q1, algoDIR)
- if intersectionPointData is None:
- continue
-
- intersectionSegment1Parameter = segPar10 + (intersectionPointData[0] / fltNrSamples1)
- worldPoint1 = self.worldMatrix1 @ self.segment1.CalcPoint(parameter=intersectionSegment1Parameter)
- intersectionPoint1 = BezierSegmentIntersectionPoint(self.segment1,
- intersectionSegment1Parameter,
- worldPoint1)
-
- intersectionSegment2Parameter = segPar20 + (intersectionPointData[1] / fltNrSamples2)
- worldPoint2 = self.worldMatrix2 @ self.segment2.CalcPoint(parameter=intersectionSegment2Parameter)
- intersectionPoint2 = BezierSegmentIntersectionPoint(self.segment2,
- intersectionSegment2Parameter,
- worldPoint2)
-
- return [intersectionPoint1, intersectionPoint2]
-
- return None
-
- def CalcFirstRealIntersectionFromViewDIR(self, nrSamples1, nrSamples2):
- global algoDIR
-
- fltNrSamples1 = float(nrSamples1)
- fltNrSamples2 = float(nrSamples2)
-
- limitDistance = bpy.context.scene.curvetools.LimitDistance
-
- for iSample1 in range(nrSamples1):
- segPar10 = float(iSample1) / fltNrSamples1
- segPar11 = float(iSample1 + 1) / fltNrSamples1
- P0 = self.worldMatrix1 @ self.segment1.CalcPoint(parameter=segPar10)
- P1 = self.worldMatrix1 @ self.segment1.CalcPoint(parameter=segPar11)
-
- for iSample2 in range(nrSamples2):
- segPar20 = float(iSample2) / fltNrSamples2
- segPar21 = float(iSample2 + 1) / fltNrSamples2
- Q0 = self.worldMatrix2 @ self.segment2.CalcPoint(parameter=segPar20)
- Q1 = self.worldMatrix2 @ self.segment2.CalcPoint(parameter=segPar21)
-
- intersectionPointData = Math.CalcIntersectionPointsLineSegmentsDIR(P0, P1, Q0, Q1, algoDIR)
- if intersectionPointData is None:
- continue
-
- # intersection point can't be an existing point
- intersectionSegment1Parameter = segPar10 + (intersectionPointData[0] / (fltNrSamples1))
- worldPoint1 = self.worldMatrix1 @ self.segment1.CalcPoint(parameter=intersectionSegment1Parameter)
- if (Math.IsSamePoint(P0, worldPoint1, limitDistance)) or \
- (Math.IsSamePoint(P1, worldPoint1, limitDistance)):
-
- intersectionPoint1 = None
- else:
- intersectionPoint1 = BezierSegmentIntersectionPoint(self.segment1,
- intersectionSegment1Parameter,
- worldPoint1)
-
- intersectionSegment2Parameter = segPar20 + (intersectionPointData[1] / (fltNrSamples2))
-
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-extensions-cvs
mailing list