public override Wrapper VisitRotate_direction_transform(PreposeGesturesParser.Rotate_direction_transformContext context) { BodyTransform transform = new BodyTransform(); var direction = (Direction)this.Visit(context.direction()); var angleText = context.NUMBER().GetText(); var angle = Convert.ToInt32(angleText); foreach (var b in context.body_part()) { var converted = (JointGroup)this.Visit(b); transform = transform.Compose( converted.Aggregate(j => BodyTransformBuilder.RotateTransform(j, angle, direction))); } return(new Wrapper(transform)); }
// this is the rotate action working as a transform // this was temporarily changed to make the rotate action work as a restriction as shown blow public override Wrapper VisitRotate_direction_transform(PreposeGesturesParser.Rotate_direction_transformContext context) { var delayed = new CompositeDelayedStatement(); var direction = (Direction)this.Visit(context.direction()); var degreesText = context.NUMBER().GetText(); var degrees = Convert.ToInt32(degreesText); foreach (var b in context.body_part()) { var converted = (JointGroup)this.Visit(b); delayed = delayed.Compose( converted.Aggregate(joint => new CompositeDelayedStatement( new RotateDelayedStatement(joint, direction, degrees)))); } return(new Wrapper(delayed)); }
/// <summary> /// Exit a parse tree produced by <see cref="PreposeGesturesParser.rotate_direction_transform"/>. /// <para>The default implementation does nothing.</para> /// </summary> /// <param name="context">The parse tree.</param> public virtual void ExitRotate_direction_transform([NotNull] PreposeGesturesParser.Rotate_direction_transformContext context) { }
/// <summary> /// Visit a parse tree produced by <see cref="PreposeGesturesParser.rotate_direction_transform"/>. /// <para> /// The default implementation returns the result of calling <see cref="AbstractParseTreeVisitor{Result}.VisitChildren(IRuleNode)"/> /// on <paramref name="context"/>. /// </para> /// </summary> /// <param name="context">The parse tree.</param> /// <return>The visitor result.</return> public virtual Result VisitRotate_direction_transform([NotNull] PreposeGesturesParser.Rotate_direction_transformContext context) { return(VisitChildren(context)); }