public ShapeLengthAngleRepresentation(ShapeStructure structure, Vector origin, IEnumerable<double> edgeLengths, IEnumerable<double> edgeAngles, IEnumerable<double> edgeWidths) { if (edgeLengths == null) throw new ArgumentNullException("edgeLengths"); if (edgeAngles == null) throw new ArgumentNullException("edgeAngles"); if (edgeWidths == null) throw new ArgumentNullException("edgeWidths"); if (structure == null) throw new ArgumentNullException("structure"); this.edgeLengths = new ExposableCollection<double>(edgeLengths.ToList()); this.edgeAngles = new ExposableCollection<double>(edgeAngles.ToList()); this.edgeWidths = new ExposableCollection<double>(edgeWidths.ToList()); this.Structure = structure; this.Origin = origin; if (this.edgeLengths.Count != this.Structure.Edges.Count) throw new ArgumentException("Edge lengths count should be equal to edge count.", "edgeLengths"); if (this.edgeAngles.Count != this.Structure.Edges.Count) throw new ArgumentException("Edge angles count should be equal to edge count.", "edgeAngles"); if (this.edgeWidths.Count != this.Structure.Edges.Count) throw new ArgumentException("Edge widths count should be equal to edge count.", "edgeWidths"); }
private void InitExposableCollections() { this.vertexPositionsExposable = new ExposableCollection<Vector>(this.vertexPositions); this.edgeWidthsExposable = new ExposableCollection<double>(this.edgeWidths); }