328 lines
10 KiB
XML
328 lines
10 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<GenerateModel xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="generateMetaModel_Module.xsd">
|
|
<PythonExport
|
|
Father="PyObjectBase"
|
|
Name="BoundBoxPy"
|
|
Twin="BoundBox"
|
|
TwinPointer="BoundBox3d"
|
|
Include="Base/BoundBox.h"
|
|
FatherInclude="Base/PyObjectBase.h"
|
|
Namespace="Base"
|
|
Constructor="true"
|
|
Delete="true"
|
|
FatherNamespace="Base">
|
|
<Documentation>
|
|
<Author Licence="LGPL" Name="Juergen Riegel" EMail="FreeCAD@juergen-riegel.net" />
|
|
<DeveloperDocu>This is the BoundBox export class</DeveloperDocu>
|
|
<UserDocu>Base.BoundBox class.
|
|
|
|
This class represents a bounding box.
|
|
A bounding box is a rectangular cuboid which is a way to describe outer
|
|
boundaries and is obtained from a lot of 3D types.
|
|
It is often used to check if a 3D entity lies in the range of another object.
|
|
Checking for bounding interference first can save a lot of computing time!
|
|
An invalid BoundBox is represented by inconsistent values at each direction:
|
|
The maximum float value of the system at the minimum coordinates, and the
|
|
opposite value at the maximum coordinates.
|
|
|
|
The following constructors are supported:
|
|
|
|
BoundBox()
|
|
Empty constructor. Returns an invalid BoundBox.
|
|
|
|
BoundBox(boundBox)
|
|
Copy constructor.
|
|
boundBox : Base.BoundBox
|
|
|
|
BoundBox(xMin, yMin=0, zMin=0, xMax=0, yMax=0, zMax=0)
|
|
Define from the minimum and maximum values at each direction.
|
|
xMin : float
|
|
Minimum value at x-coordinate.
|
|
yMin : float
|
|
Minimum value at y-coordinate.
|
|
zMin : float
|
|
Minimum value at z-coordinate.
|
|
xMax : float
|
|
Maximum value at x-coordinate.
|
|
yMax : float
|
|
Maximum value at y-coordinate.
|
|
zMax : float
|
|
Maximum value at z-coordinate.
|
|
|
|
App.BoundBox(min, max)
|
|
Define from two containers representing the minimum and maximum values of the
|
|
coordinates in each direction.
|
|
min : Base.Vector, tuple
|
|
Minimum values of the coordinates.
|
|
max : Base.Vector, tuple
|
|
Maximum values of the coordinates.</UserDocu>
|
|
</Documentation>
|
|
<Methode Name="setVoid">
|
|
<Documentation>
|
|
<UserDocu>setVoid() -> None
|
|
|
|
Invalidate the bounding box.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="isValid" Const="true">
|
|
<Documentation>
|
|
<UserDocu>isValid() -> bool
|
|
|
|
Checks if the bounding box is valid.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="add">
|
|
<Documentation>
|
|
<UserDocu>add(minMax) -> None
|
|
add(x, y, z) -> None
|
|
|
|
Increase the maximum values or decrease the minimum values of this BoundBox by
|
|
replacing the current values with the given values, so the bounding box can grow
|
|
but not shrink.
|
|
|
|
minMax : Base.Vector, tuple
|
|
Values to enlarge at each direction.
|
|
x : float
|
|
Value to enlarge at x-direction.
|
|
y : float
|
|
Value to enlarge at y-direction.
|
|
z : float
|
|
Value to enlarge at z-direction.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="getPoint" Const="true">
|
|
<Documentation>
|
|
<UserDocu>getPoint(index) -> Base.Vector
|
|
|
|
Get the point of the given index.
|
|
The index must be in the range of [0, 7].
|
|
|
|
index : int</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="getEdge" Const="true">
|
|
<Documentation>
|
|
<UserDocu>getEdge(index) -> tuple of Base.Vector
|
|
|
|
Get the edge points of the given index.
|
|
The index must be in the range of [0, 11].
|
|
|
|
index : int</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="closestPoint" Const="true">
|
|
<Documentation>
|
|
<UserDocu>closestPoint(point) -> Base.Vector
|
|
closestPoint(x, y, z) -> Base.Vector
|
|
|
|
Get the closest point of the bounding box to the given point.
|
|
|
|
point : Base.Vector, tuple
|
|
Coordinates of the given point.
|
|
x : float
|
|
X-coordinate of the given point.
|
|
y : float
|
|
Y-coordinate of the given point.
|
|
z : float
|
|
Z-coordinate of the given point.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="intersect">
|
|
<Documentation>
|
|
<UserDocu>intersect(boundBox2) -> bool
|
|
intersect(base, dir) -> bool
|
|
|
|
Checks if the given object intersects with this bounding box. That can be
|
|
another bounding box or a line specified by base and direction.
|
|
|
|
boundBox2 : Base.BoundBox
|
|
base : Base.Vector, tuple
|
|
dir : Base.Vector, tuple</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="intersected">
|
|
<Documentation>
|
|
<UserDocu>intersected(boundBox2) -> Base.BoundBox
|
|
|
|
Returns the intersection of this and the given bounding box.
|
|
|
|
boundBox2 : Base.BoundBox</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="united">
|
|
<Documentation>
|
|
<UserDocu>united(boundBox2) -> Base.BoundBox
|
|
|
|
Returns the union of this and the given bounding box.
|
|
|
|
boundBox2 : Base.BoundBox</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="enlarge">
|
|
<Documentation>
|
|
<UserDocu>enlarge(variation) -> None
|
|
|
|
Decrease the minimum values and increase the maximum values by the given value.
|
|
A negative value shrinks the bounding box.
|
|
|
|
variation : float</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
|
|
<Methode Name="getIntersectionPoint">
|
|
<Documentation>
|
|
<UserDocu>getIntersectionPoint(base, dir, epsilon=0.0001) -> Base.Vector
|
|
|
|
Calculate the intersection point of a line with the bounding box.
|
|
The base point must lie inside the bounding box, if not an exception is thrown.
|
|
|
|
base : Base.Vector
|
|
Base point of the line.
|
|
dir : Base.Vector
|
|
Direction of the line.
|
|
epsilon : float
|
|
Bounding box size tolerance.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="move">
|
|
<Documentation>
|
|
<UserDocu>move(displacement) -> None
|
|
move(x, y, z) -> None
|
|
|
|
Move the bounding box by the given values.
|
|
|
|
displacement : Base.Vector, tuple
|
|
Displacement at each direction.
|
|
x : float
|
|
Displacement at x-direction.
|
|
y : float
|
|
Displacement at y-direction.
|
|
z : float
|
|
Displacement at z-direction.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="scale">
|
|
<Documentation>
|
|
<UserDocu>scale(factor) -> None
|
|
scale(x, y, z) -> None
|
|
|
|
Scale the bounding box by the given values.
|
|
|
|
factor : Base.Vector, tuple
|
|
Factor scale at each direction.
|
|
x : float
|
|
Scale at x-direction.
|
|
y : float
|
|
Scale at y-direction.
|
|
z : float
|
|
Scale at z-direction.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="transformed">
|
|
<Documentation>
|
|
<UserDocu>transformed(matrix) -> Base.BoundBox
|
|
|
|
Returns a new BoundBox containing the transformed rectangular cuboid
|
|
represented by this BoundBox.
|
|
|
|
matrix : Base.Matrix
|
|
Transformation matrix.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="isCutPlane">
|
|
<Documentation>
|
|
<UserDocu>isCutPlane(base, normal) -> bool
|
|
|
|
Check if the plane specified by base and normal intersects (cuts) this bounding
|
|
box.
|
|
|
|
base : Base.Vector
|
|
normal : Base.Vector</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Methode Name="isInside">
|
|
<Documentation>
|
|
<UserDocu>isInside(object) -> bool
|
|
isInside(x, y, z) -> bool
|
|
|
|
Check if a point or a bounding box is inside this bounding box.
|
|
|
|
object : Base.Vector, Base.BoundBox
|
|
Object to check if it is inside this bounding box.
|
|
x : float
|
|
X-coordinate of the point to check.
|
|
y : float
|
|
Y-coordinate of the point to check.
|
|
z : float
|
|
Z-coordinate of the point to check.</UserDocu>
|
|
</Documentation>
|
|
</Methode>
|
|
<Attribute Name="Center" ReadOnly="true">
|
|
<Documentation>
|
|
<UserDocu>Center point of the bounding box.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="Center" Type="Object" />
|
|
</Attribute>
|
|
<Attribute Name="XMax" ReadOnly="false">
|
|
<Documentation>
|
|
<UserDocu>The maximum x boundary position.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="XMax" Type="Float" />
|
|
</Attribute>
|
|
<Attribute Name="YMax" ReadOnly="false">
|
|
<Documentation>
|
|
<UserDocu>The maximum y boundary position.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="YMax" Type="Float" />
|
|
</Attribute>
|
|
<Attribute Name="ZMax" ReadOnly="false">
|
|
<Documentation>
|
|
<UserDocu>The maximum z boundary position.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="ZMax" Type="Float" />
|
|
</Attribute>
|
|
<Attribute Name="XMin" ReadOnly="false">
|
|
<Documentation>
|
|
<UserDocu>The minimum x boundary position.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="XMin" Type="Float" />
|
|
</Attribute>
|
|
<Attribute Name="YMin" ReadOnly="false">
|
|
<Documentation>
|
|
<UserDocu>The minimum y boundary position.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="YMin" Type="Float" />
|
|
</Attribute>
|
|
<Attribute Name="ZMin" ReadOnly="false">
|
|
<Documentation>
|
|
<UserDocu>The minimum z boundary position.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="ZMin" Type="Float" />
|
|
</Attribute>
|
|
<Attribute Name="XLength" ReadOnly="true">
|
|
<Documentation>
|
|
<UserDocu>Length of the bounding box in x direction.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="XLength" Type="Float" />
|
|
</Attribute>
|
|
<Attribute Name="YLength" ReadOnly="true">
|
|
<Documentation>
|
|
<UserDocu>Length of the bounding box in y direction.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="YLength" Type="Float" />
|
|
</Attribute>
|
|
<Attribute Name="ZLength" ReadOnly="true">
|
|
<Documentation>
|
|
<UserDocu>Length of the bounding box in z direction.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="ZLength" Type="Float" />
|
|
</Attribute>
|
|
<Attribute Name="DiagonalLength" ReadOnly="true">
|
|
<Documentation>
|
|
<UserDocu>Diagonal length of the bounding box.</UserDocu>
|
|
</Documentation>
|
|
<Parameter Name="DiagonalLength" Type="Float" />
|
|
</Attribute>
|
|
</PythonExport>
|
|
</GenerateModel>
|