Esempio n. 1
0
        /*
         * public void DrawViewportMeshes(GH_PreviewMeshArgs args)
         * {
         *  if (DisplayMesh != null)
         *      args.Pipeline.DrawMeshShaded(DisplayMesh, args.Material);
         * }
         *
         * public void DrawViewportWires(GH_PreviewWireArgs args)
         * {
         *  if (DisplayMesh != null)
         *      args.Pipeline.DrawMeshWires(DisplayMesh, args.Color);
         * }
         */
        #region Serialization

        public override bool Write(GH_IWriter writer)
        {
            if (Value == null)
            {
                return(false);
            }
            byte[] centrelineBytes = GH_Convert.CommonObjectToByteArray(Value.Centreline);
            writer.SetByteArray("guide", centrelineBytes);

            //writer.SetInt32("num_frames", Value.Frames.Count);

            //for (int i = 0; i < Value.Frames.Count; ++i)
            //{
            //    Plane p = Value.Frames[i].Item2;
            //
            //    writer.SetPlane("frames", i, new GH_IO.Types.GH_Plane(
            //        p.OriginX, p.OriginY, p.OriginZ, p.XAxis.X, p.XAxis.Y, p.XAxis.Z, p.YAxis.X, p.YAxis.Y, p.YAxis.Z));
            //}

            writer.SetInt32("lcx", Value.Data.NumWidth);
            writer.SetInt32("lcy", Value.Data.NumHeight);
            writer.SetDouble("lsx", Value.Data.LamWidth);
            writer.SetDouble("lsy", Value.Data.LamHeight);
            writer.SetInt32("interpolation", (int)Value.Data.InterpolationType);
            writer.SetInt32("samples", Value.Data.Samples);


            return(true);
        }
Esempio n. 2
0
        /*
         * public void DrawViewportMeshes(GH_PreviewMeshArgs args)
         * {
         *  if (DisplayMesh != null)
         *      args.Pipeline.DrawMeshShaded(DisplayMesh, args.Material);
         * }
         *
         * public void DrawViewportWires(GH_PreviewWireArgs args)
         * {
         *  if (DisplayMesh != null)
         *      args.Pipeline.DrawMeshWires(DisplayMesh, args.Color);
         * }
         */

        #region Serialization
        public override bool Write(GH_IWriter writer)
        {
            if (Value == null)
            {
                throw new Exception("GlulamParameter.Value is null.");
            }

            writer.SetByteArray("guide", GH_Convert.CommonObjectToByteArray(Value.Centreline));

            GH_Glulam.WriteCrossSectionOrientation(writer, Value.Orientation);
            GH_GlulamData.WriteGlulamData(writer, Value.Data);

            return(base.Write(writer));
        }
Esempio n. 3
0
        public static void WriteCrossSectionOrientation(GH_IWriter writer, CrossSectionOrientation ori)
        {
            writer.SetString("orientation", ori.ToString());

            switch (ori)
            {
            case RmfOrientation rmf:
                return;

            case PlanarOrientation plan:
                var plane = plan.Plane;
                writer.SetPlane("orientation_plane", new GH_IO.Types.GH_Plane(
                                    plane.Origin.X, plane.Origin.Y, plane.Origin.Z,
                                    plane.XAxis.X, plane.XAxis.Y, plane.XAxis.Z,
                                    plane.YAxis.X, plane.YAxis.Y, plane.YAxis.Z

                                    ));
                return;

            case VectorOrientation vec:
                var v = (Vector3d)vec.GetDriver();
                writer.SetPoint3D("orientation_vector", new GH_IO.Types.GH_Point3D(v.X, v.Y, v.Z));
                return;

            case SurfaceOrientation srf:
                writer.SetByteArray("orientation_surface", GH_Convert.CommonObjectToByteArray(srf.GetDriver() as Brep));
                return;

            case VectorListOrientation vlist:
                writer.SetInt32("orientation_num_vectors", vlist.Vectors.Count);
                writer.SetByteArray("orientation_guide", GH_Convert.CommonObjectToByteArray(vlist.GetCurve()));
                for (int i = 0; i < vlist.Parameters.Count; ++i)
                {
                    writer.SetDouble("orientation_parameter", i, vlist.Parameters[i]);
                    writer.SetPoint3D("orientation_vector", i, new GH_IO.Types.GH_Point3D(
                                          vlist.Vectors[i].X, vlist.Vectors[i].Y, vlist.Vectors[i].Z));
                }
                return;

            default:
                return;
            }
        }
Esempio n. 4
0
 private static void WriteGeometryBase(GH_IWriter writer, GeometryBase data)
 {
     writer.SetString("DataType", "GeometryBase");
     byte[] bytes = GH_Convert.CommonObjectToByteArray(data);
     writer.SetByteArray("Data", bytes);
 }