Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        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);
            }
        }