/// <summary>
        /// Vytvoří objekt typu <see cref="Body3D"/> na základě zadaných parametrů. Byl-li již zadaný model
        /// zpracováván, nedochází opětovně k výpočetně náročnému hledání dvojrozměrného tvaru.
        /// </summary>
        /// <param name="model">Trojrozměrný model.</param>
        /// <param name="position">Výchozí pozice objektu ve dvojrozměrném světě.</param>
        /// <param name="bodyType">Typ simulovaného tělesa (statické, kinematické nebo dynamické).</param>
        /// <param name="basicEffectParams">>Parametry pro třídu <see cref="BasicEffect"/>.</param>
        /// <param name="positionZ">Výchozí pozice na ose Z ve trojrozměrném světě.</param>
        /// <returns></returns>
        public Body3D CreateBody3D(
            Model model,
            Vector2 position  = new Vector2(),
            BodyType bodyType = BodyCreator.DEFAULT_BODY_TYPE,
            BasicEffectParams basicEffectParams = null,
            float positionZ = 0f)
        {
            //Tento model ještě nebyl instancí této třídy zpracováván
            if (!_modelVerticesPairs.ContainsKey(model))
            {
                using (Texture2D orthoRender = BitmapRenderer.RenderOrthographic(_graphicsDevice, model))
                {
                    //Najít v bitmapě tvar je výpočetně náročné, proto se to stane pro každý model zpracovávaný touto
                    //třídou jenom jednou
                    List <Vertices> verticesList = BodyCreator.CreateVerticesForBody(
                        orthoRender,
                        ReduceVerticesDistance,
                        TriangulationAlgorithm,
                        GraphicsToSimulationRatio);

                    _modelVerticesPairs.Add(model, verticesList);
                }
            }
            return(ConstructBody3D(model, _world2D, position, bodyType, positionZ, basicEffectParams));
        }
        private Body3D ConstructBody3D(
            Model model,
            World world2D,
            Vector2 position,
            BodyType bodyType,
            float positionZ,
            BasicEffectParams basicEffectParams)
        {
            Body body = BodyCreator.CreateBodyFromVertices(
                _modelVerticesPairs[model],
                world2D,
                position,
                bodyType,
                Density,
                Rotation);

            Body3D body3D = new Body3D(model, body, positionZ)
            {
                BasicEffectParams = basicEffectParams
            };

            return(body3D);
        }