// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen // SPDX-License-Identifier: BSD-3-Clause // // This example tests the vtkCompassWidget #include #include #include #include #include #include #include #include #include #include #include constexpr char eventLog[] = "# StreamVersion 1.2\n" "ExposeEvent 0 479 0 0 0 0 0\n" "RenderEvent 0 479 0 0 0 0 0\n" "EnterEvent 639 454 0 0 0 0 0\n" "MouseMoveEvent 639 454 0 0 0 0 0\n" "RenderEvent 639 454 0 0 0 0 0\n" "MouseMoveEvent 638 455 0 0 0 0 0\n" "RenderEvent 638 455 0 0 0 0 0\n" "MouseMoveEvent 635 457 0 0 0 0 0\n" "RenderEvent 635 457 0 0 0 0 0\n" "MouseMoveEvent 626 460 0 0 0 0 0\n" "RenderEvent 626 460 0 0 0 0 0\n" "MouseMoveEvent 619 463 0 0 0 0 0\n" "RenderEvent 619 463 0 0 0 0 0\n" "MouseMoveEvent 617 463 0 0 0 0 0\n" "RenderEvent 617 463 0 0 0 0 0\n" "MouseMoveEvent 617 463 0 0 0 0 0\n" "RenderEvent 617 463 0 0 0 0 0\n" "MouseMoveEvent 617 462 0 0 0 0 0\n" "RenderEvent 617 462 0 0 0 0 0\n" "MouseMoveEvent 616 462 0 0 0 0 0\n" "RenderEvent 616 462 0 0 0 0 0\n" "MouseMoveEvent 616 462 0 0 0 0 0\n" "RenderEvent 616 462 0 0 0 0 0\n" "MouseMoveEvent 615 462 0 0 0 0 0\n" "RenderEvent 615 462 0 0 0 0 0\n" "MouseMoveEvent 614 462 0 0 0 0 0\n" "RenderEvent 614 462 0 0 0 0 0\n" "MouseMoveEvent 609 462 0 0 0 0 0\n" "RenderEvent 609 462 0 0 0 0 0\n" "MouseMoveEvent 605 462 0 0 0 0 0\n" "RenderEvent 605 462 0 0 0 0 0\n" "MouseMoveEvent 602 462 0 0 0 0 0\n" "RenderEvent 602 462 0 0 0 0 0\n" "MouseMoveEvent 598 463 0 0 0 0 0\n" "RenderEvent 598 463 0 0 0 0 0\n" "MouseMoveEvent 593 463 0 0 0 0 0\n" "RenderEvent 593 463 0 0 0 0 0\n" "MouseMoveEvent 592 464 0 0 0 0 0\n" "RenderEvent 592 464 0 0 0 0 0\n" "MouseMoveEvent 591 464 0 0 0 0 0\n" "RenderEvent 591 464 0 0 0 0 0\n" "MouseMoveEvent 590 465 0 0 0 0 0\n" "RenderEvent 590 465 0 0 0 0 0\n" "MouseMoveEvent 590 466 0 0 0 0 0\n" "RenderEvent 590 466 0 0 0 0 0\n" "MouseMoveEvent 590 466 0 0 0 0 0\n" "RenderEvent 590 466 0 0 0 0 0\n" "MouseMoveEvent 590 466 0 0 0 0 0\n" "RenderEvent 590 466 0 0 0 0 0\n" "MouseMoveEvent 590 467 0 0 0 0 0\n" "RenderEvent 590 467 0 0 0 0 0\n" "LeftButtonPressEvent 590 467 0 0 0 0 0\n" "RenderEvent 590 467 0 0 0 0 0\n" "TimerEvent 590 467 0 0 0 0 0\n" "RenderEvent 590 467 0 0 0 0 0\n" "TimerEvent 590 467 0 0 0 0 0\n" "RenderEvent 590 467 0 0 0 0 0\n" "MouseMoveEvent 591 467 0 0 0 0 0\n" "RenderEvent 591 467 0 0 0 0 0\n" "MouseMoveEvent 591 467 0 0 0 0 0\n" "RenderEvent 591 467 0 0 0 0 0\n" "TimerEvent 591 467 0 0 0 0 0\n" "RenderEvent 591 467 0 0 0 0 0\n" "MouseMoveEvent 599 466 0 0 0 0 0\n" "RenderEvent 599 466 0 0 0 0 0\n" "TimerEvent 599 466 0 0 0 0 0\n" "RenderEvent 599 466 0 0 0 0 0\n" "MouseMoveEvent 601 465 0 0 0 0 0\n" "RenderEvent 601 465 0 0 0 0 0\n" "TimerEvent 601 465 0 0 0 0 0\n" "RenderEvent 601 465 0 0 0 0 0\n" "MouseMoveEvent 604 464 0 0 0 0 0\n" "RenderEvent 604 464 0 0 0 0 0\n" "TimerEvent 604 464 0 0 0 0 0\n" "RenderEvent 604 464 0 0 0 0 0\n" "MouseMoveEvent 605 464 0 0 0 0 0\n" "RenderEvent 605 464 0 0 0 0 0\n" "TimerEvent 605 464 0 0 0 0 0\n" "RenderEvent 605 464 0 0 0 0 0\n" "MouseMoveEvent 605 464 0 0 0 0 0\n" "RenderEvent 605 464 0 0 0 0 0\n" "TimerEvent 605 464 0 0 0 0 0\n" "RenderEvent 605 464 0 0 0 0 0\n" "MouseMoveEvent 606 463 0 0 0 0 0\n" "RenderEvent 606 463 0 0 0 0 0\n" "TimerEvent 606 463 0 0 0 0 0\n" "RenderEvent 606 463 0 0 0 0 0\n" "MouseMoveEvent 608 459 0 0 0 0 0\n" "RenderEvent 608 459 0 0 0 0 0\n" "TimerEvent 608 459 0 0 0 0 0\n" "RenderEvent 608 459 0 0 0 0 0\n" "MouseMoveEvent 608 458 0 0 0 0 0\n" "RenderEvent 608 458 0 0 0 0 0\n" "TimerEvent 608 458 0 0 0 0 0\n" "RenderEvent 608 458 0 0 0 0 0\n" "MouseMoveEvent 608 458 0 0 0 0 0\n" "RenderEvent 608 458 0 0 0 0 0\n" "TimerEvent 608 458 0 0 0 0 0\n" "RenderEvent 608 458 0 0 0 0 0\n" "MouseMoveEvent 608 457 0 0 0 0 0\n" "RenderEvent 608 457 0 0 0 0 0\n" "TimerEvent 608 457 0 0 0 0 0\n" "RenderEvent 608 457 0 0 0 0 0\n" "MouseMoveEvent 609 455 0 0 0 0 0\n" "RenderEvent 609 455 0 0 0 0 0\n" "TimerEvent 609 455 0 0 0 0 0\n" "RenderEvent 609 455 0 0 0 0 0\n" "TimerEvent 609 455 0 0 0 0 0\n" "RenderEvent 609 455 0 0 0 0 0\n" "TimerEvent 609 455 0 0 0 0 0\n" "RenderEvent 609 455 0 0 0 0 0\n" "TimerEvent 609 455 0 0 0 0 0\n" "RenderEvent 609 455 0 0 0 0 0\n" "TimerEvent 609 455 0 0 0 0 0\n" "RenderEvent 609 455 0 0 0 0 0\n" "TimerEvent 609 455 0 0 0 0 0\n" "RenderEvent 609 455 0 0 0 0 0\n" "TimerEvent 609 455 0 0 0 0 0\n" "RenderEvent 609 455 0 0 0 0 0\n" "TimerEvent 609 455 0 0 0 0 0\n" "RenderEvent 609 455 0 0 0 0 0\n" "TimerEvent 609 455 0 0 0 0 0\n" "RenderEvent 609 455 0 0 0 0 0\n" "TimerEvent 609 455 0 0 0 0 0\n" "RenderEvent 609 455 0 0 0 0 0\n" "TimerEvent 609 455 0 0 0 0 0\n" "RenderEvent 609 455 0 0 0 0 0\n" "TimerEvent 609 455 0 0 0 0 0\n" "RenderEvent 609 455 0 0 0 0 0\n" "TimerEvent 609 455 0 0 0 0 0\n" "RenderEvent 609 455 0 0 0 0 0\n" "TimerEvent 609 455 0 0 0 0 0\n" "RenderEvent 609 455 0 0 0 0 0\n" "MouseMoveEvent 608 456 0 0 0 0 0\n" "RenderEvent 608 456 0 0 0 0 0\n" "TimerEvent 608 456 0 0 0 0 0\n" "RenderEvent 608 456 0 0 0 0 0\n" "MouseMoveEvent 605 459 0 0 0 0 0\n" "RenderEvent 605 459 0 0 0 0 0\n" "TimerEvent 605 459 0 0 0 0 0\n" "RenderEvent 605 459 0 0 0 0 0\n" "MouseMoveEvent 591 464 0 0 0 0 0\n" "RenderEvent 591 464 0 0 0 0 0\n" "TimerEvent 591 464 0 0 0 0 0\n" "RenderEvent 591 464 0 0 0 0 0\n" "MouseMoveEvent 575 468 0 0 0 0 0\n" "RenderEvent 575 468 0 0 0 0 0\n" "TimerEvent 575 468 0 0 0 0 0\n" "RenderEvent 575 468 0 0 0 0 0\n" "MouseMoveEvent 574 468 0 0 0 0 0\n" "RenderEvent 574 468 0 0 0 0 0\n" "TimerEvent 574 468 0 0 0 0 0\n" "RenderEvent 574 468 0 0 0 0 0\n" "MouseMoveEvent 571 468 0 0 0 0 0\n" "RenderEvent 571 468 0 0 0 0 0\n" "TimerEvent 571 468 0 0 0 0 0\n" "RenderEvent 571 468 0 0 0 0 0\n" "MouseMoveEvent 567 466 0 0 0 0 0\n" "RenderEvent 567 466 0 0 0 0 0\n" "TimerEvent 567 466 0 0 0 0 0\n" "RenderEvent 567 466 0 0 0 0 0\n" "MouseMoveEvent 558 460 0 0 0 0 0\n" "RenderEvent 558 460 0 0 0 0 0\n" "TimerEvent 558 460 0 0 0 0 0\n" "RenderEvent 558 460 0 0 0 0 0\n" "MouseMoveEvent 551 453 0 0 0 0 0\n" "RenderEvent 551 453 0 0 0 0 0\n" "TimerEvent 551 453 0 0 0 0 0\n" "RenderEvent 551 453 0 0 0 0 0\n" "MouseMoveEvent 547 445 0 0 0 0 0\n" "RenderEvent 547 445 0 0 0 0 0\n" "TimerEvent 547 445 0 0 0 0 0\n" "RenderEvent 547 445 0 0 0 0 0\n" "MouseMoveEvent 546 440 0 0 0 0 0\n" "RenderEvent 546 440 0 0 0 0 0\n" "TimerEvent 546 440 0 0 0 0 0\n" "RenderEvent 546 440 0 0 0 0 0\n" "MouseMoveEvent 546 436 0 0 0 0 0\n" "RenderEvent 546 436 0 0 0 0 0\n" "TimerEvent 546 436 0 0 0 0 0\n" "RenderEvent 546 436 0 0 0 0 0\n" "MouseMoveEvent 546 433 0 0 0 0 0\n" "RenderEvent 546 433 0 0 0 0 0\n" "TimerEvent 546 433 0 0 0 0 0\n" "RenderEvent 546 433 0 0 0 0 0\n" "MouseMoveEvent 547 430 0 0 0 0 0\n" "RenderEvent 547 430 0 0 0 0 0\n" "TimerEvent 547 430 0 0 0 0 0\n" "RenderEvent 547 430 0 0 0 0 0\n" "TimerEvent 547 430 0 0 0 0 0\n" "RenderEvent 547 430 0 0 0 0 0\n" "TimerEvent 547 430 0 0 0 0 0\n" "RenderEvent 547 430 0 0 0 0 0\n" "TimerEvent 547 430 0 0 0 0 0\n" "RenderEvent 547 430 0 0 0 0 0\n" "TimerEvent 547 430 0 0 0 0 0\n" "RenderEvent 547 430 0 0 0 0 0\n" "TimerEvent 547 430 0 0 0 0 0\n" "RenderEvent 547 430 0 0 0 0 0\n" "TimerEvent 547 430 0 0 0 0 0\n" "RenderEvent 547 430 0 0 0 0 0\n" "TimerEvent 547 430 0 0 0 0 0\n" "RenderEvent 547 430 0 0 0 0 0\n" "TimerEvent 547 430 0 0 0 0 0\n" "RenderEvent 547 430 0 0 0 0 0\n" "MouseMoveEvent 548 429 0 0 0 0 0\n" "RenderEvent 548 429 0 0 0 0 0\n" "MouseMoveEvent 548 428 0 0 0 0 0\n" "RenderEvent 548 428 0 0 0 0 0\n" "TimerEvent 548 428 0 0 0 0 0\n" "RenderEvent 548 428 0 0 0 0 0\n" "MouseMoveEvent 554 421 0 0 0 0 0\n" "RenderEvent 554 421 0 0 0 0 0\n" "TimerEvent 554 421 0 0 0 0 0\n" "RenderEvent 554 421 0 0 0 0 0\n" "MouseMoveEvent 557 416 0 0 0 0 0\n" "RenderEvent 557 416 0 0 0 0 0\n" "TimerEvent 557 416 0 0 0 0 0\n" "RenderEvent 557 416 0 0 0 0 0\n" "MouseMoveEvent 559 415 0 0 0 0 0\n" "RenderEvent 559 415 0 0 0 0 0\n" "TimerEvent 559 415 0 0 0 0 0\n" "RenderEvent 559 415 0 0 0 0 0\n" "MouseMoveEvent 559 414 0 0 0 0 0\n" "RenderEvent 559 414 0 0 0 0 0\n" "TimerEvent 559 414 0 0 0 0 0\n" "RenderEvent 559 414 0 0 0 0 0\n" "MouseMoveEvent 560 413 0 0 0 0 0\n" "RenderEvent 560 413 0 0 0 0 0\n" "TimerEvent 560 413 0 0 0 0 0\n" "RenderEvent 560 413 0 0 0 0 0\n" "MouseMoveEvent 560 413 0 0 0 0 0\n" "RenderEvent 560 413 0 0 0 0 0\n" "TimerEvent 560 413 0 0 0 0 0\n" "RenderEvent 560 413 0 0 0 0 0\n" "MouseMoveEvent 560 413 0 0 0 0 0\n" "RenderEvent 560 413 0 0 0 0 0\n" "TimerEvent 560 413 0 0 0 0 0\n" "RenderEvent 560 413 0 0 0 0 0\n" "MouseMoveEvent 560 412 0 0 0 0 0\n" "RenderEvent 560 412 0 0 0 0 0\n" "TimerEvent 560 412 0 0 0 0 0\n" "RenderEvent 560 412 0 0 0 0 0\n" "MouseMoveEvent 561 412 0 0 0 0 0\n" "RenderEvent 561 412 0 0 0 0 0\n" "TimerEvent 561 412 0 0 0 0 0\n" "RenderEvent 561 412 0 0 0 0 0\n" "MouseMoveEvent 562 409 0 0 0 0 0\n" "RenderEvent 562 409 0 0 0 0 0\n" "TimerEvent 562 409 0 0 0 0 0\n" "RenderEvent 562 409 0 0 0 0 0\n" "MouseMoveEvent 563 408 0 0 0 0 0\n" "RenderEvent 563 408 0 0 0 0 0\n" "TimerEvent 563 408 0 0 0 0 0\n" "RenderEvent 563 408 0 0 0 0 0\n" "MouseMoveEvent 563 406 0 0 0 0 0\n" "RenderEvent 563 406 0 0 0 0 0\n" "TimerEvent 563 406 0 0 0 0 0\n" "RenderEvent 563 406 0 0 0 0 0\n" "MouseMoveEvent 564 403 0 0 0 0 0\n" "RenderEvent 564 403 0 0 0 0 0\n" "TimerEvent 564 403 0 0 0 0 0\n" "RenderEvent 564 403 0 0 0 0 0\n" "MouseMoveEvent 564 402 0 0 0 0 0\n" "RenderEvent 564 402 0 0 0 0 0\n" "TimerEvent 564 402 0 0 0 0 0\n" "RenderEvent 564 402 0 0 0 0 0\n" "MouseMoveEvent 566 399 0 0 0 0 0\n" "RenderEvent 566 399 0 0 0 0 0\n" "TimerEvent 566 399 0 0 0 0 0\n" "RenderEvent 566 399 0 0 0 0 0\n" "MouseMoveEvent 566 398 0 0 0 0 0\n" "RenderEvent 566 398 0 0 0 0 0\n" "TimerEvent 566 398 0 0 0 0 0\n" "RenderEvent 566 398 0 0 0 0 0\n" "TimerEvent 566 398 0 0 0 0 0\n" "RenderEvent 566 398 0 0 0 0 0\n" "LeftButtonReleaseEvent 566 398 0 0 0 0 0\n" "RenderEvent 566 398 0 0 0 0 0\n" "MouseMoveEvent 566 398 0 0 0 0 0\n" "RenderEvent 566 398 0 0 0 0 0\n" "MouseMoveEvent 563 402 0 0 0 0 0\n" "RenderEvent 563 402 0 0 0 0 0\n" "MouseMoveEvent 558 411 0 0 0 0 0\n" "RenderEvent 558 411 0 0 0 0 0\n" "MouseMoveEvent 553 419 0 0 0 0 0\n" "RenderEvent 553 419 0 0 0 0 0\n" "MouseMoveEvent 550 424 0 0 0 0 0\n" "RenderEvent 550 424 0 0 0 0 0\n" "MouseMoveEvent 546 432 0 0 0 0 0\n" "RenderEvent 546 432 0 0 0 0 0\n" "MouseMoveEvent 542 437 0 0 0 0 0\n" "RenderEvent 542 437 0 0 0 0 0\n" "MouseMoveEvent 541 439 0 0 0 0 0\n" "RenderEvent 541 439 0 0 0 0 0\n" "MouseMoveEvent 540 440 0 0 0 0 0\n" "RenderEvent 540 440 0 0 0 0 0\n" "MouseMoveEvent 540 440 0 0 0 0 0\n" "RenderEvent 540 440 0 0 0 0 0\n" "MouseMoveEvent 539 440 0 0 0 0 0\n" "RenderEvent 539 440 0 0 0 0 0\n" "MouseMoveEvent 539 440 0 0 0 0 0\n" "RenderEvent 539 440 0 0 0 0 0\n" "MouseMoveEvent 538 440 0 0 0 0 0\n" "RenderEvent 538 440 0 0 0 0 0\n" "MouseMoveEvent 537 440 0 0 0 0 0\n" "RenderEvent 537 440 0 0 0 0 0\n" "MouseMoveEvent 536 440 0 0 0 0 0\n" "RenderEvent 536 440 0 0 0 0 0\n" "MouseMoveEvent 536 440 0 0 0 0 0\n" "RenderEvent 536 440 0 0 0 0 0\n" "MouseMoveEvent 535 441 0 0 0 0 0\n" "RenderEvent 535 441 0 0 0 0 0\n" "MouseMoveEvent 534 441 0 0 0 0 0\n" "RenderEvent 534 441 0 0 0 0 0\n" "MouseMoveEvent 534 441 0 0 0 0 0\n" "RenderEvent 534 441 0 0 0 0 0\n" "MouseMoveEvent 533 441 0 0 0 0 0\n" "RenderEvent 533 441 0 0 0 0 0\n" "MouseMoveEvent 533 441 0 0 0 0 0\n" "RenderEvent 533 441 0 0 0 0 0\n" "LeftButtonPressEvent 533 441 0 0 0 0 0\n" "RenderEvent 533 441 0 0 0 0 0\n" "TimerEvent 533 441 0 0 0 0 0\n" "RenderEvent 533 441 0 0 0 0 0\n" "MouseMoveEvent 532 441 0 0 0 0 0\n" "RenderEvent 532 441 0 0 0 0 0\n" "MouseMoveEvent 532 441 0 0 0 0 0\n" "RenderEvent 532 441 0 0 0 0 0\n" "TimerEvent 532 441 0 0 0 0 0\n" "RenderEvent 532 441 0 0 0 0 0\n" "MouseMoveEvent 530 444 0 0 0 0 0\n" "RenderEvent 530 444 0 0 0 0 0\n" "TimerEvent 530 444 0 0 0 0 0\n" "RenderEvent 530 444 0 0 0 0 0\n" "MouseMoveEvent 530 447 0 0 0 0 0\n" "RenderEvent 530 447 0 0 0 0 0\n" "TimerEvent 530 447 0 0 0 0 0\n" "RenderEvent 530 447 0 0 0 0 0\n" "MouseMoveEvent 530 448 0 0 0 0 0\n" "RenderEvent 530 448 0 0 0 0 0\n" "TimerEvent 530 448 0 0 0 0 0\n" "RenderEvent 530 448 0 0 0 0 0\n" "MouseMoveEvent 530 449 0 0 0 0 0\n" "RenderEvent 530 449 0 0 0 0 0\n" "TimerEvent 530 449 0 0 0 0 0\n" "RenderEvent 530 449 0 0 0 0 0\n" "MouseMoveEvent 530 449 0 0 0 0 0\n" "RenderEvent 530 449 0 0 0 0 0\n" "TimerEvent 530 449 0 0 0 0 0\n" "RenderEvent 530 449 0 0 0 0 0\n" "MouseMoveEvent 530 450 0 0 0 0 0\n" "RenderEvent 530 450 0 0 0 0 0\n" "TimerEvent 530 450 0 0 0 0 0\n" "RenderEvent 530 450 0 0 0 0 0\n" "MouseMoveEvent 530 451 0 0 0 0 0\n" "RenderEvent 530 451 0 0 0 0 0\n" "TimerEvent 530 451 0 0 0 0 0\n" "RenderEvent 530 451 0 0 0 0 0\n" "TimerEvent 530 451 0 0 0 0 0\n" "RenderEvent 530 451 0 0 0 0 0\n" "TimerEvent 530 451 0 0 0 0 0\n" "RenderEvent 530 451 0 0 0 0 0\n" "TimerEvent 530 451 0 0 0 0 0\n" "RenderEvent 530 451 0 0 0 0 0\n" "MouseMoveEvent 530 451 0 0 0 0 0\n" "RenderEvent 530 451 0 0 0 0 0\n" "TimerEvent 530 451 0 0 0 0 0\n" "RenderEvent 530 451 0 0 0 0 0\n" "MouseMoveEvent 530 452 0 0 0 0 0\n" "RenderEvent 530 452 0 0 0 0 0\n" "TimerEvent 530 452 0 0 0 0 0\n" "RenderEvent 530 452 0 0 0 0 0\n" "MouseMoveEvent 530 452 0 0 0 0 0\n" "RenderEvent 530 452 0 0 0 0 0\n" "TimerEvent 530 452 0 0 0 0 0\n" "RenderEvent 530 452 0 0 0 0 0\n" "TimerEvent 530 452 0 0 0 0 0\n" "RenderEvent 530 452 0 0 0 0 0\n" "TimerEvent 530 452 0 0 0 0 0\n" "RenderEvent 530 452 0 0 0 0 0\n" "TimerEvent 530 452 0 0 0 0 0\n" "RenderEvent 530 452 0 0 0 0 0\n" "MouseMoveEvent 530 452 0 0 0 0 0\n" "RenderEvent 530 452 0 0 0 0 0\n" "TimerEvent 530 452 0 0 0 0 0\n" "RenderEvent 530 452 0 0 0 0 0\n" "MouseMoveEvent 530 446 0 0 0 0 0\n" "RenderEvent 530 446 0 0 0 0 0\n" "TimerEvent 530 446 0 0 0 0 0\n" "RenderEvent 530 446 0 0 0 0 0\n" "MouseMoveEvent 531 443 0 0 0 0 0\n" "RenderEvent 531 443 0 0 0 0 0\n" "TimerEvent 531 443 0 0 0 0 0\n" "RenderEvent 531 443 0 0 0 0 0\n" "MouseMoveEvent 532 437 0 0 0 0 0\n" "RenderEvent 532 437 0 0 0 0 0\n" "TimerEvent 532 437 0 0 0 0 0\n" "RenderEvent 532 437 0 0 0 0 0\n" "MouseMoveEvent 533 430 0 0 0 0 0\n" "RenderEvent 533 430 0 0 0 0 0\n" "TimerEvent 533 430 0 0 0 0 0\n" "RenderEvent 533 430 0 0 0 0 0\n" "MouseMoveEvent 533 428 0 0 0 0 0\n" "RenderEvent 533 428 0 0 0 0 0\n" "TimerEvent 533 428 0 0 0 0 0\n" "RenderEvent 533 428 0 0 0 0 0\n" "MouseMoveEvent 534 425 0 0 0 0 0\n" "RenderEvent 534 425 0 0 0 0 0\n" "TimerEvent 534 425 0 0 0 0 0\n" "RenderEvent 534 425 0 0 0 0 0\n" "MouseMoveEvent 534 424 0 0 0 0 0\n" "RenderEvent 534 424 0 0 0 0 0\n" "TimerEvent 534 424 0 0 0 0 0\n" "RenderEvent 534 424 0 0 0 0 0\n" "MouseMoveEvent 534 424 0 0 0 0 0\n" "RenderEvent 534 424 0 0 0 0 0\n" "TimerEvent 534 424 0 0 0 0 0\n" "RenderEvent 534 424 0 0 0 0 0\n" "TimerEvent 534 424 0 0 0 0 0\n" "RenderEvent 534 424 0 0 0 0 0\n" "MouseMoveEvent 534 423 0 0 0 0 0\n" "RenderEvent 534 423 0 0 0 0 0\n" "MouseMoveEvent 534 423 0 0 0 0 0\n" "RenderEvent 534 423 0 0 0 0 0\n" "TimerEvent 534 423 0 0 0 0 0\n" "RenderEvent 534 423 0 0 0 0 0\n" "MouseMoveEvent 534 422 0 0 0 0 0\n" "RenderEvent 534 422 0 0 0 0 0\n" "TimerEvent 534 422 0 0 0 0 0\n" "RenderEvent 534 422 0 0 0 0 0\n" "TimerEvent 534 422 0 0 0 0 0\n" "RenderEvent 534 422 0 0 0 0 0\n" "MouseMoveEvent 534 422 0 0 0 0 0\n" "RenderEvent 534 422 0 0 0 0 0\n" "TimerEvent 534 422 0 0 0 0 0\n" "RenderEvent 534 422 0 0 0 0 0\n" "MouseMoveEvent 534 421 0 0 0 0 0\n" "RenderEvent 534 421 0 0 0 0 0\n" "TimerEvent 534 421 0 0 0 0 0\n" "RenderEvent 534 421 0 0 0 0 0\n" "MouseMoveEvent 534 421 0 0 0 0 0\n" "RenderEvent 534 421 0 0 0 0 0\n" "TimerEvent 534 421 0 0 0 0 0\n" "RenderEvent 534 421 0 0 0 0 0\n" "MouseMoveEvent 534 420 0 0 0 0 0\n" "RenderEvent 534 420 0 0 0 0 0\n" "TimerEvent 534 420 0 0 0 0 0\n" "RenderEvent 534 420 0 0 0 0 0\n" "TimerEvent 534 420 0 0 0 0 0\n" "RenderEvent 534 420 0 0 0 0 0\n" "TimerEvent 534 420 0 0 0 0 0\n" "RenderEvent 534 420 0 0 0 0 0\n" "TimerEvent 534 420 0 0 0 0 0\n" "RenderEvent 534 420 0 0 0 0 0\n" "TimerEvent 534 420 0 0 0 0 0\n" "RenderEvent 534 420 0 0 0 0 0\n" "TimerEvent 534 420 0 0 0 0 0\n" "RenderEvent 534 420 0 0 0 0 0\n" "TimerEvent 534 420 0 0 0 0 0\n" "RenderEvent 534 420 0 0 0 0 0\n" "MouseMoveEvent 534 419 0 0 0 0 0\n" "RenderEvent 534 419 0 0 0 0 0\n" "MouseMoveEvent 534 418 0 0 0 0 0\n" "RenderEvent 534 418 0 0 0 0 0\n" "TimerEvent 534 418 0 0 0 0 0\n" "RenderEvent 534 418 0 0 0 0 0\n" "TimerEvent 534 418 0 0 0 0 0\n" "RenderEvent 534 418 0 0 0 0 0\n" "TimerEvent 534 418 0 0 0 0 0\n" "RenderEvent 534 418 0 0 0 0 0\n" "TimerEvent 534 418 0 0 0 0 0\n" "RenderEvent 534 418 0 0 0 0 0\n" "LeftButtonReleaseEvent 534 418 0 0 0 0 0\n" "RenderEvent 534 418 0 0 0 0 0\n" "MouseMoveEvent 534 419 0 0 0 0 0\n" "RenderEvent 534 419 0 0 0 0 0\n" "MouseMoveEvent 533 419 0 0 0 0 0\n" "RenderEvent 533 419 0 0 0 0 0\n" "MouseMoveEvent 531 422 0 0 0 0 0\n" "RenderEvent 531 422 0 0 0 0 0\n" "MouseMoveEvent 528 424 0 0 0 0 0\n" "RenderEvent 528 424 0 0 0 0 0\n" "MouseMoveEvent 524 427 0 0 0 0 0\n" "RenderEvent 524 427 0 0 0 0 0\n" "MouseMoveEvent 520 429 0 0 0 0 0\n" "RenderEvent 520 429 0 0 0 0 0\n" "MouseMoveEvent 518 430 0 0 0 0 0\n" "RenderEvent 518 430 0 0 0 0 0\n" "MouseMoveEvent 516 430 0 0 0 0 0\n" "RenderEvent 516 430 0 0 0 0 0\n" "MouseMoveEvent 515 431 0 0 0 0 0\n" "RenderEvent 515 431 0 0 0 0 0\n" "MouseMoveEvent 515 431 0 0 0 0 0\n" "RenderEvent 515 431 0 0 0 0 0\n" "MouseMoveEvent 514 431 0 0 0 0 0\n" "RenderEvent 514 431 0 0 0 0 0\n" "LeftButtonPressEvent 514 431 0 0 0 0 0\n" "RenderEvent 514 431 0 0 0 0 0\n" "TimerEvent 514 431 0 0 0 0 0\n" "RenderEvent 514 431 0 0 0 0 0\n" "TimerEvent 514 431 0 0 0 0 0\n" "RenderEvent 514 431 0 0 0 0 0\n" "MouseMoveEvent 514 432 0 0 0 0 0\n" "RenderEvent 514 432 0 0 0 0 0\n" "MouseMoveEvent 514 432 0 0 0 0 0\n" "RenderEvent 514 432 0 0 0 0 0\n" "TimerEvent 514 432 0 0 0 0 0\n" "RenderEvent 514 432 0 0 0 0 0\n" "MouseMoveEvent 513 436 0 0 0 0 0\n" "RenderEvent 513 436 0 0 0 0 0\n" "TimerEvent 513 436 0 0 0 0 0\n" "RenderEvent 513 436 0 0 0 0 0\n" "MouseMoveEvent 513 442 0 0 0 0 0\n" "RenderEvent 513 442 0 0 0 0 0\n" "TimerEvent 513 442 0 0 0 0 0\n" "RenderEvent 513 442 0 0 0 0 0\n" "MouseMoveEvent 513 444 0 0 0 0 0\n" "RenderEvent 513 444 0 0 0 0 0\n" "TimerEvent 513 444 0 0 0 0 0\n" "RenderEvent 513 444 0 0 0 0 0\n" "MouseMoveEvent 513 445 0 0 0 0 0\n" "RenderEvent 513 445 0 0 0 0 0\n" "TimerEvent 513 445 0 0 0 0 0\n" "RenderEvent 513 445 0 0 0 0 0\n" "MouseMoveEvent 513 446 0 0 0 0 0\n" "RenderEvent 513 446 0 0 0 0 0\n" "TimerEvent 513 446 0 0 0 0 0\n" "RenderEvent 513 446 0 0 0 0 0\n" "MouseMoveEvent 513 448 0 0 0 0 0\n" "RenderEvent 513 448 0 0 0 0 0\n" "TimerEvent 513 448 0 0 0 0 0\n" "RenderEvent 513 448 0 0 0 0 0\n" "MouseMoveEvent 512 452 0 0 0 0 0\n" "RenderEvent 512 452 0 0 0 0 0\n" "TimerEvent 512 452 0 0 0 0 0\n" "RenderEvent 512 452 0 0 0 0 0\n" "MouseMoveEvent 512 454 0 0 0 0 0\n" "RenderEvent 512 454 0 0 0 0 0\n" "TimerEvent 512 454 0 0 0 0 0\n" "RenderEvent 512 454 0 0 0 0 0\n" "TimerEvent 512 454 0 0 0 0 0\n" "RenderEvent 512 454 0 0 0 0 0\n" "TimerEvent 512 454 0 0 0 0 0\n" "RenderEvent 512 454 0 0 0 0 0\n" "TimerEvent 512 454 0 0 0 0 0\n" "RenderEvent 512 454 0 0 0 0 0\n" "TimerEvent 512 454 0 0 0 0 0\n" "RenderEvent 512 454 0 0 0 0 0\n" "TimerEvent 512 454 0 0 0 0 0\n" "RenderEvent 512 454 0 0 0 0 0\n" "MouseMoveEvent 512 453 0 0 0 0 0\n" "RenderEvent 512 453 0 0 0 0 0\n" "TimerEvent 512 453 0 0 0 0 0\n" "RenderEvent 512 453 0 0 0 0 0\n" "MouseMoveEvent 512 451 0 0 0 0 0\n" "RenderEvent 512 451 0 0 0 0 0\n" "TimerEvent 512 451 0 0 0 0 0\n" "RenderEvent 512 451 0 0 0 0 0\n" "MouseMoveEvent 512 439 0 0 0 0 0\n" "RenderEvent 512 439 0 0 0 0 0\n" "TimerEvent 512 439 0 0 0 0 0\n" "RenderEvent 512 439 0 0 0 0 0\n" "MouseMoveEvent 513 432 0 0 0 0 0\n" "RenderEvent 513 432 0 0 0 0 0\n" "TimerEvent 513 432 0 0 0 0 0\n" "RenderEvent 513 432 0 0 0 0 0\n" "MouseMoveEvent 513 425 0 0 0 0 0\n" "RenderEvent 513 425 0 0 0 0 0\n" "TimerEvent 513 425 0 0 0 0 0\n" "RenderEvent 513 425 0 0 0 0 0\n" "MouseMoveEvent 514 422 0 0 0 0 0\n" "RenderEvent 514 422 0 0 0 0 0\n" "TimerEvent 514 422 0 0 0 0 0\n" "RenderEvent 514 422 0 0 0 0 0\n" "MouseMoveEvent 514 420 0 0 0 0 0\n" "RenderEvent 514 420 0 0 0 0 0\n" "TimerEvent 514 420 0 0 0 0 0\n" "RenderEvent 514 420 0 0 0 0 0\n" "MouseMoveEvent 514 419 0 0 0 0 0\n" "RenderEvent 514 419 0 0 0 0 0\n" "TimerEvent 514 419 0 0 0 0 0\n" "RenderEvent 514 419 0 0 0 0 0\n" "MouseMoveEvent 514 416 0 0 0 0 0\n" "RenderEvent 514 416 0 0 0 0 0\n" "TimerEvent 514 416 0 0 0 0 0\n" "RenderEvent 514 416 0 0 0 0 0\n" "MouseMoveEvent 514 415 0 0 0 0 0\n" "RenderEvent 514 415 0 0 0 0 0\n" "TimerEvent 514 415 0 0 0 0 0\n" "RenderEvent 514 415 0 0 0 0 0\n" "TimerEvent 514 415 0 0 0 0 0\n" "RenderEvent 514 415 0 0 0 0 0\n" "TimerEvent 514 415 0 0 0 0 0\n" "RenderEvent 514 415 0 0 0 0 0\n" "TimerEvent 514 415 0 0 0 0 0\n" "RenderEvent 514 415 0 0 0 0 0\n" "TimerEvent 514 415 0 0 0 0 0\n" "RenderEvent 514 415 0 0 0 0 0\n" "TimerEvent 514 415 0 0 0 0 0\n" "RenderEvent 514 415 0 0 0 0 0\n" "TimerEvent 514 415 0 0 0 0 0\n" "RenderEvent 514 415 0 0 0 0 0\n" "TimerEvent 514 415 0 0 0 0 0\n" "RenderEvent 514 415 0 0 0 0 0\n" "TimerEvent 514 415 0 0 0 0 0\n" "RenderEvent 514 415 0 0 0 0 0\n" "TimerEvent 514 415 0 0 0 0 0\n" "RenderEvent 514 415 0 0 0 0 0\n" "TimerEvent 514 415 0 0 0 0 0\n" "RenderEvent 514 415 0 0 0 0 0\n" "MouseMoveEvent 514 415 0 0 0 0 0\n" "RenderEvent 514 415 0 0 0 0 0\n" "TimerEvent 514 415 0 0 0 0 0\n" "RenderEvent 514 415 0 0 0 0 0\n" "MouseMoveEvent 514 416 0 0 0 0 0\n" "RenderEvent 514 416 0 0 0 0 0\n" "TimerEvent 514 416 0 0 0 0 0\n" "RenderEvent 514 416 0 0 0 0 0\n" "MouseMoveEvent 514 416 0 0 0 0 0\n" "RenderEvent 514 416 0 0 0 0 0\n" "TimerEvent 514 416 0 0 0 0 0\n" "RenderEvent 514 416 0 0 0 0 0\n" "LeftButtonReleaseEvent 514 416 0 0 0 0 0\n" "RenderEvent 514 416 0 0 0 0 0\n" "MouseMoveEvent 515 416 0 0 0 0 0\n" "RenderEvent 515 416 0 0 0 0 0\n" "MouseMoveEvent 515 417 0 0 0 0 0\n" "RenderEvent 515 417 0 0 0 0 0\n" "MouseMoveEvent 515 418 0 0 0 0 0\n" "RenderEvent 515 418 0 0 0 0 0\n" "MouseMoveEvent 519 423 0 0 0 0 0\n" "RenderEvent 519 423 0 0 0 0 0\n" "MouseMoveEvent 529 434 0 0 0 0 0\n" "RenderEvent 529 434 0 0 0 0 0\n" "MouseMoveEvent 551 454 0 0 0 0 0\n" "RenderEvent 551 454 0 0 0 0 0\n" "MouseMoveEvent 563 464 0 0 0 0 0\n" "RenderEvent 563 464 0 0 0 0 0\n" "MouseMoveEvent 568 471 0 0 0 0 0\n" "RenderEvent 568 471 0 0 0 0 0\n" "MouseMoveEvent 570 474 0 0 0 0 0\n" "RenderEvent 570 474 0 0 0 0 0\n" "MouseMoveEvent 571 477 0 0 0 0 0\n" "RenderEvent 571 477 0 0 0 0 0\n" "MouseMoveEvent 572 479 0 0 0 0 0\n" "RenderEvent 572 479 0 0 0 0 0\n" "LeaveEvent 572 480 0 0 0 0 0\n" "ExitEvent 572 480 0 0 0 0 0\n" "EnterEvent 602 479 0 0 0 0 0\n" "MouseMoveEvent 602 479 0 0 0 0 0\n" "RenderEvent 602 479 0 0 0 0 0\n" "MouseMoveEvent 603 478 0 0 0 0 0\n" "RenderEvent 603 478 0 0 0 0 0\n" "MouseMoveEvent 606 473 0 0 0 0 0\n" "RenderEvent 606 473 0 0 0 0 0\n" "MouseMoveEvent 610 466 0 0 0 0 0\n" "RenderEvent 610 466 0 0 0 0 0\n" "MouseMoveEvent 611 463 0 0 0 0 0\n" "RenderEvent 611 463 0 0 0 0 0\n" "MouseMoveEvent 612 462 0 0 0 0 0\n" "RenderEvent 612 462 0 0 0 0 0\n" "MouseMoveEvent 613 461 0 0 0 0 0\n" "RenderEvent 613 461 0 0 0 0 0\n" "MouseMoveEvent 614 461 0 0 0 0 0\n" "RenderEvent 614 461 0 0 0 0 0\n" "MouseMoveEvent 614 462 0 0 0 0 0\n" "RenderEvent 614 462 0 0 0 0 0\n" "MouseMoveEvent 615 462 0 0 0 0 0\n" "RenderEvent 615 462 0 0 0 0 0\n" "MouseMoveEvent 616 465 0 0 0 0 0\n" "RenderEvent 616 465 0 0 0 0 0\n" "MouseMoveEvent 616 466 0 0 0 0 0\n" "RenderEvent 616 466 0 0 0 0 0\n" "MouseMoveEvent 616 467 0 0 0 0 0\n" "RenderEvent 616 467 0 0 0 0 0\n" "MouseMoveEvent 617 468 0 0 0 0 0\n" "RenderEvent 617 468 0 0 0 0 0\n" "MouseMoveEvent 617 470 0 0 0 0 0\n" "RenderEvent 617 470 0 0 0 0 0\n" "MouseMoveEvent 617 475 0 0 0 0 0\n" "RenderEvent 617 475 0 0 0 0 0\n" "MouseMoveEvent 617 480 0 0 0 0 0\n" "RenderEvent 617 480 0 0 0 0 0\n" "LeaveEvent 617 480 0 0 0 0 0\n"; class vtkICWValueChangedCallback : public vtkCommand { public: static vtkICWValueChangedCallback* New() { return new vtkICWValueChangedCallback(); } void Execute( vtkObject* caller, unsigned long vtkNotUsed(eventId), void* vtkNotUsed(callData)) override { vtkCompassWidget* widget = vtkCompassWidget::SafeDownCast(caller); vtkCamera* camera = widget->GetCurrentRenderer()->GetActiveCamera(); // calculate new camera position from compass widget parameters double distance = widget->GetDistance(); double tilt = widget->GetTilt(); double heading = widget->GetHeading(); double pos[3]; pos[0] = distance * cos(vtkMath::RadiansFromDegrees(heading)) * cos(vtkMath::RadiansFromDegrees(tilt)); pos[1] = distance * sin(vtkMath::RadiansFromDegrees(heading)) * cos(vtkMath::RadiansFromDegrees(tilt)); pos[2] = distance * sin(vtkMath::RadiansFromDegrees(tilt)); camera->SetPosition(pos); camera->SetFocalPoint(0, 0, 0); camera->SetViewUp(0, 0, 1); camera->SetClippingRange(0.1, distance + 1); widget->GetCurrentRenderer()->Render(); } vtkICWValueChangedCallback() = default; }; int TestCompassWidget(int argc, char* argv[]) { // a cube with text on its faces vtkNew actor; actor->GetCubeProperty()->SetColor(0, 0, 1); // a renderer and render window vtkNew renderer; vtkNew renderWindow; renderWindow->AddRenderer(renderer); renderWindow->SetMultiSamples(0); // an interactor vtkNew renderWindowInteractor; renderWindowInteractor->SetRenderWindow(renderWindow); // create the widget and its representation vtkNew compassRepresentation; compassRepresentation->SetMinimumDistance(2); compassRepresentation->SetMaximumDistance(10); vtkNew compassWidget; compassWidget->SetInteractor(renderWindowInteractor); compassWidget->SetRepresentation(compassRepresentation); compassWidget->SetDistance(5.0); compassWidget->SetTiltSpeed(45); compassWidget->SetDistanceSpeed(2); // create the callback vtkNew valueChangedCallback; compassWidget->AddObserver(vtkCommand::WidgetValueChangedEvent, valueChangedCallback); // add the actors to the scene renderer->AddActor(actor); renderWindow->SetSize(640, 480); renderWindow->SetWindowName("CompassWidget"); renderWindow->Render(); compassWidget->EnabledOn(); // no interactor style - camera is moved by widget callback renderWindowInteractor->SetInteractorStyle(nullptr); // set camera to initial position compassWidget->InvokeEvent(vtkCommand::WidgetValueChangedEvent); return vtkTesting::InteractorEventLoop(argc, argv, renderWindowInteractor, eventLog); }