Plane
Un plano en forma normal de Hesse.
Descripción
Representa una ecuación de plano normalizada. normal es la normal del plano (a, b, c normalizados), y d es la distancia desde el origen al plano (en la dirección de "normal"). Se considera "Sobre" o "Por encima" del plano el lado del plano hacia donde apunta la normal.
Tutoriales
Propiedades
|
||
|
||
|
||
|
||
|
Constructores
Plane() |
|
Métodos
distance_to(point: Vector3) const |
|
get_center() const |
|
intersect_3(b: Plane, c: Plane) const |
|
intersects_ray(from: Vector3, dir: Vector3) const |
|
intersects_segment(from: Vector3, to: Vector3) const |
|
is_equal_approx(to_plane: Plane) const |
|
is_finite() const |
|
is_point_over(point: Vector3) const |
|
normalized() const |
|
Operadores
operator !=(right: Plane) |
|
operator *(right: Transform3D) |
|
operator ==(right: Plane) |
|
Constantes
PLANE_YZ = Plane(1, 0, 0, 0) 🔗
Un plano que se extiende en los ejes Y y Z (puntos de vector normal +X).
PLANE_XZ = Plane(0, 1, 0, 0) 🔗
Un plano que se extiende en los ejes X y Z (puntos de vector normal +Y).
PLANE_XY = Plane(0, 0, 1, 0) 🔗
Un plano que se extiende en los ejes X e Y (puntos de vector normal +Z).
Descripciones de Propiedades
La distancia desde el origen hasta el plano, expresada en términos de normal (según su dirección y magnitud). La distancia absoluta real desde el origen al plano se puede calcular como abs(d) / normal.length() (si normal tiene longitud cero, entonces este Plane no representa un plano válido).
En la ecuación escalar del plano ax + by + cz = d, esto es d, mientras que las coordenadas (a, b, c) están representadas por la propiedad normal.
Vector3 normal = Vector3(0, 0, 0) 🔗
La normal del plano, típicamente un vector unitario. No debería ser un vector cero, ya que un Plane con tal normal no representa un plano válido.
En la ecuación escalar del plano ax + by + cz = d, este es el vector (a, b, c), donde d es la propiedad d.
El componente X del vector normal del plano.
El componente Y del vector normal del plano.
El componente Z del vector normal del plano.
Descripciones de Constructores
Construye un Plane inicializado por defecto con todos los componentes establecidos a 0.
Construye un Plane como una copia del Plane dado.
Plane Plane(a: float, b: float, c: float, d: float)
Crea un plano a partir de cuatro parámetros. Los tres componentes de la normal del plano resultante son a, b y c, y el plano tiene una distancia de d desde el origen.
Crea un plano a partir del vector normal. El plano intersecará con el origen.
El normal del plano debe ser un vector unitario.
Plane Plane(normal: Vector3, d: float)
Crea un plano a partir del vector normal y la distancia del plano al origen.
El normal del plano debe ser un vector unitario.
Plane Plane(normal: Vector3, point: Vector3)
Crea un plano a partir del vector normal y un punto en el plano.
El normal del plano debe ser un vector unitario.
Plane Plane(point1: Vector3, point2: Vector3, point3: Vector3)
Crea un plano a partir de los tres puntos, dados en el sentido de las agujas del reloj.
Descripciones de Métodos
float distance_to(point: Vector3) const 🔗
Devuelve la distancia más corta desde el plano a la posición point. Si el punto está por encima del plano, la distancia será positiva. Si está por debajo, la distancia será negativa.
Devuelve el centro del plano.
bool has_point(point: Vector3, tolerance: float = 1e-05) const 🔗
Devuelve true si point está dentro del plano. La comparación utiliza un umbral mínimo personalizado de tolerance.
Variant intersect_3(b: Plane, c: Plane) const 🔗
Devuelve el punto de intersección de los tres planos b, c y este plano. Si no se encuentra ninguna intersección, se devuelve null.
Variant intersects_ray(from: Vector3, dir: Vector3) const 🔗
Devuelve el punto de intersección de un rayo que consiste en la posición from y la dirección normal dir con este plano. Si no se encuentra ninguna intersección, se devuelve null.
Variant intersects_segment(from: Vector3, to: Vector3) const 🔗
Devuelve el punto de intersección de un segmento desde la posición from hasta la posición to con este plano. Si no se encuentra ninguna intersección, se devuelve null.
bool is_equal_approx(to_plane: Plane) const 🔗
Devuelve true si este plano y to_plane son aproximadamente iguales, ejecutando @GlobalScope.is_equal_approx() en cada componente.
Devuelve true si este plano es finito, llamando a @GlobalScope.is_finite() en cada componente.
bool is_point_over(point: Vector3) const 🔗
Devuelve true si point se encuentra por encima del plano.
Devuelve una copia del plano, con normal normalizado (por lo que es un vector unitario). Devuelve Plane(0, 0, 0, 0) si normal no se puede normalizar (tiene longitud cero).
Vector3 project(point: Vector3) const 🔗
Devuelve la proyección ortogonal de point en un punto del plano.
Descripciones de Operadores
bool operator !=(right: Plane) 🔗
Returns true if the planes are not equal.
Note: Due to floating-point precision errors, consider using is_equal_approx() instead, which is more reliable.
Plane operator *(right: Transform3D) 🔗
Transforma inversamente (multiplica) el Plane por la matriz de transformación Transform3D dada.
plane * transform es equivalente a transform.affine_inverse() * plane. Véase Transform3D.affine_inverse().
bool operator ==(right: Plane) 🔗
Returns true if the planes are exactly equal.
Note: Due to floating-point precision errors, consider using is_equal_approx() instead, which is more reliable.
Devuelve el mismo valor como si el + no estuviera ahí. El + unario no hace nada, pero a veces puede hacer que tu código sea más legible.
Devuelve el valor negativo del Plane. Esto es lo mismo que escribir Plane(-p.normal, -p.d). Esta operación invierte la dirección del vector normal y también invierte el valor de la distancia, lo que da como resultado un Plano que está en el mismo lugar, pero mirando en la dirección opuesta.