/// <summary> /// Add a new model to the OcTree structure, creating a new node if it /// is necessary. /// </summary> /// <param name="model">Reference to the model to be added.</param> /// <returns>true if the model was added, false otherwise.</returns> public int AddModel(DrawableModel model) { OcTreeNode node = SearchNode(model.Position); NodeType type = NodeType.None; if (model.Model.FileName == "Content/Models/CubeBaseFrontStaircase2-1") { type = NodeType.Staircase1Down; } else if (model.Model.FileName == "Content/Models/CubeBaseFrontStaircase2-2") { type = NodeType.Staircase2Down; } else if (model.Model.FileName == "Content/Models/CubeBaseFrontLadder") { type = NodeType.Ladder; } else if (model.Model.FileName.Contains("Door")) { type = NodeType.Door; } return(node.AddModel(type, model)); }
/// <summary> /// Add a new model to the OcTree structure, creating a new node if it /// is necessary. /// </summary> /// <param name="model">Reference to the model to be added.</param> /// <param name="position">Position of the model.</param> /// <param name="rotation">Rotation of the mode.</param> /// <param name="scale">Scale of the model.</param> /// <returns>true if the model was added, false otherwise.</returns> public int AddModel(GameModel model, Vector3 position, Vector3 rotation, Vector3 scale) { OcTreeNode node = SearchNode(position); DrawableModel newModel = new DrawableModel(model, position, rotation, scale, _modelsStoredInQuadTree++); NodeType type = NodeType.None; if (newModel.Model.FileName == "Content/Models/CubeBaseFrontStaircase2-1") { if (rotation.X == MathHelper.ToRadians(270)) { type = NodeType.Staircase1Up; } else { type = NodeType.Staircase1Down; } } else if (newModel.Model.FileName == "Content/Models/CubeBaseFrontStaircase2-2") { if (rotation.X == MathHelper.ToRadians(270)) { type = NodeType.Staircase2Up; } else { type = NodeType.Staircase2Down; } } else if (newModel.Model.FileName == "Content/Models/CubeBaseFrontLadder") { type = NodeType.Ladder; } else if (newModel.Model.FileName.Contains("Door")) { type = NodeType.Door; } return(node.AddModel(type, newModel)); }