/// <summary> /// Al construir un AreaElement se necesita un prototipo de Propiedades, que define el tipo de elemento que /// se forma. De esta manera, después de construir el elemento no se le puede cambiar el tipo, además de que /// se pueden crear varios elementos con las mismas propiedades. La constructora clona al prototipo, de manera /// que un objeto externo puede crear varios elementos con el mismo objeto de propiedades. /// </summary> /// <param name="prototype">El prototipo de propiedades.</param> public AreaElement(AreaProps prototype) { props = (AreaProps)prototype.Clone(); joints = new Joint[4]; angle = 0; mass = 0; materialTemperature = 0; offsets = new float[4]; //springs = new ManagedList<AreaSprings>(); flipJoints = 0; Joint j = Model.Instance.JointList[1]; int i = 1; while (j == null && i < Model.Instance.JointList.Count) { j = Model.Instance.JointList[i++]; } if (j != null) { J1 = J2 = J3 = j; joints[3] = null; } else { throw new NullReferenceException(Culture.Get("EM0020")); } }
/// <summary> /// Constructora que inicializa el AreaElement con un clon de las propiedades indicadas y los nodos indicados. /// Si los nodos no están en la lista correspondiente, en la posición adecuada, se lanza una NullReferenceException /// Se recomienda usar esta constructora para minimizar el consumo de memoria en Model.Undo /// </summary> /// <param name="prototype">Prototype properties to copy from</param> /// <param name="jointList">Joints to be added to this AreaElement</param> public AreaElement(AreaProps prototype, Joint j1, Joint j2, Joint j3, Joint j4) { props = (AreaProps)prototype.Clone(); joints = new Joint[4]; angle = 0; mass = 0; materialTemperature = 0; offsets = new float[4]; //springs = new ManagedList<AreaSprings>(); if (j1 == null || j2 == null || j3 == null) throw new NullReferenceException(Culture.Get("EM0021")); J1 = j1; J2 = j2; J3 = j3; J4 = j4; }
/// <summary> /// Constructora que inicializa el AreaElement con un clon de las propiedades indicadas y los nodos indicados. /// Si los nodos no están en la lista correspondiente, en la posición adecuada, se lanza una NullReferenceException /// Se recomienda usar esta constructora para minimizar el consumo de memoria en Model.Undo /// </summary> /// <param name="prototype">Prototype properties to copy from</param> /// <param name="jointList">Joints to be added to this AreaElement</param> public AreaElement(AreaProps prototype, Joint j1, Joint j2, Joint j3, Joint j4) { props = (AreaProps)prototype.Clone(); joints = new Joint[4]; angle = 0; mass = 0; materialTemperature = 0; offsets = new float[4]; //springs = new ManagedList<AreaSprings>(); if (j1 == null || j2 == null || j3 == null) { throw new NullReferenceException(Culture.Get("EM0021")); } J1 = j1; J2 = j2; J3 = j3; J4 = j4; }
/// <summary> /// Al construir un AreaElement se necesita un prototipo de Propiedades, que define el tipo de elemento que /// se forma. De esta manera, después de construir el elemento no se le puede cambiar el tipo, además de que /// se pueden crear varios elementos con las mismas propiedades. La constructora clona al prototipo, de manera /// que un objeto externo puede crear varios elementos con el mismo objeto de propiedades. /// </summary> /// <param name="prototype">El prototipo de propiedades.</param> public AreaElement(AreaProps prototype) { props = (AreaProps)prototype.Clone(); joints = new Joint[4]; angle = 0; mass = 0; materialTemperature = 0; offsets = new float[4]; //springs = new ManagedList<AreaSprings>(); flipJoints = 0; Joint j = Model.Instance.JointList[1]; int i = 1; while (j == null && i < Model.Instance.JointList.Count) j = Model.Instance.JointList[i++]; if (j != null) { J1 = J2 = J3 = j; joints[3] = null; } else throw new NullReferenceException(Culture.Get("EM0020")); }