public void intersect( PhysicObject object1, PhysicObject object2 )
	{
		// TODO: do intersect with all colliders
		IntersectData intersectData = Intersect.colliders( object1.getColliders().get( 0 ), object2.getColliders().get( 0 ) );
		if ( intersectData != null && intersectData.isIntersect() )
		{
			Vector3f direction = intersectData.getDirection().normalized();
			Vector3f otherDirection = direction.reflect( object1.getVelocity().normalized() );
			float restitutionCoefficient = ( object1.getPhysicalProperties().getFloat( "restitutionCoefficient" ) + object2.getPhysicalProperties().getFloat( "restitutionCoefficient" ) ) / 2;

			object1.setVelocity( object1.getVelocity().reflect( otherDirection ).mul( restitutionCoefficient ) );
			object2.setVelocity( object2.getVelocity().reflect( direction ).mul( restitutionCoefficient ) );
		}
	}