Physics SimulationPhysicsWorldOn this pagePhysicsWorld Description: A record that represents a physics world in the game. Class Object: PhysicsWorld Class. Inherits from: Node. query Type: Function. Description: Queries the physics world for all bodies that intersect with the specified rectangle. Signature: query: function(self: PhysicsWorld, rect: Rect, handler: function(Body): boolean): boolean Parameters: ParameterTypeDescriptionrectRectThe rectangle to query for bodies.handlerfunctionA function that is called for each body found in the query. Returns: Return TypeDescriptionbooleanWhether the query was interrupted, true means interrupted, false otherwise. Definition for handler: Parameters of handler: ParameterTypeDescriptionbodyBodyThe body found in the query. Returns of handler: Return TypeDescriptionbooleanWhether to continue querying for more bodies, false to continue, true to stop. raycast Type: Function. Description: Casts a ray through the physics world and finds the first body that intersects with the ray. Signature: raycast: function(self: PhysicsWorld, start: Vec2, stop: Vec2, closest: boolean, handler: function(Body, point: Vec2, normal: Vec2): boolean): boolean Parameters: ParameterTypeDescriptionstartVec2The starting point of the ray.stopVec2The ending point of the ray.closestbooleanWhether to stop ray casting upon the closest body that intersects with the ray.Set closest to true to get a faster ray casting search.handlerfunctionA function that is called for each body found in the raycast. Returns: Return TypeDescriptionbooleanWhether the raycast was interrupted, true means interrupted, false otherwise. Definition for handler: Parameters of handler: ParameterTypeDescriptionbodyBodyThe body found in the raycast.pointVec2The point where the ray intersects with the body.normalVec2The normal vector at the point of intersection. Returns of handler: Return TypeDescriptionbooleanWhether to continue casting the ray for more bodies, returns true to stop, false otherwise. setIterations Type: Function. Description: Sets the number of velocity and position iterations to perform in the physics world. Signature: setIterations: function(self: PhysicsWorld, velocityIter: integer, positionIter: integer) Parameters: ParameterTypeDescriptionvelocityIterintegerThe number of velocity iterations to perform.positionIterintegerThe number of position iterations to perform. setShouldContact Type: Function. Description: Sets whether two physics groups should make contact with each other or not. Signature: setShouldContact: function(self: PhysicsWorld, groupA: integer, groupB: integer, contact: boolean) Parameters: ParameterTypeDescriptiongroupAintegerThe first physics group.groupBintegerThe second physics group.contactbooleanWhether the two groups should make contact with each other. getShouldContact Type: Function. Description: Gets whether two physics groups should make contact with each other or not. Signature: getShouldContact: function(self: PhysicsWorld, groupA: integer, groupB: integer): boolean Parameters: ParameterTypeDescriptiongroupAintegerThe first physics group.groupBintegerThe second physics group. Returns: Return TypeDescriptionbooleanWhether the two groups should make contact with each other.