/* * 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); }
/* * 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)); }
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; } }
private static void WriteGeometryBase(GH_IWriter writer, GeometryBase data) { writer.SetString("DataType", "GeometryBase"); byte[] bytes = GH_Convert.CommonObjectToByteArray(data); writer.SetByteArray("Data", bytes); }