public void MergeWith(CollisionNode external) { foreach (CollisionObject co in external._objects) { _objects.Add(co); } SignalPropertyChange(); }
public void MergeWith() { CollisionNode external = null; OpenFileDialog o = new OpenFileDialog(); o.Filter = "Collision (*.coll)|*.coll"; o.Title = "Please select a collision to merge with."; if (o.ShowDialog() == DialogResult.OK) { if ((external = (CollisionNode)NodeFactory.FromFile(null, o.FileName)) != null) { MergeWith(external); } } }
public CollisionObject(CollisionNode parent, ColObject *entry) { _modelName = entry->ModelName; _boneName = entry->BoneName; _unk1 = entry->_unk1; _unk2 = entry->_unk2; _unk3 = entry->_unk3; _flags = (ushort)entry->_flags; _unk5 = entry->_unk5; _unk6 = entry->_unk6; _boneIndex = entry->_boneIndex; _boxMax = entry->_boxMax; _boxMin = entry->_boxMin; int pointCount = entry->_pointCount; int pointOffset = entry->_pointOffset; int planeCount = entry->_planeCount; int planeOffset = entry->_planeIndex; ColPlane *pPlane = &parent.Header->Planes[planeOffset]; //Decode points BVec2 *pPtr = &parent.Header->Points[pointOffset]; for (int i = 0; i < pointCount; i++) { new CollisionLink(this, *pPtr++); } //CollisionPlane plane; for (int i = 0; i < planeCount; i++) { if (pPlane->_point1 != pPlane->_point2) { new CollisionPlane(this, pPlane++, pointOffset); } } }
public CollisionObject(CollisionNode parent, ColObject* entry) { _modelName = entry->ModelName; _boneName = entry->BoneName; _unk1 = entry->_unk1; _unk2 = entry->_unk2; _unk3 = entry->_unk3; _flags = (ushort)entry->_flags; _unk5 = entry->_unk5; _unk6 = entry->_unk6; _boneIndex = entry->_boneIndex; int pointCount = entry->_pointCount; int pointOffset = entry->_pointOffset; int planeCount = entry->_planeCount; int planeOffset = entry->_planeIndex; ColPlane* pPlane = &parent.Header->Planes[planeOffset]; //Decode points BVec2* pPtr = &parent.Header->Points[pointOffset]; for (int i = 0; i < pointCount; i++) new CollisionLink(this, *pPtr++); //CollisionPlane plane; for (int i = 0; i < planeCount; i++) if (pPlane->_point1 != pPlane->_point2) new CollisionPlane(this, pPlane++, pointOffset); }
public DialogResult ShowDialog(IWin32Window owner, CollisionNode node) { _node = node; try { return ShowDialog(owner); } finally { _node.SignalPropertyChange(); _node = null; } }
private void TargetChanged(CollisionNode node) { ClearSelection(); trackBar1.Value = 0; _snapMatrix = Matrix.Identity; _selectedObject = null; _modelPanel.ClearAll(); _targetNode = node; PopulateModelList(); PopulateObjectList(); if (lstObjects.Items.Count > 0) { lstObjects.SelectedIndex = 0; _selectedObject = lstObjects.Items[0] as CollisionObject; SnapObject(); } ObjectSelected(); _modelPanel.ResetCamera(); }