Esempio n. 1
0
    //private bool InitializeMesh;


    private void Start()
    {
        PositionControlPoints = new List <Transform>();
        meshCage      = objCage.GetComponent <MeshFilter>().mesh;
        meshModel     = objModel.GetComponent <MeshFilter>().mesh;
        cageVertices  = meshCage.vertices;
        modelVertices = meshModel.vertices;
        initialControlPointPosition  = meshCage.vertices;
        initialModelVerticesPosition = meshModel.vertices;
        trisCage  = meshCage.triangles;
        trisModel = meshModel.triangles;

        functionality          = GameObject.Find("Selection Manager").GetComponent <Functionality>();
        readFileComputeNewcage = GameObject.Find("Selection Manager").GetComponent <ReadFileComputeNewcage>();
        readJson = GameObject.Find("Selection Manager").GetComponent <ReadJson>();
        treatSelectionManager = GameObject.Find("Selection Manager").GetComponent <TreatSelectionManager>();
        UpdateModification    = true;
        //InitializeMesh = false;
        //scale = 1;
        //collision = false;
        InitializedControlPoints      = new GameObject();
        InitializedControlPoints.name = "Initialized Control Points";
        InitializedControlPoints.tag  = "InitializeParent";
        _initializedControlPoints     = InitializedControlPoints.transform;

        //CreateControlPoints();

        ComputeBarCenter(modelVertices);

        //scaleCenter = barCenter;
    }
Esempio n. 2
0
    private void Awake()
    {
        levelSelect      = 0;
        levelChange      = false;
        segmentTags      = new List <string>();
        meshCage         = objCage.GetComponent <MeshFilter>().mesh;
        meshModel        = objModel.GetComponent <MeshFilter>().mesh;
        cageVertices     = meshCage.vertices;
        modelVertices    = meshModel.vertices;
        trisCage         = meshCage.triangles;
        trisModel        = meshModel.triangles;
        colorArrayLevelx = new Color[modelVertices.Length];

        meshCreateControlPoints = GameObject.Find("Selection Manager").GetComponent <MeshCreateControlPoints>();
        readFileComputeNewcage  = GameObject.Find("Selection Manager").GetComponent <ReadFileComputeNewcage>();

        jsonString1 =
            //File.ReadAllText(Application.streamingAssetsPath + "/" + "hand_segmentation_hierarchical_nails.txt");
            File.ReadAllText(Application.streamingAssetsPath + "/" + "flowered_teapot_simplified.ant.txt");

        data1 = JsonMapper.ToObject(jsonString1);

        //Instantiation of the the model's segments(instances of the segments)
        for (var i = 0; i < data1["annotations"].Count; i++)
        {
            var datatest = JsonMapper.ToJson(data1["annotations"][i]);
            importedSegmentsOfDifferentLevels.Add(JsonMapper.ToObject <ModelData>(datatest));
            Debug.Log("To see the colors  " + importedSegmentsOfDifferentLevels[i].color[0]);
        }


        var segmentLevel0 = importedSegmentsOfDifferentLevels.Find(x => x.father == -1);

        rootNode = new TreeNode(segmentLevel0);
        //loop for levels
        for (var i = 0; i < importedSegmentsOfDifferentLevels.Count; i++)
        {
            if (importedSegmentsOfDifferentLevels[i].id == segmentLevel0.id)
            {
                continue;
            }
            var node   = new TreeNode(importedSegmentsOfDifferentLevels[i]);
            var father =
                importedSegmentsOfDifferentLevels.Find(x => x.id == importedSegmentsOfDifferentLevels[i].father);


            if (rootNode.GetDescendent(father.id) != null)
            {
                rootNode.GetDescendent(father.id).Add(node);
            }
        }

        var idMax = importedSegmentsOfDifferentLevels.Max(x => x.id);

        Debug.Log("levelMax detected " + idMax);


        levelMax = rootNode.GetDescendent(idMax).GetLevel();
        Debug.Log("levelMax " + levelMax);

        levelRange.text = "0-" + levelMax;
        TreatmentCPLevelx();


        var hierarchy = new GameObject();

        hierarchy.name = "Hierarchy";
        rootNode.GetGameobject().transform.parent = hierarchy.transform;

        //BFS(rootNode);


        //Create the color arrays for the different-level-model
    }