Пример #1
0
        public object ComputeSharedParameters(List <Vector4> rotatedModelPoints, List <Vector4> staticPoints, Vector4 translation)
        {
            List <Vector4> transformedPoints = new List <Vector4>();

            int[] XIs = new int[rotatedModelPoints.Count];

            bool    xi;
            Vector4 transformedModelPoint;
            int     idx = 0;

            foreach (Vector4 rotatedModelPoint in rotatedModelPoints)
            {
                transformedModelPoint = rotatedModelPoint + translation;
                transformedPoints.Add(transformedModelPoint);

                xi = staticModelContainmentDetector.GameObjectContains(
                    point: referenceTransform.TransformPoint(transformedModelPoint)
                    );
                XIs[idx++] = xi ? 1 : 0;
            }

            return(new SharedParameters(XIs, transformedPoints));
        }
        private bool ContainmentDetectorTest_Helper(string point_name)
        {
            EditorSceneManager.OpenScene(sceneName);
            GameObject demisphere = GameObject.Find(demispherename);

            GameObject point    = GameObject.Find(point_name);
            Vector3    center   = point.transform.position;
            Vector4    position = new Vector4(center.x, center.y, center.z, 1.0f);

            ContainmentDetector detector = demisphere.GetComponent <ContainmentDetector>();

            //Awake/update is not run by the test
            detector.collider = demisphere.GetComponent <MeshCollider>();

            return(detector.GameObjectContains(position));
        }