Beispiel #1
0
 private void SetStandardFigure()
 {
     _singleObjectScene.AddFigure(_standardFigure);
     _currentFigure = _standardFigure;
     _importedFigure?.Dispose();
     _importedFigure = null;
 }
Beispiel #2
0
        private void glControl_ContextCreated(object sender, GlControlEventArgs e)
        {
            Control senderControl = (Control)sender;

            _previousMousPosition = new Point(senderControl.ClientSize.Width / 2, senderControl.ClientSize.Height / 2);

            Gl.Enable(EnableCap.DepthTest);

            string vertexShader =
                File.ReadAllText(
                    $"{GlobalConfig.CurrentDirectory}/{GlobalConfig.ShadersDirectory}/{GlobalConfig.FigureVertexShader}");
            string fragmentShader =
                File.ReadAllText(
                    $"{GlobalConfig.CurrentDirectory}/{GlobalConfig.ShadersDirectory}/{GlobalConfig.FigureFragmentShader}");

            _figureShaderProgram = new FigureShaderProgram(new[] { vertexShader }, new[] { fragmentShader });

            _light      = LightBuilder.CreateWhiteLight(LightType.Ambient);
            _light.Type = _defaultLightType;

            _standardFigure          = ModelBuilder.CreateCube(new Vector3(0f, 0f, 0f), _figureShaderProgram.BindAttributes);
            _standardFigure.Material = _defaultMaterial;

            _singleObjectScene = new SingleObjectScene(new Vector3(0f, 0f, 3f));
            _singleObjectScene.AddFigure(_standardFigure);

            _multipleObjectsSceneStartInCenter = new MultipleRandomObjectsScene(new MultipleRandomObjectsScene.Args
            {
                CameraPosition    = new Vector3(0f, 0f, 0f),
                MinObjectPostion  = new Vector3(-50f, -50f, -50f),
                MaxObjectPosition = new Vector3(50f, 50f, 50f),
                ObjectsCount      = 10000
            });
            _multipleObjectsSceneStartInCenter.AddFigure(_standardFigure);

            _multipleObjectsSceneStartOutside = new MultipleRandomObjectsScene(new MultipleRandomObjectsScene.Args
            {
                CameraPosition    = new Vector3(60f, 60f, 60f),
                MinObjectPostion  = new Vector3(-50f, -50f, -50f),
                MaxObjectPosition = new Vector3(50f, 50f, 50f),
                ObjectsCount      = 10000
            });
            _multipleObjectsSceneStartOutside.AddFigure(_standardFigure);

            _currentScene  = _singleObjectScene;
            _currentFigure = _standardFigure;
        }
Beispiel #3
0
 public void Apply(IScene scene)
 {
     scene.AddFigure(this.name, this.figure);
 }