/// <summary> /// </summary> private static string GetTreeLines(CTree pTree) { string output = ""; foreach (Vector3 p in pTree.Points) { string color = pTree.isValid ? pTree.assignedMaterial.ToString255() : CMaterialManager.GetInvalidMaterial().ToString255(); //int treeIndex = pTree.isValid ? pTree.assignedRefTree.treeIndex : 0; int treeIndex = pTree.treeIndex; CVector3D globalP = CUtils.GetGlobalPosition(p); output += GetPointLine(globalP, 5, (byte)treeIndex, color) + newLine; } return(output); }
public static void AddTrees(bool pValid) //, bool pFake) { List <Tuple <Tuple <int, int>, CTree> > treesToExport = new List <Tuple <Tuple <int, int>, CTree> >(); bool exportTreeStrucure = CParameterSetter.GetBoolSettings(ESettings.exportTreeStructures); bool exportBoxes = CParameterSetter.GetBoolSettings(ESettings.exportTreeBoxes); if (!exportBoxes && !exportTreeStrucure) { return; } foreach (CTree tree in pValid ? CTreeManager.Trees : CTreeManager.InvalidTrees) { treesToExport.Add(new Tuple <Tuple <int, int>, CTree>(tree.peakNormalField.indexInField, tree)); } //special: add not-trees if (!pValid) { foreach (CTree tree in CTreeManager.NotTrees) { treesToExport.Add(new Tuple <Tuple <int, int>, CTree>(tree.peakNormalField.indexInField, tree)); } } treesToExport.Sort((x, y) => x.Item2.treeIndex.CompareTo(y.Item2.treeIndex)); foreach (Tuple <Tuple <int, int>, CTree> exportTree in treesToExport) { Obj obj = exportTree.Item2.GetObj(exportTreeStrucure, false, exportBoxes); if (!pValid) { obj.UseMtl = CMaterialManager.GetInvalidMaterial().Name; } AddObj(exportTree.Item1, obj); } }