// Called when the GameObject is first created.
    protected override void Awake()
    {
        base.Awake();

        surfaceObserver = gameObject.GetComponent <SpatialMappingObserver>();
        Source          = surfaceObserver;
    }
Ejemplo n.º 2
0
        //-----------------------------------------------------------------------------------------------

        #region MonoBehaviour Functions

        /// <summary>
        /// Standard Start function.
        /// </summary>
        private void Start()
        {
            MakingPlanes = false;
            planesParent = new GameObject("SurfacePlanes");
            planesParent.transform.position = Vector3.zero;
            planesParent.transform.rotation = Quaternion.identity;

            m_MappingObserver = SpatialMappingManager.Instance.Source as SpatialMappingObserver;
        }
Ejemplo n.º 3
0
    // Use this for initialization
    void Start()
    {
        // gather static dependenices
        Driver              = EFPContainer.GetComponent <EFPDriver>();
        Observer            = EFPContainer.GetComponent <SpatialMappingObserver>();
        DiagnosticsTextMesh = DiagText.GetComponent <TextMesh>();

        StopWatch.Start();
    }
Ejemplo n.º 4
0
    void Start()
    {
        observer  = GetComponent <SpatialMappingObserver>();
        Density   = observer.Density;
        MeshInter = new Intersector();

        TotalMeshCount  = 0;
        MeshesInView    = 0;
        TrianglesInView = 0;
        VerticesInView  = 0;
    }
Ejemplo n.º 5
0
    void Start()
    {
        observer         = GetComponent <SpatialMappingObserver>();
        Density          = observer.TrianglesPerCubicMeter;
        MeshInter        = new Intersector();
        BoundsVis        = new Visualizer("MeshBounds", "Marker", "Line", DefaultMaterial);
        BoundsVisualized = DefaultVisualizeBounds;

        TotalMeshCount  = 0;
        MeshesInView    = 0;
        TrianglesInView = 0;
        VerticesInView  = 0;
    }
Ejemplo n.º 6
0
    // Use this for initialization
    void Start()
    {
        // gather static dependenices
        Driver   = EFPContainer.GetComponent <EFPDriver>();
        Observer = EFPContainer.GetComponent <SpatialMappingObserver>();

        BoardExists = DefaultToShow;
        if (ShowBoard)
        {
            CreateDiagnostics();
        }

        StopWatch.Start();
    }
Ejemplo n.º 7
0
    public void toggleSpatialMapping()
    {
        SpatialMappingObserver comp = SpatialMappingPrefab.GetComponent <SpatialMappingObserver>();

        if (comp.ObserverState == 0)
        {
            comp.StopObserving();
            SpatialMappingPrefab.SetActive(false);
        }
        else
        {
            SpatialMappingPrefab.SetActive(true);
            comp.StartObserving();
        }
    }
        // Use this for initialization
        void Start()
        {
            SpatialMappingObserver spatialMappingObserver = spatialMapping.GetComponent <SpatialMappingObserver>();

            //メッシュが増えたらそのメッシュのGameオブジェクトにSpatialTextureをAddComponetする。
            spatialMappingObserver.SurfaceAdded += (sender, e) =>
            {
                GameObject meshObj = e.Data.Object;
                if (meshObj.GetComponent <SpatialTexture>() == null)
                {
                    meshObj.AddComponent <SpatialTexture>();
                }
            };

            CameraManager.Instance.UpdateTextureArray = new Action(ApplyAllTexture);
        }
Ejemplo n.º 9
0
    void Start()
    {
        GameObject SpatialMappingObject = GameObject.Find("SpatialMapping");

        onSceneMappingObserver  = SpatialMappingObject.GetComponent <SpatialMappingObserver>();
        onSceneSpatialManager   = SpatialMappingObject.GetComponent <SpatialMappingManager>();
        onSceneGeommetryDivider = SpatialMappingObject.GetComponent <ObjectSurfaceObserver>();

        onSceneMappingObserver.enabled          = false;
        onSceneSpatialManager.autoStartObserver = false;
        onSceneGeommetryDivider.enabled         = false;

        MRCam = GameObject.FindGameObjectWithTag(TAG_MAIN_CAMERA);
        informationObject.transform.position = MRCam.transform.position + MRCam.transform.forward * distanceFromCam;
        informationObject.transform.rotation = Quaternion.LookRotation(informationObject.transform.position - MRCam.transform.position, MRCam.transform.up);
    }
Ejemplo n.º 10
0
        private void Start()
        {
            anchorManager = WorldAnchorManager.Instance;

            var spatialMappingManager = SpatialMappingManager.Instance;

            if (spatialMappingManager == null)
            {
                return;
            }

            mappingObserver = spatialMappingManager.Source as SpatialMappingObserver;
            if (mappingObserver != null)
            {
                mappingObserver.SurfaceAdded += SouvenirManager_OnMappingChanged;
            }
        }
 private void Start()
 {
     spatialMappingObserver = GameObject.Find("SpatialMapping").GetComponent <SpatialMappingObserver>();
 }
Ejemplo n.º 12
0
 public SpatialMappingController(SpatialMappingManager spatialMappingManager, SpatialMappingObserver spatialMappingObserver)
 {
     _spatialMappingManager  = spatialMappingManager;
     _spatialMappingObserver = spatialMappingObserver;
 }
 void Start()
 {
     surfaceObserver = gameObject.GetComponent <SpatialMappingObserver>();
     surfaceObserver.SurfaceAdded   += SurfaceObserver_SurfaceAdded;
     surfaceObserver.SurfaceUpdated += SurfaceObserver_SurfaceUpdated;
 }
Ejemplo n.º 14
0
    // メッシュデータをカメラロールにOBJ形式で出力する
    private bool SaveMesh(Vector3 origin)
    {
        StringBuilder modelData = new StringBuilder();

        int offset = 0;
        int count  = 0;

        // OriginにC点を代入
        SpatialMappingObserver spatialMappingObserver = SpatialMappingManager.Instance.SurfaceObserver;

        if (!spatialMappingObserver.SetObserverOrigin(origin))
        {
            return(false);
        }

        // C地点を示すプリミティブオブジェクトを生成する
        GameObject pointC = GameObject.CreatePrimitive(PrimitiveType.Sphere);

        pointC.transform.position = origin;
        //pointC.transform.localScale = new Vector3(0.2f, 0.2f, 0.2f);

        //if(!ObjExporter.MeshToFile(pointC.GetComponent<MeshFilter>())) return false;
        if (!JsonExporter.VectorToJson(origin))
        {
            return(false);
        }

        Destroy(pointC);

        // Spatial Mappingで取ったMeshFilterを取得する
        List <MeshFilter> meshFilters = SpatialMappingManager.Instance.GetMeshFilters();

        foreach (var filter in meshFilters)
        {
            if (filter != null)
            {
                // メッシュデータはそれぞれのMeshFilterのsharedMeshに入っており、その中のvertices(ジオメトリ頂点)およびtriangles(ポリゴン面要素)を取り出す
                var mesh = filter.sharedMesh;

                modelData.AppendFormat("o object.{0}\n", ++count);

                // ジオメトリ頂点
                foreach (var vertex in mesh.vertices)
                {
                    // ローカル座標をワールド座標に変換する
                    var v = filter.transform.TransformPoint(vertex);
                    modelData.AppendFormat("v {0} {1} {2}\n", -v.x, v.y, v.z); // 左右反転しているためx座標にマイナスを掛ける
                }

                modelData.Append("\n");

                // ポリゴン面要素 (mesh.trianglesの処理が重すぎるためfor文の中で計算するとメモリリークを起こす)
                var   meshTriangles       = mesh.triangles;
                var   meshTrianglesLength = meshTriangles.Length;
                int[] copyMeshTriangles   = new int[meshTrianglesLength];
                Array.Copy(meshTriangles, copyMeshTriangles, meshTrianglesLength);
                for (int i = 0; i < meshTrianglesLength; i += 3)
                {
                    modelData.AppendFormat("f {0} {1} {2}\n",
                                           copyMeshTriangles[i + 0] + 1 + offset,
                                           copyMeshTriangles[i + 1] + 1 + offset,
                                           copyMeshTriangles[i + 2] + 1 + offset);
                }

                modelData.Append("\n");
                modelData.Append("\n");

                offset += mesh.vertexCount;
            }
        }

#if !UNITY_EDITOR
        var ao = KnownFolders.CameraRoll.CreateFileAsync("ns_office.obj", CreationCollisionOption.GenerateUniqueName);
        ao.Completed = async delegate {
            if (ao.Status == Windows.Foundation.AsyncStatus.Completed)
            {
                var file = ao.GetResults();

                using (var stream = await file.OpenAsync(FileAccessMode.ReadWrite))
                {
                    var imageBuffer = Encoding.ASCII.GetBytes(modelData.ToString());
                    await stream.WriteAsync(imageBuffer.AsBuffer());
                }

                Debug.Log("write complete");
            }
        };
#endif
        return(true);
    }