public void Add(Body body) { if (!_bodyList.Contains(body)) { _bodyList.Add(body); } }
private void ProcessAddedItems() { //Add any new geometries for (int i = 0; i < geomAddList.Count; i++) { if (!geomList.Contains(geomAddList[i])) { geomAddList[i].isRemoved = false; geomList.Add(geomAddList[i]); //Add the new geometry to the broad phase collider. _broadPhaseCollider.Add(geomAddList[i]); } } geomAddList.Clear(); //Add any new bodies for (int i = 0; i < bodyAddList.Count; i++) { if (!bodyList.Contains(bodyAddList[i])) { bodyList.Add(bodyAddList[i]); } } bodyAddList.Clear(); //Add any new controllers for (int i = 0; i < controllerAddList.Count; i++) { if (!controllerList.Contains(controllerAddList[i])) { controllerList.Add(controllerAddList[i]); } } controllerAddList.Clear(); //Add any new joints for (int i = 0; i < jointAddList.Count; i++) { if (!jointList.Contains(jointAddList[i])) { jointList.Add(jointAddList[i]); } } jointAddList.Clear(); //Add any new springs for (int i = 0; i < springAddList.Count; i++) { if (!springList.Contains(springAddList[i])) { springList.Add(springAddList[i]); } } springAddList.Clear(); }
private void ProcessAddedBodies() { if (_bodyAddList.Count > 0) { foreach (var body in _bodyAddList) { // Add to world list. BodyList.Add(body); BodyAdded?.Invoke(body); } _bodyAddList.Clear(); } }
private void ProcessAddedBodies() { foreach (Body body in _bodyAddList) { // Add to world list. BodyList.Add(body); if (BodyAdded != null) { BodyAdded(body); } } _bodyAddList.Clear(); }
private void ProcessAddedBodies() { for (int i = 0; i < _bodyAddList.Count; i++) { // Add to world list. BodyList.Add(_bodyAddList[i]); if (BodyAdded != null) { BodyAdded(_bodyAddList[i]); } } _bodyAddList.Clear(); }
public AgentDeclarationNode(string name, ArgumentList args, List <INode> body) : base(name, args, new List <INode>()) { this.beliefDeclarations = new List <BeliefDeclarationNode>(); foreach (var node in body) { var belief = node as BeliefDeclarationNode; if (belief != null) { beliefDeclarations.Add(belief); } else { BodyList.Add(node); } } }
/// <summary> /// Create a rigid body. /// Warning: This function is locked during callbacks. /// </summary> /// <returns></returns> public Body CreateBody() { Debug.Assert(!IsLocked); if (IsLocked) { return(null); } Body body = new Body(this); // Add to world doubly linked list. BodyList.Add(body); if (BodyAdded != null) { BodyAdded(body); } return(body); }
public void AddBody(Body newBody) { // Add Body to BodyList BodyList.Add(newBody); _nBodies += 1; }
public virtual void FromStream(Stream s, bool id) { Action <Action> action = delegate(Action a) { try { a(); } catch (Exception) { LoadErrCount++; } }; PmxHeader head = new PmxHeader(); head.FromStreamEx(s); Header.FromHeader(head); head.ElementFormat.WithID = id; action(delegate { ModelInfo.FromStreamEx(s, head.ElementFormat); }); int count = 0; action(delegate { count = PmxStreamHelper.ReadElement_Int32(s); }); VertexList.Clear(); VertexList.Capacity = count; for (int k = 0; k < count; k++) { PmxVertex v = new PmxVertex(); action(delegate { v.FromStreamEx(s, head.ElementFormat); }); VertexList.Add(v); } action(delegate { count = PmxStreamHelper.ReadElement_Int32(s); }); FaceList.Clear(); FaceList.Capacity = count; for (int l = 0; l < count; l++) { int ix = 0; action(delegate { ix = PmxStreamHelper.ReadElement_Int32(s, head.ElementFormat.VertexSize, signed: false); }); FaceList.Add(ix); } PmxTextureTable tx = new PmxTextureTable(); action(delegate { tx.FromStreamEx(s, head.ElementFormat); }); action(delegate { count = PmxStreamHelper.ReadElement_Int32(s); }); MaterialList.Clear(); MaterialList.Capacity = count; for (int m = 0; m < count; m++) { PmxMaterial j = new PmxMaterial(); action(delegate { j.FromStreamEx_TexTable(s, tx, head.ElementFormat); }); MaterialList.Add(j); } action(delegate { count = PmxStreamHelper.ReadElement_Int32(s); }); BoneList.Clear(); BoneList.Capacity = count; for (int n = 0; n < count; n++) { PmxBone b = new PmxBone(); action(delegate { b.FromStreamEx(s, head.ElementFormat); }); BoneList.Add(b); } action(delegate { count = PmxStreamHelper.ReadElement_Int32(s); }); MorphList.Clear(); MorphList.Capacity = count; for (int num = 0; num < count; num++) { PmxMorph morph = new PmxMorph(); action(delegate { morph.FromStreamEx(s, head.ElementFormat); }); MorphList.Add(morph); } action(delegate { count = PmxStreamHelper.ReadElement_Int32(s); }); NodeList.Clear(); NodeList.Capacity = count; for (int num2 = 0; num2 < count; num2++) { PmxNode node = new PmxNode(); action(delegate { node.FromStreamEx(s, head.ElementFormat); }); NodeList.Add(node); if (NodeList[num2].SystemNode) { if (NodeList[num2].Name == "Root") { RootNode = NodeList[num2]; } else if (NodeList[num2].Name == "表情") { ExpNode = NodeList[num2]; } } } action(delegate { count = PmxStreamHelper.ReadElement_Int32(s); }); BodyList.Clear(); BodyList.Capacity = count; for (int num3 = 0; num3 < count; num3++) { PmxBody b2 = new PmxBody(); action(delegate { b2.FromStreamEx(s, head.ElementFormat); }); BodyList.Add(b2); } action(delegate { count = PmxStreamHelper.ReadElement_Int32(s); }); JointList.Clear(); JointList.Capacity = count; for (int num4 = 0; num4 < count; num4++) { PmxJoint i = new PmxJoint(); action(delegate { i.FromStreamEx(s, head.ElementFormat); }); JointList.Add(i); } if (head.Ver >= 2.1f) { action(delegate { count = PmxStreamHelper.ReadElement_Int32(s); }); SoftBodyList.Clear(); SoftBodyList.Capacity = count; for (int num5 = 0; num5 < count; num5++) { PmxSoftBody b3 = new PmxSoftBody(); action(delegate { b3.FromStreamEx(s, head.ElementFormat); }); SoftBodyList.Add(b3); } } if (id) { action(delegate { FilePath = PmxStreamHelper.ReadString(s, head.ElementFormat); }); } head.ElementFormat.WithID = false; }
public void FromPmx(Pmx pmx) { Clear(); FilePath = pmx.FilePath; LoadErrCount = pmx.LoadErrCount; Header = pmx.Header.Clone(); ModelInfo = pmx.ModelInfo.Clone(); int count = pmx.VertexList.Count; VertexList.Capacity = count; for (int i = 0; i < count; i++) { VertexList.Add(pmx.VertexList[i].Clone()); } count = pmx.FaceList.Count; FaceList.Capacity = count; for (int j = 0; j < count; j++) { FaceList.Add(pmx.FaceList[j]); } count = pmx.MaterialList.Count; MaterialList.Capacity = count; for (int k = 0; k < count; k++) { MaterialList.Add(pmx.MaterialList[k].Clone()); } count = pmx.BoneList.Count; BoneList.Capacity = count; for (int l = 0; l < count; l++) { BoneList.Add(pmx.BoneList[l].Clone()); } count = pmx.MorphList.Count; MorphList.Capacity = count; for (int m = 0; m < count; m++) { MorphList.Add(pmx.MorphList[m].Clone()); } count = pmx.NodeList.Count; NodeList.Clear(); NodeList.Capacity = count; for (int n = 0; n < count; n++) { NodeList.Add(pmx.NodeList[n].Clone()); if (NodeList[n].SystemNode) { if (NodeList[n].Name == "Root") { RootNode = NodeList[n]; } else if (NodeList[n].Name == "表情") { ExpNode = NodeList[n]; } } } count = pmx.BodyList.Count; BodyList.Capacity = count; for (int num = 0; num < count; num++) { BodyList.Add(pmx.BodyList[num].Clone()); } count = pmx.JointList.Count; JointList.Capacity = count; for (int num2 = 0; num2 < count; num2++) { JointList.Add(pmx.JointList[num2].Clone()); } count = pmx.SoftBodyList.Count; SoftBodyList.Capacity = count; for (int num3 = 0; num3 < count; num3++) { SoftBodyList.Add(pmx.SoftBodyList[num3].Clone()); } }
/// <summary> /// Processes the added geometries, springs, joints, bodies and controllers. /// </summary> private void ProcessAddedItems() { //Add any new geometries _tempCount = _geomAddList.Count; for (int i = 0; i < _tempCount; i++) { if (!GeomList.Contains(_geomAddList[i])) { _geomAddList[i].InSimulation = true; GeomList.Add(_geomAddList[i]); //Add the new geometry to the broad phase collider. _broadPhaseCollider.Add(_geomAddList[i]); } } _geomAddList.Clear(); //Add any new bodies _tempCount = _bodyAddList.Count; for (int i = 0; i < _tempCount; i++) { if (!BodyList.Contains(_bodyAddList[i])) { BodyList.Add(_bodyAddList[i]); } } _bodyAddList.Clear(); //Add any new controllers _tempCount = _controllerAddList.Count; for (int i = 0; i < _tempCount; i++) { if (!ControllerList.Contains(_controllerAddList[i])) { ControllerList.Add(_controllerAddList[i]); } } _controllerAddList.Clear(); //Add any new joints _tempCount = _jointAddList.Count; for (int i = 0; i < _tempCount; i++) { if (!JointList.Contains(_jointAddList[i])) { JointList.Add(_jointAddList[i]); } } _jointAddList.Clear(); //Add any new springs _tempCount = _springAddList.Count; for (int i = 0; i < _tempCount; i++) { if (!SpringList.Contains(_springAddList[i])) { SpringList.Add(_springAddList[i]); } } _springAddList.Clear(); }