3D Lingo Dictionary > O-S > pointOfContact |  |

pointOfContact

Syntax

    collisionData.pointOfContact

Description

3D `collisionData` property; returns a vector describing the point of contact in a collision between two models.

The `collisionData` object is sent as an argument with the`#collideWith` and `#collideAny` events to the handler specified in the `registerForEvent, registerScript,` and`setCollisionCallback` commands.

The`#collideWith` and `#collideAny` events are sent when a collision occurs between models to which collision modifiers have been added. The `resolve` property of the models' modifiers must be set to `TRUE.`

This property can be tested but not set.

Example

This example has two parts. The first part is the first line of code, which registers the `#explode` handler for the `#collideAny` event. The second part is the `#explode` handler. When two models in the cast member MyScene collide, the `#explode` handler is called and the `collisionData` argument is sent to it. The first nine lines of the`#explode` handler create the model resource named SparkSource and set its properties. This model resource is a single burst of particles. The tenth line of the handler creates a model named SparksModel using the model resource named SparkSource. The last line of the handler sets the position of SparksModel to the position where the collision occurred. The overall effect is a burst of sparks caused by a collision.

    member("MyScene").registerForEvent(#collideAny, #explode, 0)
    on explode me, collisionData
      nmr = member("MyScene").newModelResource("SparkSource", #particle)
      nmr.emitter.mode = #burst
      nmr.emitter.loop = 0
      nmr.emitter.minSpeed = 30
      nmr.emitter.maxSpeed = 50
      nmr.emitter.direction = vector(0, 0, 1)
      nmr.colorRange.start = rgb(0, 0, 255)
      nmr.colorRange.end = rgb(255, 0, 0)
      nmr.lifetime = 5000
      nm = member("MyScene").newModel("SparksModel", nmr)
      nm.transform.position = collisionData.pointOfContact
    end

See also

`modelA`, `modelB`