/// <summary> /// Set Primitive instance parameters /// </summary> /// <param name="index"></param> /// <param name="primitivepara"></param> /// <returns></returns> public virtual string SetPrimitive(int index, PrimitivePara primitivepara) { return "To Be Implemented"; }
/// <summary> /// Init with Custom PrimitivePara and Configuration /// </summary> /// <param name="distance2display"></param> /// <param name="displayratio"></param> /// <param name="displaysize"></param> /// <param name="camera"></param> /// <param name="unit"></param> /// <param name="gd"></param> /// <param name="primitivepara"></param> public Primitive(float distance2display, float displayratio, float displaysize, SLCamera camera, Unit unit, GraphicsDevice gd, PrimitivePara primitivepara) : base(distance2display, displayratio, displaysize, gd, camera, unit) { Para = primitivepara; Init(gd); }
/// <summary> /// Init with Custom PrimitivePara and StiLib Configuration File /// </summary> /// <param name="gd"></param> /// <param name="slconfig"></param> /// <param name="primitivepara"></param> public Primitive(GraphicsDevice gd, AssemblySettings slconfig, PrimitivePara primitivepara) : base(gd, slconfig) { Para = primitivepara; Init(gd); }
/// <summary> /// Init with Default PrimitivePara /// </summary> /// <param name="gd"></param> public Primitive(GraphicsDevice gd) : base(gd) { Para = PrimitivePara.Default; Init(gd); }
/// <summary> /// Init with Custom PrimitivePara /// </summary> /// <param name="gd"></param> /// <param name="primitivepara"></param> public Primitive(GraphicsDevice gd, PrimitivePara primitivepara) : base(gd) { Para = primitivepara; Init(gd); }
/// <summary> /// Sets default PrimitivePara, need Init() /// </summary> public Primitive() { Para = PrimitivePara.Default; }
/// <summary> /// Init according to custom primitive parameters /// </summary> /// <param name="gd"></param> /// <param name="primitivepara"></param> public void Init(GraphicsDevice gd, PrimitivePara primitivepara) { primitivepara.BasePara.contentname = Para.BasePara.contentname; Para = primitivepara; Init(gd); }
/// <summary> /// Gets a LineStrip Primitive Parameters /// </summary> /// <param name="isclose"></param> /// <param name="center"></param> /// <param name="vertices"></param> /// <returns></returns> public static PrimitivePara LineStrip(bool isclose,Vector3 center, VertexPositionColor[] vertices) { VertexPositionColor[] v; if (isclose) { v = new VertexPositionColor[vertices.Length+1]; vertices.CopyTo(v, 0); v[vertices.Length] = vertices[0]; } else { v = vertices; } int[] i = new int[v.Length]; for (int j = 0; j < i.Length; j++) { i[j] = j; } var temp =new PrimitivePara(v, i, vsBasePara.VS_PTypeDefault(VSType.Primitive, PrimitiveType.LineStrip)); temp.BasePara.center = center; return temp; }
/// <summary> /// Gets a LineStrip Primitive Parameters /// </summary> /// <param name="isclose"></param> /// <param name="center"></param> /// <param name="color"></param> /// <param name="points"></param> /// <returns></returns> public static PrimitivePara LineStrip(bool isclose,Vector3 center, Color color, params Vector3[] points) { VertexPositionColor[] v; int[] i; if (isclose) { v = new VertexPositionColor[points.Length + 1]; i = new int[v.Length]; for (int j = 0; j < points.Length; j++) { v[j].Position = points[j]; v[j].Color = color; i[j] = j; } v[points.Length].Position = points[0]; v[points.Length].Color = color; i[points.Length] = points.Length; } else { v = new VertexPositionColor[points.Length]; i = new int[v.Length]; for (int j = 0; j < i.Length; j++) { v[j].Position = points[j]; v[j].Color = color; i[j] = j; } } var temp =new PrimitivePara(v, i, vsBasePara.VS_PTypeDefault(VSType.Primitive, PrimitiveType.LineStrip)); temp.BasePara.center = center; return temp; }
/// <summary> /// Gets a Line Primitive Parameters /// </summary> /// <param name="center"></param> /// <param name="startpoint"></param> /// <param name="startcolor"></param> /// <param name="endpoint"></param> /// <param name="endcolor"></param> /// <returns></returns> public static PrimitivePara Line(Vector3 center, Vector3 startpoint, Color startcolor, Vector3 endpoint, Color endcolor) { var temp= new PrimitivePara(new VertexPositionColor[] { new VertexPositionColor(startpoint, startcolor), new VertexPositionColor(endpoint, endcolor) }, new int[] { 0, 1 }, vsBasePara.VS_PTypeDefault(VSType.Primitive, PrimitiveType.LineList)); temp.BasePara.center = center; return temp; }