//point_to_transform : // 'point' 'your' body_part direction; public override Wrapper VisitPoint_to_transform(PreposeGesturesParser.Point_to_transformContext context) { var direction = (Direction)this.Visit(context.direction()); BodyTransform transform = new BodyTransform(); foreach (var b in context.body_part()) { var converted = (JointGroup)this.Visit(b); transform = transform.Compose(converted.Aggregate(j => BodyTransformBuilder.PointToTransform(j, direction))); } return(new Wrapper(transform)); }
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)); }
public override Wrapper VisitPose(PreposeGesturesParser.PoseContext context) { var bt = new BodyTransform(); var br = new CompositeBodyRestriction(); foreach (var s in context.statement()) { Contract.Assert(s != null); var w = this.Visit(s); if (w == null) { throw new PreposeParserException("Failed to parse statement", s); } var statement = w.GetValue(); if (statement != null) { if (statement is BodyTransform) { bt = bt.Compose((BodyTransform)statement); continue; } if (statement is CompositeBodyRestriction) { br = br.And((CompositeBodyRestriction)statement); continue; } throw new PreposeParserException("Invalid return type", s); } } var pose = new Pose(context.ID().GetText(), bt, br); if (this.Poses.ContainsKey(pose.Name)) { throw new PreposeParserException("Pose " + pose.Name + " has been previously seen.", context); } this.Poses.Add(pose.Name, pose); return(new Wrapper(pose)); }
// ウィザードで更新があった時に実行 void OnWizardUpdate() { saveBodyTransform = bodyTransform; }
//------------------------------------------------------------------------------ // 関数群 //------------------------------------------------------------------------------ void Awake() { bodyTransform = saveBodyTransform; Debug.Log("Awake"); }
internal Wrapper(BodyTransform transform) { this.value = transform; }