Esempio n. 1
0
 private void Draw()
 {
     TinyRendererWrapper.clear();
     TinyRendererWrapper.render();
     byte[] pixels = buffer.GetData();
     Chart.Source = ImageFactory.GetBitmap(pixels, 800, 800, 2400, PixelFormat.Format24bppRgb);
 }
Esempio n. 2
0
        private void button_Load_Model_Click(object sender, RoutedEventArgs e)
        {
            string filePath = getFileNameFromDialog();

            int success = TinyRendererWrapper.init(800, 800, 3, buffer);

            if (success > 0)
            {
                success = TinyRendererWrapper.load_model(filePath);
                if (success > 0)
                {
                    ModelFilePath.Content = filePath;
                    modelLoaded           = true;
                    LoadTexture.IsEnabled = true;
                }
            }
        }
Esempio n. 3
0
        private void button_Load_Texture_Click(object sender, RoutedEventArgs e)
        {
            if (!modelLoaded)
            {
                return;
            }

            string filePath = getFileNameFromDialog();

            int success = TinyRendererWrapper.load_texture(filePath);

            if (success > 0)
            {
                TextureFilePath.Content = filePath;
                loadedSuccessfully      = true;
                tickTimer.IsEnabled     = true;
                Draw();
            }
        }
Esempio n. 4
0
        private void Render_Tick(object sender, EventArgs e)
        {
            if (!loadedSuccessfully)
            {
                return;
            }

            if (paused)
            {
                return;
            }

            if (Mouse.LeftButton == MouseButtonState.Pressed)
            {
                double currentMouseX = Mouse.GetPosition(this).X;
                double differenceX   = Math.Abs(currentMouseX - mouseX);
                bool   right         = currentMouseX > mouseX;
                float  direction     = right ? 1 : -1;
                if (differenceX > DRAG_THRESHOLD && differenceX < MAX_DRAG_DISTANCE)
                {
                    float amount = direction * (float)differenceX / 100.0f;
                    TinyRendererWrapper.rotate(new Vector3(0.0f, amount, 0.0f));
                }

                double currentMouseY = Mouse.GetPosition(this).Y;
                double differenceY   = Math.Abs(currentMouseY - mouseY);
                bool   up            = currentMouseY > mouseY;
                direction = up ? 1 : -1;
                if (differenceY > DRAG_THRESHOLD && differenceY < MAX_DRAG_DISTANCE)
                {
                    float amount = direction * (float)differenceY / 100.0f;
                    TinyRendererWrapper.rotate(new Vector3(amount, 0.0f, 0.0f));
                }
            }

            mouseX = Mouse.GetPosition(this).X;
            mouseY = Mouse.GetPosition(this).Y;

            Draw();
        }