예제 #1
0
        public static Transform ReadTransform(this Stream stream, bool reverse = false)
        {
            Single2   translation = ReadSingle2(stream, reverse);
            Single2x2 rotation    = ReadSingle2x2(stream, reverse);

            return(new Transform(translation, rotation));
        }
예제 #2
0
 public static void WriteSingle2x2(this Stream stream, Single2x2 value, bool reverse = false)
 {
     stream.WriteSingle(value.XX, reverse);
     stream.WriteSingle(value.XY, reverse);
     stream.WriteSingle(value.YX, reverse);
     stream.WriteSingle(value.YY, reverse);
 }
예제 #3
0
파일: Moveable.cs 프로젝트: widovd/NEUNET
        // ----------------------------------------------------------------------------------------
        #region BaseObject

        protected override void CopyFrom(object o)
        {
            base.CopyFrom(o);
            Moveable value = o as Moveable ?? throw new InvalidTypeException(o, nameof(Moveable), 508235);

            Position = value.Position;
            Rotation = value.Rotation;
        }
예제 #4
0
파일: Segment.cs 프로젝트: widovd/NEUNET
        // ----------------------------------------------------------------------------------------
        #region Segment

        public override void UpdateTransforms()
        // Zet ze 2 aan 2 naast elkaar
        {
            base.UpdateTransforms();
            float w2    = 0.5f * Width;
            float pi2   = (float)(0.5d * PI);
            int   count = Count;

            for (int i = 0; i < count; i++)
            {
                Visual visual = this[i];
                Leg    leg    = visual as Leg ?? throw new VarNullException(nameof(leg), 896174);
                float  sgn    = i % 2 == 0 ? 1 : -1;
                float  x      = (1 + 2 * (i / 2)) * Length / count;
                visual.Transform = new Transform(
                    new Single2(x, sgn * w2),
                    Single2x2.Rotation(sgn * (pi2 + leg.Angle))
                    );
            }
        }
예제 #5
0
파일: Moveable.cs 프로젝트: widovd/NEUNET
 public Moveable(Stream stream, BinarySerializer serializer) : base(stream, serializer)
 {
     Position = stream.ReadSingle2();
     Rotation = stream.ReadSingle2x2();
 }
예제 #6
0
        // ----------------------------------------------------------------------------------------
        #region Constructors

        public Transform(Single2 position, Single2x2 rotation)
        {
            Translation = position;
            Rotation    = rotation;
        }