/// <summary> /// Appends a tag trait constraint to the existing tag trait expression. /// </summary> /// <remarks> /// An "and" clause matches all intervals from the motion library /// that contain the trait passed as argument and any constraint /// that has been previously specified as part of the tag trait expression. /// <example> /// <code> /// synthesizer.Query.Where( /// Locomotion.Default).And(Idle.Default)); /// </code> /// </example> /// </remarks> /// <seealso cref="MotionSynthesizer.Query"/> public QueryTraitExpression And <T>(T value) where T : struct { var traitIndex = binary.Ref.GetTraitIndex(value); Insert(Constraint.Create(traitIndex)); return(this); }
/// <summary> /// Introduces a marker trait expression that selects based on an "at" clause. /// </summary> /// <remarks> /// An "at" clause matches all single poses from the motion library /// that contain the marker type passed as argument. /// <example> /// <code> /// synthesizer.Query.At<Loop>(); /// </code> /// </example> /// </remarks> /// <seealso cref="MotionSynthesizer.Query"/> public QueryMarkerExpression At <T>() where T : struct { constraints.Add( Constraint.Create( GetTypeIndex <T>(), Type.At)); return(this); }