private bool onContactConstraint_virtual([In()][Out()] ref uint changeFlags, IntPtr shape0, IntPtr shape1, uint featureIndex0, uint featureIndex1, IntPtr data) { return(onContactConstraint(ref changeFlags, NxShape.GetClass(shape0), NxShape.GetClass(shape1), featureIndex0, featureIndex1, NxContactCallbackData.GetClass(data))); }
/// <summary>This is called when a contact constraint is generated. Modify the parameters in order to affect the generated contact constraint. This callback needs to be both thread safe and reentrant. </summary> /// <param name="changeFlags">when making changes to the contact point, you must mark in this flag what changes have been made, see NxContactConstraintChange. </param> /// <param name="shape0">one of the two shapes in contact </param> /// <param name="shape1">the other shape </param> /// <param name="featureIndex0">feature on the first shape, which is in contact with the other shape </param> /// <param name="featureIndex1">feature on the second shape, which is in contact with the other shape </param> /// <param name="data">contact constraint properties, for the user to change. Changes in this also requires changes in the changeFlags parameter.</param> public virtual bool onContactConstraint(ref uint changeFlags, NxShape shape0, NxShape shape1, uint featureIndex0, uint featureIndex1, NxContactCallbackData data) { if (doSetFunctionPointers) { throw new System.NotSupportedException("Cannot call abstract base member"); } return(NxUserContactModify_onContactConstraint_INVOKE(ClassPointer, doSetFunctionPointers, ref changeFlags, (shape0 != null ? shape0.ClassPointer : NullRef), (shape1 != null ? shape1.ClassPointer : NullRef), featureIndex0, featureIndex1, (data != null ? data.ClassPointer : NullRef))); }