예제 #1
0
        /// <summary>
        /// Преобразовывает координаты всех объектов в мировую систему координат,
        /// обновляет BoundingRectangle
        /// </summary>
        private List <ObjectVertices> PreprocessObjects(List <RawSceneObject> objects)
        {
            List <ObjectVertices> objVertices = new List <ObjectVertices>();

            for (var i = 0; i != objects.Count; ++i)
            {
                var curObj = new ObjectVertices()
                {
                    Idx = i
                };

                foreach (var mesh in objects[i].Model.Meshes)
                {
                    curObj.Vertices = new Vector3[mesh.Vertices.Count];
                    for (var j = 0; j < curObj.Vertices.Length; ++j)
                    {
                        curObj.Vertices[j] = Vector3.Transform(mesh.Vertices[j], objects[i].WorldMatrix);
                    }

                    objVertices.Add(curObj);

                    var curBox = BoundingBox.CreateFromPoints(curObj.Vertices);
                    boundingRectangle = BoundingBox.CreateMerged(boundingRectangle, curBox);
                }
            }
            return(objVertices);
        }
예제 #2
0
        /// <summary>
        /// Преобразовывает координаты всех объектов в мировую систему координат,
        /// обновляет BoundingRectangle
        /// </summary>
        private List<ObjectVertices> PreprocessObjects(List<RawSceneObject> objects)
        {
            List<ObjectVertices> objVertices = new List<ObjectVertices>();
             for (var i = 0; i != objects.Count; ++i)
             {
            var curObj = new ObjectVertices() { Idx = i };

            foreach (var mesh in objects[i].Model.Meshes)
            {
               curObj.Vertices = new Vector3[mesh.Vertices.Count];
               for (var j = 0; j < curObj.Vertices.Length; ++j)
                  curObj.Vertices[j] = Vector3.Transform(mesh.Vertices[j], objects[i].WorldMatrix);

               objVertices.Add(curObj);

               var curBox = BoundingBox.CreateFromPoints(curObj.Vertices);
               boundingRectangle = BoundingBox.CreateMerged(boundingRectangle, curBox);
            }
             }
             return objVertices;
        }