AutoOpenLine3D Module
When Euclid is opened this module will be auto-opened. It only contains extension members for type Line3D.
Type extensions
Type extension |
Description
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Full Usage:
this.Extend
Parameters:
float
distAtEnd : float
Returns: Line3D
Modifiers: inline |
|
|
|
|
|
Full Usage:
this.ExtendRel
Parameters:
float
relAtEnd : float
Returns: Line3D
Modifiers: inline |
|
|
|
|
|
Full Usage:
this.IsCoincidentTo
Parameters:
Line3D
distanceTolerance : float
minCosine : float<MeasureProduct<cosine, MeasureOne>>
Returns: bool
Modifiers: inline |
Checks if two 3D lines are coincident within the distance tolerance. 1e-6 by default. This means that lines are parallel within the angle tolerance. and the distance of second start to the first line is less than the distance tolerance. Also returns false on lines shorter than UtilEuclid.zeroLengthTolerance (1e-12). The default angle tolerance is 0.25 degrees. This tolerance can be customized by an optional minium cosine value. See Euclid.Cosine module.
Extended Type:
|
Full Usage:
this.IsHorizontal
Parameters:
unit
Returns: bool
Modifiers: inline |
Checks if 3D line is horizontal. The absolute deviation tolerance along Z axis is 1e-9. Fails on lines shorter than 1e-6.
Extended Type:
|
Full Usage:
this.IsHorizontal
Returns: bool
Modifiers: inline |
Checks if 3D line is horizontal. The absolute deviation tolerance along Z axis is 1e-9. Fails on lines shorter than 1e-6.
Extended Type:
|
Full Usage:
this.IsParallelAndOrientedTo
Parameters:
Line3D
minCosine : float<MeasureProduct<cosine, MeasureOne>>
Returns: bool
Modifiers: inline |
Checks if two 3D lines are parallel. Takes the line orientation into account too. The default angle tolerance is 0.25 degrees. This tolerance can be customized by an optional minium cosine value. See Euclid.Cosine module. Fails on lines shorter than UtilEuclid.zeroLengthTolerance (1e-12).
Extended Type:
|
Full Usage:
this.IsParallelAndOrientedTo
Parameters:
Vec
minCosine : float<MeasureProduct<cosine, MeasureOne>>
Returns: bool
Modifiers: inline |
Checks if a 3D lines is parallel to a 3D vector. Takes the line orientation into account too. The default angle tolerance is 0.25 degrees. This tolerance can be customized by an optional minium cosine value. See Euclid.Cosine module. Fails on lines or vectors shorter than UtilEuclid.zeroLengthTolerance (1e-12).
Extended Type:
|
Full Usage:
this.IsParallelAndOrientedTo
Parameters:
UnitVec
minCosine : float<MeasureProduct<cosine, MeasureOne>>
Returns: bool
Modifiers: inline |
Checks if a 3D lines is parallel to a 3D unit-vector. Takes the line orientation into account too. The default angle tolerance is 0.25 degrees. This tolerance can be customized by an optional minium cosine value. See Euclid.Cosine module. Fails on lines shorter than UtilEuclid.zeroLengthTolerance (1e-12).
Extended Type:
|
Full Usage:
this.IsParallelTo
Parameters:
Line3D
minCosine : float<MeasureProduct<cosine, MeasureOne>>
Returns: bool
Modifiers: inline |
Checks if two 3D lines are parallel. Ignores the line orientation. The default angle tolerance is 0.25 degrees. This tolerance can be customized by an optional minium cosine value. See Euclid.Cosine module. Fails on lines shorter than UtilEuclid.zeroLengthTolerance (1e-12).
Extended Type:
|
Full Usage:
this.IsParallelTo
Parameters:
Vec
minCosine : float<MeasureProduct<cosine, MeasureOne>>
Returns: bool
Modifiers: inline |
Checks if a 3D lines is parallel to a 3D vector. Ignores the line orientation. The default angle tolerance is 0.25 degrees. This tolerance can be customized by an optional minium cosine value. See Euclid.Cosine module. Fails on lines or vectors shorter than UtilEuclid.zeroLengthTolerance (1e-12).
Extended Type:
|
Full Usage:
this.IsParallelTo
Parameters:
UnitVec
minCosine : float<MeasureProduct<cosine, MeasureOne>>
Returns: bool
Modifiers: inline |
Checks if a 3D lines is parallel to a 3D unit-vector. Ignores the line orientation. The default angle tolerance is 0.25 degrees. This tolerance can be customized by an optional minium cosine value. See Euclid.Cosine module. Fails on lines shorter than UtilEuclid.zeroLengthTolerance (1e-12).
Extended Type:
|
Full Usage:
this.IsPerpendicularTo
Parameters:
Line3D
maxCosine : float<MeasureProduct<cosine, MeasureOne>>
Returns: bool
Modifiers: inline |
Checks if two 3D lines are perpendicular to each other. The default angle tolerance is 89.75 to 90.25 degrees. This tolerance can be customized by an optional minium cosine value. The default cosine is 0.0043633 ( = 89.75 deg) See Euclid.Cosine module. Fails on lines shorter than UtilEuclid.zeroLengthTolerance (1e-12).
Extended Type:
|
Full Usage:
this.IsPerpendicularTo
Parameters:
Vec
maxCosine : float<MeasureProduct<cosine, MeasureOne>>
Returns: bool
Modifiers: inline |
Checks if a 3D lines is perpendicular to a 3D vector. The default angle tolerance is 89.75 to 90.25 degrees. This tolerance can be customized by an optional minium cosine value. The default cosine is 0.0043633 ( = 89.75 deg) See Euclid.Cosine module. Fails on lines or vectors shorter than UtilEuclid.zeroLengthTolerance (1e-12).
Extended Type:
|
Full Usage:
this.IsPerpendicularTo
Parameters:
UnitVec
maxCosine : float<MeasureProduct<cosine, MeasureOne>>
Returns: bool
Modifiers: inline |
Checks if a 3D lines is perpendicular to a 3D unit-vector. The default angle tolerance is 89.75 to 90.25 degrees. This tolerance can be customized by an optional minium cosine value. The default cosine is 0.0043633 ( = 89.75 deg) See Euclid.Cosine module. Fails on lines shorter than UtilEuclid.zeroLengthTolerance (1e-12).
Extended Type:
|
Full Usage:
this.IsTiny
Parameters:
float
Returns: bool
Modifiers: inline |
Check if 3D line is shorter than tolerance. Or contains a NaN value
Extended Type:
|
Full Usage:
this.IsTinySq
Parameters:
float
Returns: bool
Modifiers: inline |
Check if 3D line is shorter than the squared tolerance. Or contains a NaN value
Extended Type:
|
Full Usage:
this.IsVertical
Parameters:
unit
Returns: bool
Modifiers: inline |
Checks if 3D line is parallel to the world Z axis. Ignoring orientation. The absolute deviation tolerance along X and Y axis is 1e-9. Fails on lines shorter than 1e-6. Same as ln.IsZAligned
Extended Type:
|
Full Usage:
this.IsVertical
Returns: bool
Modifiers: inline |
Checks if 3D line is parallel to the world Z axis. Ignoring orientation. The absolute deviation tolerance along X and Y axis is 1e-9. Fails on lines shorter than 1e-6. Same as ln.IsZAligned
Extended Type:
|
Full Usage:
this.IsXAligned
Parameters:
unit
Returns: bool
Modifiers: inline |
Checks if line is parallel to the world X axis. Ignoring orientation. The absolute deviation tolerance along Y and Z axis is 1e-9. Fails on lines shorter than 1e-6.
Extended Type:
|
Full Usage:
this.IsXAligned
Returns: bool
Modifiers: inline |
Checks if line is parallel to the world X axis. Ignoring orientation. The absolute deviation tolerance along Y and Z axis is 1e-9. Fails on lines shorter than 1e-6.
Extended Type:
|
Full Usage:
this.IsYAligned
Parameters:
unit
Returns: bool
Modifiers: inline |
Checks if 3D line is parallel to the world Y axis. Ignoring orientation. The absolute deviation tolerance along X and Z axis is 1e-9. Fails on lines shorter than 1e-6.
Extended Type:
|
Full Usage:
this.IsYAligned
Returns: bool
Modifiers: inline |
Checks if 3D line is parallel to the world Y axis. Ignoring orientation. The absolute deviation tolerance along X and Z axis is 1e-9. Fails on lines shorter than 1e-6.
Extended Type:
|
Full Usage:
this.IsZAligned
Parameters:
unit
Returns: bool
Modifiers: inline |
Checks if 3D line is parallel to the world Z axis. Ignoring orientation. The absolute deviation tolerance along X and Y axis is 1e-9. Fails on lines shorter than 1e-6. Same as ln.IsVertical
Extended Type:
|
Full Usage:
this.IsZAligned
Returns: bool
Modifiers: inline |
Checks if 3D line is parallel to the world Z axis. Ignoring orientation. The absolute deviation tolerance along X and Y axis is 1e-9. Fails on lines shorter than 1e-6. Same as ln.IsVertical
Extended Type:
|
Full Usage:
this.IsZeroLength
Parameters:
unit
Returns: bool
Modifiers: inline |
Check if the 3D line has exactly the same starting and ending point.
Extended Type:
|
Full Usage:
this.IsZeroLength
Returns: bool
Modifiers: inline |
Check if the 3D line has exactly the same starting and ending point.
Extended Type:
|
Full Usage:
this.LengthFromParam
Parameters:
float
Returns: float
Modifiers: inline |
Returns the length of the line segment from the given parameter till the line End. This length is negative if the parameter is bigger than 1.0.
Extended Type:
|
Full Usage:
this.LengthTillParam
Parameters:
float
Returns: float
Modifiers: inline |
Returns the length of the line segment from the start point to the given parameter. This length is negative if the parameter is negative.
Extended Type:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Full Usage:
this.Shrink
Parameters:
float
distAtEnd : float
Returns: Line3D
Modifiers: inline |
|
|
|
|
|
|
|
|
|
|
Multiplies (or applies) a RigidMatrix to a 3D line .
Extended Type:
|
|
|
|
Checks if two 3D lines are parallel. Ignoring orientation. Calculates the Cross Product of the two line vectors. (= the area of the parallelogram) And checks if it is smaller than 1e-9 (NOTE: for very long lines a higher tolerance might be needed)
Extended Type:
|
|
Checks if two 3D lines are parallel and orientated the same way. Calculates the Cross Product of the two line vectors. (= the area of the parallelogram) And checks if it is smaller than 1e-9 Then calculates the dot product and checks if it is positive. (NOTE: for very long lines a higher tolerance might be needed)
Extended Type:
|
|
|
Full Usage:
Line3D.areTouchingAny tol a b
Parameters:
float
-
The tolerance for the distance between the end points.
a : Line3D
-
The first line.
b : Line3D
-
The second line.
Returns: int
An integer value indicating the touching case:
0 if not touching,
1 if touching at End of A and Start of B,
2 if touching at Start of A and End of B,
3 if touching at Start of A and Start of B,
4 if touching at End of A and End of B
|
Checks if the two finite 3D lines are touching each other at any of end points within the given tolerance. This will also return found result if the lines are touching on both points.
Extended Type:
|
Full Usage:
Line3D.areTouchingEither tol a b
Parameters:
float
-
The tolerance for the distance between the end points.
a : Line3D
-
The first line.
b : Line3D
-
The second line.
Returns: int
An integer value indicating the touching case:
0 if not touching,
1 if touching at End of A and Start of B,
2 if touching at Start of A and End of B,
3 if touching at Start of A and Start of B,
4 if touching at End of A and End of B,
5 if touching at both Start and End. Lines are identical and in same orientation.
6 if touching at both at the other Start or End. Lines are identical but in opposite orientation.
|
Checks if the two finite 3D lines are touching each other at exactly one of their end points within the given tolerance. This will return a separate case (5 or 6) if the lines are touching on both points.
Extended Type:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Assumes Lines to be infinite. Returns the distance between two infinite 3D lines. At their closest point. Fails if one or both lines are shorter than 1e-6. Unless the lines are skew or parallel this returns 0.0. Uses the default tolerances from the Line3D.intersectionParamInfinite function. to detect parallel and coincident lines.
Extended Type:
|
|
Returns the distance between two finite 3D lines. For parallel lines the distance is calculate form the actual finit elements. (like in the other cases.) So it is maybe bigger than the parallel offset. For Coincident and intersecting lines below a tolerance of 1e-16 this always returns 0.0.
Extended Type:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Divides a 3D line into as few as segments as possible respecting the maximum segment length. Returned Array includes start and endpoint of line. The input maxSegmentLength is multiplied by factor 0.999999 of to avoid numerical errors. That means in an edge case there are fewer segments returned, not more.
Extended Type:
|
|
Divides a 3D line into as many as segments as possible respecting the minimum segment length. Returned Array includes start and endpoint of line. The input minSegmentLength is multiplied by factor 1.000001 of to avoid numerical errors. That means in an edge case there are more segments returned, not fewer.
Extended Type:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Full Usage:
Line3D.intersection (lnA, lnB, skewTolerance, relAngleDiscriminant, coincidentTolerance, tooShortTolerance)
Parameters:
Line3D
-
The first line.
lnB : Line3D
-
The second line.
skewTolerance : float
-
Is an optional distance tolerance. 1e-6 by default.
If skew lines are closer than this distance they are considered intersecting in one point. The returned point is on line A.
relAngleDiscriminant : float<MeasureProduct<relAngDiscr, MeasureOne>>
-
This is an optional tolerance for the internally calculated relative Angle Discriminant.
The default value is '0.00000952' this corresponds to approx 0.25 degree. Below this angle the 'Parallel' or 'Coincident' union case is returned.
Use the module Euclid.UtilEuclid.RelAngleDiscriminant to set another tolerance here.
coincidentTolerance : float
-
Is an optional distance tolerance. 1e-6 by default.
If parallel lines are closer than this, then the 'Coincident' union case is returned.
tooShortTolerance : float
-
Is an optional length tolerance. 1e-6 by default.
If one or both lines are shorter than this, then the 'TooShort' union case is returned.
Returns: IntersectionKind * Pnt * Pnt
Modifiers: inline |
Returns the intersection kind and the points at which two (finite) 3D Lines are intersecting or closest to each other. The threshold for skew intersection can be given as an optional tolerance input. The default is 1e-6. If the two points ar within this distance one of the Intersecting Cases is returned. (or Continuation Case if lines are colinear in one point) one of the Intersecting Cases is returned. (or Continuation Case if lines are colinear in one point) The returned points are on the respective lines. For parallel and coincident lines it still returns the two end points that are closest to each other or a point in the middle of their overlap. First point is on lnA, second point is on lnB. The possible result cases are: | Intersecting : The finite lines are intersecting each other in one point. | IntersectingEndsBoth: The finite lines are intersecting each other at one of their end or start points point. | IntersectingEndsFirst: The finite lines are intersecting. The first line is touching the second one with its end or start point. | IntersectingEndsSecond: The finite lines are intersecting. The second line is touching the first one with its end or start point. | Skew: The finite lines are skew to each other. Their closest points to each other are within the line. The returned points are between 0.0 and 1.0 | Apart: The finite lines are not intersecting nor skew. At least one of the points of closets points would be outside of the range 0.0 and 1.0. The returned points still indicate where the finite lines are closest to each other. ------- Parallel and other special cases for finite lines: --------------- | Parallel : The finite lines are parallel. Within 0.25 degrees. The returned points are in the middle of their overlap, or the two end points that are closest to each other. | Overlapping The lines are coincident, overlapping and parallel within 0.25 degrees. The returned points are at start and end of overlap. | CoincidentApart: The lines are coincident, parallel within 0.25 degrees. But ends are apart. The returned points still indicate where the lines are closest to each other. | Continuation : The lines are coincident, parallel within 0.25 degrees. The ends are meeting in exactly one point. And Oriented the same way. The returned points indicate which ends these are. | ContinuationFlipped: The lines are coincident, parallel within 0.25 degrees. The ends are meeting in exactly one point. But orientation is flipped. The returned points indicate which ends these are. | Identical: The lines are identical, in orientation too with in 1e-6 tolerance. The returned points still indicate where the lines start and end. | IdenticalFlipped: The lines are identical. But orientation is flipped. The returned points still indicate where the lines start and end. ------------------------------Error Cases: ----------------------------- | TooShortA Input line A is shorter than the given minimum Length tolerance. The returned points are the middle of line A and the closets point to it on line B. | TooShortB Input line B is shorter than the given minimum Length tolerance. The returned points are the closets point to lineA from the middle of line B and the middle of line B. | TooShortBoth Both input lines are shorter than the given minimum Length tolerance. The returned points are in the middle of both lines.
Extended Type:
|
Full Usage:
Line3D.intersectionInfinite (lnA, lnB, skewTolerance, relAngleDiscriminant, coincidentTolerance, tooShortTolerance)
Parameters:
Line3D
-
The first line.
lnB : Line3D
-
The second line.
skewTolerance : float
-
Is an optional distance tolerance. 1e-6 by default.
If skew lines are closer than this distance they are considered intersecting in one point. The returned point is on line A.
relAngleDiscriminant : float<MeasureProduct<relAngDiscr, MeasureOne>>
-
This is an optional tolerance for the internally calculated relative Angle Discriminant.
The default value is '0.00000952' this corresponds to approx 0.25 degree. Below this angle the 'Parallel' or 'Coincident' union case is returned.
Use the module Euclid.UtilEuclid.RelAngleDiscriminant to set another tolerance here.
coincidentTolerance : float
-
Is an optional distance tolerance. 1e-6 by default.
If parallel lines are closer than this, then the 'Coincident' union case is returned.
tooShortTolerance : float
-
Is an optional length tolerance. 1e-6 by default.
If one or both lines are shorter than this, then the 'TooShort' union case is returned.
Returns: IntersectionPoints3D
An IntersectionPoints3D Discriminated Union with the following cases:
| TwoPoints of skewPoints : struct(Pnt*Pnt)
The lines are skew by mor than 1e-6. or the given tolerance
Contains the points on the first and second
line where they are closest to each other.
| OnePoint of xPoint : Pnt
The 3D lines are intersection in exactly one point.
Or the points are closer than the skewTolerance. 1e-6 by default. The returned point is on line A.
| Parallel:
The lines are parallel, within the given tolerance.
| Coincident:
The lines are coincident or maybe even identical.
As infinite lines they have infinitely many points in common.
| TooShort:
One or both input lines is shorter than the given minimum Length tolerance.
Modifiers: inline |
Gets the points at which two infinite 3D lines intersect. Or are closest to each other.
Extended Type:
|
Full Usage:
Line3D.intersectionParam (lnA, lnB, skewTolerance, relAngleDiscriminant, coincidentTolerance, tooShortTolerance)
Parameters:
Line3D
-
The first line.
lnB : Line3D
-
The second line.
skewTolerance : float
-
Is an optional distance tolerance. 1e-6 by default.
If skew lines are closer than this distance they are considered intersecting in one point. The returned point is on line A.
relAngleDiscriminant : float<MeasureProduct<relAngDiscr, MeasureOne>>
-
This is an optional tolerance for the internally calculated relative Angle Discriminant.
The default value is '0.00000952' this corresponds to approx 0.25 degree. Below this angle the 'Parallel' or 'Coincident' union case is returned.
Use the module Euclid.UtilEuclid.RelAngleDiscriminant to set another tolerance here.
coincidentTolerance : float
-
Is an optional distance tolerance. 1e-6 by default.
If parallel lines are closer than this, then the 'Coincident' union case is returned.
tooShortTolerance : float
-
Is an optional length tolerance. 1e-6 by default.
If one or both lines are shorter than this, then the 'TooShort' union case is returned.
Returns: IntersectionKind * float * float
Modifiers: inline |
Returns the intersection kind and the parameters at which two (finite) 3D Lines are intersecting or closest to each other. The threshold for skew intersection can be given as an optional tolerance input. The default is 1e-6. If the two points ar within this distance one of the Intersecting Cases is returned. (or Continuation Case if lines are colinear in one point) The returned parameters are both between 0.0 and 1.0. For parallel and coincident lines it still returns the two end points that are closest to each other or a point in the middle of their overlap. First parameter is on lnA, second parameter is on lnB. The possible result cases are: | Intersecting : The finite lines are intersecting each other in one point inside both lines. | IntersectingEndsBoth: The finite lines are intersecting each other at one of their end or start points point. | IntersectingEndsFirst: The finite lines are intersecting. The first line is touching the second one with its end or start point. | IntersectingEndsSecond: The finite lines are intersecting. The second line is touching the first one with its end or start point. | Skew: The finite lines are skew to each other. Their closest points to each other are within the line. The returned parameters are between 0.0 and 1.0 | Apart: The finite lines are not intersecting nor skew. At least one of the parameters of closets points would be outside of the range 0.0 and 1.0. The returned parameters still indicate where the finite lines are closest to each other. ------- Parallel and other special cases for finite lines: --------------- | Parallel : The finite lines are parallel. Within 0.25 degrees. The returned parameters are in the middle of their overlap, or the two end points that are closest to each other. | Overlapping The lines are coincident, overlapping and parallel within 0.25 degrees. The returned parameters are at start and end of overlap. | CoincidentApart: The lines are coincident, parallel within 0.25 degrees. But ends are apart. The returned parameters still indicate where the lines are closest to each other. | Continuation : The lines are coincident, parallel within 0.25 degrees. The ends are meeting in exactly one point. And Oriented the same way. The returned parameters indicate which ends these are. | ContinuationFlipped: The lines are coincident, parallel within 0.25 degrees. The ends are meeting in exactly one point. But orientation is flipped. The returned parameters indicate which ends these are. | Identical: The lines are identical, in orientation too with in 1e-6 tolerance. The returned parameters still indicate where the lines start and end. | IdenticalFlipped: The lines are identical. But orientation is flipped. The returned parameters still indicate where the lines start and end. ------------------------------Error Cases: ----------------------------- | TooShortA Input line A is shorter than the given minimum Length tolerance. The returned parameters are 0.5 for line A and the closets point to lineB from the middle of line A. | TooShortB Input line B is shorter than the given minimum Length tolerance. The returned parameters are the closets point to lineA from the middle of line B and 0.5 for line B. | TooShortBoth Both input lines are shorter than the given minimum Length tolerance. The returned parameters are 0.5 and 0.5 for both lines.
Extended Type:
|
Full Usage:
Line3D.intersectionParamInfinite (lnA, lnB, relAngleDiscriminant, coincidentTolerance, tooShortTolerance)
Parameters:
Line3D
-
The first line.
lnB : Line3D
-
The second line.
relAngleDiscriminant : float<MeasureProduct<relAngDiscr, MeasureOne>>
-
This is an optional tolerance for the internally calculated relative Angle Discriminant.
The default value is '0.00000952' this corresponds to approx 0.25 degree. Below this angle the 'Parallel' or 'Coincident' union case is returned.
Use the module Euclid.UtilEuclid.RelAngleDiscriminant to set another tolerance here.
coincidentTolerance : float
-
Is an optional distance tolerance. 1e-6 by default.
If parallel lines are closer than this, then the 'Coincident' union case is returned.
tooShortTolerance : float
-
Is an optional length tolerance. 1e-6 by default.
If one or both lines are shorter than this, then the 'TooShort' union case is returned.
Returns: IntersectionParam
An IntersectionParam Discriminated Union with the following cases:
| TwoParam of twoParams : struct(float*float):
The infinite lines are intersecting or skew.
They have each one point where they are intersecting each other.
Or are closest to each other in skew case.
The tuple's order corresponds to the input order.
| Parallel:
The lines are parallel within 0.25 degrees.
They have no points in common.
| Coincident:
The lines are coincident (or maybe even identical) .
As infinite lines they have infinitely many points in common.
They might still not have the same start and end points in their finit definition.
| TooShort:
One or both input lines is shorter than the given minimum Length tolerance.
Modifiers: inline |
Gets the parameters at which two infinite 3D lines intersect. Or are closest to each other.
Extended Type:
|
Full Usage:
Line3D.intersectionPoint (lnA, lnB, skewTolerance, relAngleDiscriminant, coincidentTolerance, tooShortTolerance)
Parameters:
Line3D
-
The first line.
lnB : Line3D
-
The second line.
skewTolerance : float
-
Is an optional distance tolerance. 1e-6 by default.
If skew lines are closer than this distance they are considered intersecting in one point. The returned point is on line A.
relAngleDiscriminant : float<MeasureProduct<relAngDiscr, MeasureOne>>
-
This is an optional tolerance for the internally calculated relative Angle Discriminant.
The default value is '0.00000952' this corresponds to approx 0.25 degree. Below this angle the 'Parallel' or 'Coincident' union case is returned.
Use the module Euclid.UtilEuclid.RelAngleDiscriminant to set another tolerance here.
coincidentTolerance : float
-
Is an optional distance tolerance. 1e-6 by default.
If parallel lines are closer than this, then the 'Coincident' union case is returned.
tooShortTolerance : float
-
Is an optional length tolerance. 1e-6 by default.
If one or both lines are shorter than this, then the 'TooShort' union case is returned.
Returns: Pnt option
|
Returns the single points where these two finite lines actually intersect each other. Or None The threshold for skew intersection can be given as an optional tolerance input. If the two points are within this distance a point is returned. This might also be the Continuation Case if lines are colinear in one point.
Extended Type:
|
Full Usage:
Line3D.intersectionPointInfinite (lnA, lnB, skewTolerance, relAngleDiscriminant, coincidentTolerance, tooShortTolerance)
Parameters:
Line3D
-
The first line.
lnB : Line3D
-
The second line.
skewTolerance : float
-
Is an optional distance tolerance. 1e-6 by default.
If skew lines are closer than this distance they are considered intersecting in one point. The returned point is on line A.
relAngleDiscriminant : float<MeasureProduct<relAngDiscr, MeasureOne>>
-
This is an optional tolerance for the internally calculated relative Angle Discriminant.
The default value is '0.00000952' this corresponds to approx 0.25 degree. Below this angle an EuclidException is raised.
Use the module Euclid.UtilEuclid.RelAngleDiscriminant to set another tolerance here.
coincidentTolerance : float
-
Is an optional distance tolerance. 1e-6 by default.
If parallel lines are closer than this, then an EuclidException is raised.
tooShortTolerance : float
-
Is an optional length tolerance. 1e-6 by default.
If one or both lines are shorter than this, then an EuclidException is raised.
Returns: Pnt
A single 3D point
|
Gets the single points where these two infinite 3D lines actually intersect each other. The returned point is on line A.
Extended Type:
|
|
|
|
|
Full Usage:
Line3D.isTinySq tol l
Parameters:
float
l : Line3D
Returns: bool
Modifiers: inline |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Offset line parallel to XY-Plane to left side in line direction. Z values are not changed. Fails on vertical lines or lines shorter than UtilEuclid.zeroLengthTolerance (1e-12). If amount is 0.0 no offset is computed and the input line is returned.
Extended Type:
|
|
|
|
|
Full Usage:
Line3D.rotate q ln
Parameters:
Quaternion
ln : Line3D
Returns: Line3D
Modifiers: inline |
Multiplies (or applies) a Quaternion to a 3D line. The resulting line has the same length as the input.
Extended Type:
|
Full Usage:
Line3D.rotate2D r ln
Parameters:
Rotation2D
ln : Line3D
Returns: Line3D
Modifiers: inline |
|
Full Usage:
Line3D.rotate2dOn cen r ln
Parameters:
Pnt
r : Rotation2D
ln : Line3D
Returns: Line3D
Modifiers: inline |
Rotation a 3D line round given Center point an a local Z-axis.
Extended Type:
|
Full Usage:
Line3D.rotateWithCenter cen q ln
Parameters:
Pnt
q : Quaternion
ln : Line3D
Returns: Line3D
Modifiers: inline |
Multiplies (or applies) a Quaternion to a 3D line around a given center point. The resulting line has the same length as the input.
Extended Type:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Divides a 3D line into given amount of segments. Includes a gap between the segments. But not at the start or end. Returns an array of 3D Lines. Returns an empty array if the length of the line is less than gap-size x segment-count-minus-1.
Extended Type:
|
|
Divides a 3D line into as few as segments as possible respecting the maximum segment length and the gap. Includes a gap between the segments. But not at the start or end. Returns an array ofe3D Lines The input maxSegmentLength is multiplied by factor 0.999999 of to avoid numerical errors. That means in an edge case there are fewer segments returned, not more.
Extended Type:
|
|
Divides a 3D line into as many as segments as possible respecting the minimum segment length and the gap. Includes a gap between the segments. But not at the start or end. Returns an array ofe3D Lines The input minSegmentLength is multiplied by factor 1.000001 of to avoid numerical errors. That means in an edge case there are more segments returned, not fewer.
Extended Type:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Full Usage:
Line3D.transformRigid m ln
Parameters:
RigidMatrix
ln : Line3D
Returns: Line3D
Modifiers: inline |
Multiplies (or applies) a RigidMatrix to a 3D line .
Extended Type:
|
|
|
|
|
|
|
|
|
|
|
|