コード例 #1
0
        private SceneThumbInfo renderSceneThumbnail()
        {
            SceneThumbInfo          sceneThumbInfo  = new SceneThumbInfo();
            ImageRendererProperties imageProperties = new ImageRendererProperties();

            imageProperties.Width                     = SlideImageManager.SceneThumbWidth;
            imageProperties.Height                    = SlideImageManager.SceneThumbHeight;
            imageProperties.AntiAliasingMode          = 2;
            imageProperties.TransparentBackground     = false;
            imageProperties.UseActiveViewportLocation = false;
            imageProperties.OverrideLayers            = true;
            imageProperties.ShowBackground            = false;
            imageProperties.ShowWatermark             = false;
            imageProperties.ShowUIUpdates             = false;
            slide.StartupAction.configureThumbnailProperties(imageProperties);
            imageProperties.CustomizeCameraPosition = (camera, viewport) =>
            {
                SceneNode node        = camera.getParentSceneNode();
                Vector3   position    = node.getDerivedPosition();
                Vector3   lookAt      = imageProperties.CameraLookAt;
                Vector3   topLeft     = SceneViewWindow.Unproject(0, 0, camera.getViewMatrix(), camera.getProjectionMatrix());
                Vector3   bottomRight = SceneViewWindow.Unproject(1, 1, camera.getViewMatrix(), camera.getProjectionMatrix());
                Vector3   include     = imageProperties.IncludePoint;

                //Move camera back more
                float   distance  = -60;
                Vector3 direction = (position - lookAt).normalized();
                node.setPosition(position - (direction * distance));
                camera.lookAt(lookAt);

                Vector2 includeLoc = SceneViewWindow.Project(include, camera.getViewMatrix(), camera.getProjectionMatrix(), imageProperties.Width, imageProperties.Height);
                sceneThumbInfo.IncludeX = (int)includeLoc.x;
                sceneThumbInfo.IncludeY = (int)includeLoc.y;
                sceneThumbInfo.Color    = viewport.getBackgroundColor();
            };

            sceneThumbInfo.SceneThumb = imageRenderer.renderImage(imageProperties);
            return(sceneThumbInfo);
        }