コード例 #1
0
ファイル: Object3D.cs プロジェクト: CyrilToonkit/TK_BaseLib
        public CG_Object3D(SerializationInfo info, StreamingContext ctxt)
        {
            //Get the values from info and assign them to the appropriate properties
            mName       = (string)info.GetValue("Name", typeof(string));
            mAccessName = (string)info.GetValue("AccessName", typeof(string));

            mTrans = (CG_Transform)info.GetValue("Trans", typeof(CG_Transform));
        }
コード例 #2
0
        public static List <CG_Vector3> Transform(List <CG_Vector3> points, CG_Transform cG_Transform, double scale)
        {
            List <CG_Vector3> transformedPoints = new List <CG_Vector3>();

            foreach (CG_Vector3 point in points)
            {
                transformedPoints.Add(new CG_Vector3(point.X * cG_Transform.Scl.X * scale + cG_Transform.Pos.X,
                                                     point.Y * cG_Transform.Scl.Y * scale + cG_Transform.Pos.Y,
                                                     point.Z * cG_Transform.Scl.Z * scale + cG_Transform.Pos.Z));
            }

            return(transformedPoints);
        }
コード例 #3
0
        public Array GetAsArray4(CG_Transform Offset, double scale)
        {
            if (Offset == null)
            {
                Offset = new CG_Transform();
            }

            Array a           = Array.CreateInstance(typeof(object), 4 * PointsCount);
            int   arrayOffset = 0;

            for (int i = 0; i < PointPositions.Length; i++)
            {
                int    compIndex = i % 3;
                double posOffset = 0;
                double sclOffset = scale;

                switch (compIndex)
                {
                case 0:
                    posOffset  = Offset.Pos.X;
                    sclOffset *= Offset.Scl.X;
                    break;

                case 1:
                    posOffset  = Offset.Pos.Y;
                    sclOffset *= Offset.Scl.Y;
                    break;

                case 2:
                    posOffset  = Offset.Pos.Z;
                    sclOffset *= Offset.Scl.Z;
                    break;
                }

                a.SetValue(PointPositions[i] * sclOffset + posOffset, i + arrayOffset);

                //Add fourth dimension
                if (compIndex == 2)
                {
                    arrayOffset += 1;
                    a.SetValue(1, i + arrayOffset);
                }
            }

            return(a);
        }
コード例 #4
0
 public Array GetAsArray4(CG_Transform Offset)
 {
     return(GetAsArray4(Offset, 1));
 }