Documentation
¶
Overview ¶
Provides direct access to a physics space in the graphics.gd/classdb/PhysicsServer3D. It's used mainly to do queries against objects and areas residing in a given space.
Note: This class is not meant to be instantiated directly. Use graphics.gd/classdb/World3D.Instance.DirectSpaceState to get the world's physics 3D space state.
Index ¶
- type Advanced
- type Any
- type Expanded
- func (self Expanded) CollideShape(parameters PhysicsShapeQueryParameters3D.Instance, max_results int) []Vector3.XYZ
- func (self Expanded) IntersectPoint(parameters PhysicsPointQueryParameters3D.Instance, max_results int) []PhysicsDirectSpaceState3D_Intersection
- func (self Expanded) IntersectShape(parameters PhysicsShapeQueryParameters3D.Instance, max_results int) []PhysicsDirectSpaceState3D_Intersection
- type Extension
- type ID
- type Instance
- func (self Instance) AsObject() [1]gd.Object
- func (self Instance) AsPhysicsDirectSpaceState3D() Instance
- func (self Instance) CastMotion(parameters PhysicsShapeQueryParameters3D.Instance) []float32
- func (self Instance) CollideShape(parameters PhysicsShapeQueryParameters3D.Instance) []Vector3.XYZ
- func (self Instance) GetRestInfo(parameters PhysicsShapeQueryParameters3D.Instance) PhysicsDirectSpaceState3D_RestInfo
- func (self Instance) ID() ID
- func (self Instance) IntersectPoint(parameters PhysicsPointQueryParameters3D.Instance) []PhysicsDirectSpaceState3D_Intersection
- func (self Instance) IntersectRay(parameters PhysicsRayQueryParameters3D.Instance) PhysicsDirectSpaceState3D_Intersection
- func (self Instance) IntersectShape(parameters PhysicsShapeQueryParameters3D.Instance) []PhysicsDirectSpaceState3D_Intersection
- func (self *Instance) SetObject(obj [1]gd.Object) bool
- func (self Instance) Virtual(name string) reflect.Value
- type PhysicsDirectSpaceState3D_Intersection
- type PhysicsDirectSpaceState3D_RestInfo
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Advanced ¶
type Advanced = class
Advanced exposes a 1:1 low-level instance of the class, undocumented, for those who know what they are doing.
type Expanded ¶
type Expanded [1]gdclass.PhysicsDirectSpaceState3D
func (Expanded) CollideShape ¶
func (self Expanded) CollideShape(parameters PhysicsShapeQueryParameters3D.Instance, max_results int) []Vector3.XYZ
Checks the intersections of a shape, given through a graphics.gd/classdb/PhysicsShapeQueryParameters3D object, against the space. The resulting array contains a list of points where the shape intersects another. Like with Instance.IntersectShape, the number of returned results can be limited to save processing time.
Returned points are a list of pairs of contact points. For each pair the first one is in the shape passed in graphics.gd/classdb/PhysicsShapeQueryParameters3D object, second one is in the collided shape from the physics space.
Note: This method does not take into account the motion property of the object.
func (Expanded) IntersectPoint ¶
func (self Expanded) IntersectPoint(parameters PhysicsPointQueryParameters3D.Instance, max_results int) []PhysicsDirectSpaceState3D_Intersection
Checks whether a point is inside any solid shape. Position and other parameters are defined through graphics.gd/classdb/PhysicsPointQueryParameters3D. The shapes the point is inside of are returned in an array containing dictionaries with the following fields:
collider: The colliding object.
collider_id: The colliding object's ID.
rid: The intersecting object's [Resource.ID].
shape: The shape index of the colliding shape.
The number of intersections can be limited with the 'max_results' parameter, to reduce the processing time.
func (Expanded) IntersectShape ¶
func (self Expanded) IntersectShape(parameters PhysicsShapeQueryParameters3D.Instance, max_results int) []PhysicsDirectSpaceState3D_Intersection
Checks the intersections of a shape, given through a graphics.gd/classdb/PhysicsShapeQueryParameters3D object, against the space. The intersected shapes are returned in an array containing dictionaries with the following fields:
collider: The colliding object.
collider_id: The colliding object's ID.
rid: The intersecting object's [Resource.ID].
shape: The shape index of the colliding shape.
The number of intersections can be limited with the 'max_results' parameter, to reduce the processing time.
Note: This method does not take into account the motion property of the object.
type Extension ¶
Extension can be embedded in a new struct to create an extension of this class. T should be the type that is embedding this Extension
func (*Extension[T]) AsPhysicsDirectSpaceState3D ¶
type ID ¶
ID is a typed object ID (reference) to an instance of this class, use it to store references to objects with unknown lifetimes, as an ID will not panic on use if the underlying object has been destroyed.
type Instance ¶
type Instance [1]gdclass.PhysicsDirectSpaceState3D
Instance of the class with convieniently typed arguments and results.
var Nil Instance
Nil is a nil/null instance of the class. Equivalent to the zero value.
func (Instance) AsPhysicsDirectSpaceState3D ¶
func (Instance) CastMotion ¶
func (self Instance) CastMotion(parameters PhysicsShapeQueryParameters3D.Instance) []float32
Checks how far a graphics.gd/classdb/Shape3D can move without colliding. All the parameters for the query, including the shape and the motion, are supplied through a graphics.gd/classdb/PhysicsShapeQueryParameters3D object.
Returns an array with the safe and unsafe proportions (between 0 and 1) of the motion. The safe proportion is the maximum fraction of the motion that can be made without a collision. The unsafe proportion is the minimum fraction of the distance that must be moved for a collision. If no collision is detected a result of [1.0, 1.0] will be returned.
Note: Any [graphics.gd/classdb/Shape3D]s that the shape is already colliding with e.g. inside of, will be ignored. Use Instance.CollideShape to determine the [graphics.gd/classdb/Shape3D]s that the shape is already colliding with.
func (Instance) CollideShape ¶
func (self Instance) CollideShape(parameters PhysicsShapeQueryParameters3D.Instance) []Vector3.XYZ
Checks the intersections of a shape, given through a graphics.gd/classdb/PhysicsShapeQueryParameters3D object, against the space. The resulting array contains a list of points where the shape intersects another. Like with Instance.IntersectShape, the number of returned results can be limited to save processing time.
Returned points are a list of pairs of contact points. For each pair the first one is in the shape passed in graphics.gd/classdb/PhysicsShapeQueryParameters3D object, second one is in the collided shape from the physics space.
Note: This method does not take into account the motion property of the object.
func (Instance) GetRestInfo ¶
func (self Instance) GetRestInfo(parameters PhysicsShapeQueryParameters3D.Instance) PhysicsDirectSpaceState3D_RestInfo
Checks the intersections of a shape, given through a graphics.gd/classdb/PhysicsShapeQueryParameters3D object, against the space. If it collides with more than one shape, the nearest one is selected. The returned object is a dictionary containing the following fields:
collider_id: The colliding object's ID.
linear_velocity: The colliding object's velocity [Vector3.XYZ]. If the object is an graphics.gd/classdb/Area3D, the result is (0, 0, 0).
normal: The collision normal of the query shape at the intersection point, pointing away from the intersecting object.
point: The intersection point.
rid: The intersecting object's [Resource.ID].
shape: The shape index of the colliding shape.
If the shape did not intersect anything, then an empty dictionary is returned instead.
Note: This method does not take into account the motion property of the object.
func (Instance) IntersectPoint ¶
func (self Instance) IntersectPoint(parameters PhysicsPointQueryParameters3D.Instance) []PhysicsDirectSpaceState3D_Intersection
Checks whether a point is inside any solid shape. Position and other parameters are defined through graphics.gd/classdb/PhysicsPointQueryParameters3D. The shapes the point is inside of are returned in an array containing dictionaries with the following fields:
collider: The colliding object.
collider_id: The colliding object's ID.
rid: The intersecting object's [Resource.ID].
shape: The shape index of the colliding shape.
The number of intersections can be limited with the 'max_results' parameter, to reduce the processing time.
func (Instance) IntersectRay ¶
func (self Instance) IntersectRay(parameters PhysicsRayQueryParameters3D.Instance) PhysicsDirectSpaceState3D_Intersection
Intersects a ray in a given space. Ray position and other parameters are defined through graphics.gd/classdb/PhysicsRayQueryParameters3D. The returned object is a dictionary with the following fields:
collider: The colliding object.
collider_id: The colliding object's ID.
normal: The object's surface normal at the intersection point, or Vector3(0, 0, 0) if the ray starts inside the shape and graphics.gd/classdb/PhysicsRayQueryParameters3D.Instance.HitFromInside is true.
position: The intersection point.
face_index: The face index at the intersection point.
Note: Returns a valid number only if the intersected shape is a graphics.gd/classdb/ConcavePolygonShape3D. Otherwise, -1 is returned.
rid: The intersecting object's [Resource.ID].
shape: The shape index of the colliding shape.
If the ray did not intersect anything, then an empty dictionary is returned instead.
func (Instance) IntersectShape ¶
func (self Instance) IntersectShape(parameters PhysicsShapeQueryParameters3D.Instance) []PhysicsDirectSpaceState3D_Intersection
Checks the intersections of a shape, given through a graphics.gd/classdb/PhysicsShapeQueryParameters3D object, against the space. The intersected shapes are returned in an array containing dictionaries with the following fields:
collider: The colliding object.
collider_id: The colliding object's ID.
rid: The intersecting object's [Resource.ID].
shape: The shape index of the colliding shape.
The number of intersections can be limited with the 'max_results' parameter, to reduce the processing time.
Note: This method does not take into account the motion property of the object.
type PhysicsDirectSpaceState3D_Intersection ¶
type PhysicsDirectSpaceState3D_Intersection struct { Collider Object.Instance `gd:"collider"` ColliderID Object.ID `gd:"collider_id"` Normal struct { X float32 Y float32 Z float32 } `gd:"normal"` Position struct { X float32 Y float32 Z float32 } `gd:"position"` FaceIndex int `gd:"face_index"` RID RID.Any `gd:"rid"` Shape int `gd:"shape"` }
type PhysicsDirectSpaceState3D_RestInfo ¶
type PhysicsDirectSpaceState3D_RestInfo struct { ColliderID Object.ID `gd:"collider_id"` LinearVelocity struct { X float32 Y float32 Z float32 } `gd:"linear_velocity"` Normal struct { X float32 Y float32 Z float32 } `gd:"normal"` Point struct { X float32 Y float32 Z float32 } `gd:"point"` RID RID.Any `gd:"rid"` Shape int `gd:"shape"` }