Example #1
0
 /// <summary>
 /// Looks up the contact constraint accessor for the given constraint type id if it exists.
 /// </summary>
 /// <param name="constraintTypeId">Constraint type id to look up a constraint accessor for.</param>
 /// <param name="accessor">Accessor for the given type id.</param>
 /// <returns>True if the constraint type id refers to a registered accessor, false otherwise.</returns>
 public bool TryGetContactConstraintAccessor(int constraintTypeId, out ContactConstraintAccessor accessor)
 {
     if (IsContactConstraintType(constraintTypeId) && contactConstraintAccessors.Length > constraintTypeId)
     {
         accessor = contactConstraintAccessors[constraintTypeId];
         if (accessor != null)
         {
             return(true);
         }
     }
     accessor = null;
     return(false);
 }
Example #2
0
        public void RegisterContactConstraintAccessor(ContactConstraintAccessor contactConstraintAccessor)
        {
            var id = contactConstraintAccessor.ConstraintTypeId;

            if (contactConstraintAccessors == null || contactConstraintAccessors.Length <= id)
            {
                contactConstraintAccessors = new ContactConstraintAccessor[id + 1];
            }
            if (contactConstraintAccessors[id] != null)
            {
                throw new InvalidOperationException($"Cannot register accessor for type id {id}; it is already registered by {contactConstraintAccessors[id]}.");
            }
            contactConstraintAccessors[id] = contactConstraintAccessor;
        }