/*========================================================================= Program: Visualization Toolkit Module: TestHandleWidget3D.cxx Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen All rights reserved. See Copyright.txt or http://www.kitware.com/Copyright.htm for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notice for more information. =========================================================================*/ // // This example tests the vtkFixedSizeHandleRepresentation3D class. This // is a 3D handle that maintains a fixed size in display space. This is // useful when placing markers on datasets. The size in pixels may be set via // SetHandleSizeInPixels. This representation renders the markers as spherical // blobs in 3D space with the width as specified above, defaults to 10 pixels. // The handles will have the same size in pixels, give or take a certain // tolerance, as specified by SetHandleSizeToleranceInPixels. The tolerance // defaults to half a pixel. PointPlacers may be used to specify constraints on // the placement of markers. For instance a vtkPolygonalSurfacePointPlacer // will constrain placement of these spherical handles to a surface mesh. #include "vtkActor.h" #include "vtkCommand.h" #include "vtkFixedSizeHandleRepresentation3D.h" #include "vtkHandleWidget.h" #include "vtkPolyData.h" #include "vtkPolyDataMapper.h" #include "vtkProperty.h" #include "vtkRenderWindow.h" #include "vtkRenderWindowInteractor.h" #include "vtkRenderer.h" #include "vtkSmartPointer.h" #include "vtkSphereSource.h" #include "vtkTestUtilities.h" #include "vtkTesting.h" const char TestFixedSizeHandleRepresentation3DLog[] = "# StreamVersion 1\n" "RenderEvent 0 0 0 0 0 0 0\n" "EnterEvent 156 11 0 0 0 0 0\n" "MouseMoveEvent 156 11 0 0 0 0 0\n" "MouseMoveEvent 158 25 0 0 0 0 0\n" "MouseMoveEvent 159 39 0 0 0 0 0\n" "MouseMoveEvent 163 55 0 0 0 0 0\n" "MouseMoveEvent 164 68 0 0 0 0 0\n" "MouseMoveEvent 166 81 0 0 0 0 0\n" "MouseMoveEvent 167 91 0 0 0 0 0\n" "MouseMoveEvent 169 99 0 0 0 0 0\n" "MouseMoveEvent 170 106 0 0 0 0 0\n" "MouseMoveEvent 170 111 0 0 0 0 0\n" "MouseMoveEvent 170 115 0 0 0 0 0\n" "MouseMoveEvent 171 118 0 0 0 0 0\n" "MouseMoveEvent 171 121 0 0 0 0 0\n" "MouseMoveEvent 171 123 0 0 0 0 0\n" "MouseMoveEvent 171 124 0 0 0 0 0\n" "MouseMoveEvent 171 127 0 0 0 0 0\n" "MouseMoveEvent 171 129 0 0 0 0 0\n" "MouseMoveEvent 171 131 0 0 0 0 0\n" "MouseMoveEvent 171 133 0 0 0 0 0\n" "MouseMoveEvent 171 135 0 0 0 0 0\n" "MouseMoveEvent 171 136 0 0 0 0 0\n" "MouseMoveEvent 171 137 0 0 0 0 0\n" "MouseMoveEvent 171 139 0 0 0 0 0\n" "MouseMoveEvent 171 140 0 0 0 0 0\n" "MouseMoveEvent 171 141 0 0 0 0 0\n" "MouseMoveEvent 171 142 0 0 0 0 0\n" "MouseMoveEvent 170 144 0 0 0 0 0\n" "MouseMoveEvent 169 145 0 0 0 0 0\n" "MouseMoveEvent 169 146 0 0 0 0 0\n" "MouseMoveEvent 168 146 0 0 0 0 0\n" "MouseMoveEvent 168 147 0 0 0 0 0\n" "MouseMoveEvent 167 147 0 0 0 0 0\n" "MouseMoveEvent 166 148 0 0 0 0 0\n" "MouseMoveEvent 166 149 0 0 0 0 0\n" "MouseMoveEvent 165 149 0 0 0 0 0\n" "MouseMoveEvent 164 149 0 0 0 0 0\n" "MouseMoveEvent 163 149 0 0 0 0 0\n" "MouseMoveEvent 162 149 0 0 0 0 0\n" "MouseMoveEvent 161 149 0 0 0 0 0\n" "MouseMoveEvent 160 148 0 0 0 0 0\n" "MouseMoveEvent 159 148 0 0 0 0 0\n" "MouseMoveEvent 159 147 0 0 0 0 0\n" "MouseMoveEvent 158 147 0 0 0 0 0\n" "MouseMoveEvent 157 146 0 0 0 0 0\n" "MouseMoveEvent 156 146 0 0 0 0 0\n" "MouseMoveEvent 156 145 0 0 0 0 0\n" "MouseMoveEvent 155 145 0 0 0 0 0\n" "MouseMoveEvent 154 145 0 0 0 0 0\n" "MouseMoveEvent 153 145 0 0 0 0 0\n" "MouseMoveEvent 152 145 0 0 0 0 0\n" "MouseMoveEvent 151 145 0 0 0 0 0\n" "MouseMoveEvent 150 145 0 0 0 0 0\n" "LeftButtonPressEvent 150 145 0 0 0 0 0\n" "RenderEvent 150 145 0 0 0 0 0\n" "MouseMoveEvent 150 144 0 0 0 0 0\n" "RenderEvent 150 144 0 0 0 0 0\n" "MouseMoveEvent 150 141 0 0 0 0 0\n" "RenderEvent 150 141 0 0 0 0 0\n" "MouseMoveEvent 150 138 0 0 0 0 0\n" "RenderEvent 150 138 0 0 0 0 0\n" "MouseMoveEvent 150 133 0 0 0 0 0\n" "RenderEvent 150 133 0 0 0 0 0\n" "MouseMoveEvent 150 130 0 0 0 0 0\n" "RenderEvent 150 130 0 0 0 0 0\n" "MouseMoveEvent 150 127 0 0 0 0 0\n" "RenderEvent 150 127 0 0 0 0 0\n" "MouseMoveEvent 150 125 0 0 0 0 0\n" "RenderEvent 150 125 0 0 0 0 0\n" "MouseMoveEvent 150 123 0 0 0 0 0\n" "RenderEvent 150 123 0 0 0 0 0\n" "MouseMoveEvent 150 122 0 0 0 0 0\n" "RenderEvent 150 122 0 0 0 0 0\n" "MouseMoveEvent 150 121 0 0 0 0 0\n" "RenderEvent 150 121 0 0 0 0 0\n" "LeftButtonReleaseEvent 150 121 0 0 0 0 0\n" "RenderEvent 150 121 0 0 0 0 0\n" "MouseMoveEvent 150 121 0 0 0 0 0\n" "KeyPressEvent 150 121 0 0 116 1 t\n" "CharEvent 150 121 0 0 116 1 t\n" "KeyReleaseEvent 150 121 0 0 116 1 t\n" "MouseMoveEvent 152 119 0 0 0 0 t\n" "MouseMoveEvent 153 117 0 0 0 0 t\n" "MouseMoveEvent 154 115 0 0 0 0 t\n" "MouseMoveEvent 156 114 0 0 0 0 t\n" "MouseMoveEvent 157 112 0 0 0 0 t\n" "MouseMoveEvent 158 112 0 0 0 0 t\n" "MouseMoveEvent 158 111 0 0 0 0 t\n" "MouseMoveEvent 158 111 0 0 0 0 t\n" "MouseMoveEvent 158 111 0 0 0 0 t\n" "MouseMoveEvent 158 111 0 0 0 0 t\n" "RightButtonPressEvent 158 111 0 0 0 0 t\n" "StartInteractionEvent 158 111 0 0 0 0 t\n" "MouseMoveEvent 158 112 0 0 0 0 t\n" "RenderEvent 158 112 0 0 0 0 t\n" "MouseMoveEvent 156 115 0 0 0 0 t\n" "RenderEvent 156 115 0 0 0 0 t\n" "MouseMoveEvent 155 118 0 0 0 0 t\n" "RenderEvent 155 118 0 0 0 0 t\n" "MouseMoveEvent 153 124 0 0 0 0 t\n" "RenderEvent 153 124 0 0 0 0 t\n" "MouseMoveEvent 153 128 0 0 0 0 t\n" "RenderEvent 153 128 0 0 0 0 t\n" "MouseMoveEvent 150 135 0 0 0 0 t\n" "RenderEvent 150 135 0 0 0 0 t\n" "MouseMoveEvent 148 142 0 0 0 0 t\n" "RenderEvent 148 142 0 0 0 0 t\n" "MouseMoveEvent 148 149 0 0 0 0 t\n" "RenderEvent 148 149 0 0 0 0 t\n" "MouseMoveEvent 146 157 0 0 0 0 t\n" "RenderEvent 146 157 0 0 0 0 t\n" "MouseMoveEvent 145 165 0 0 0 0 t\n" "RenderEvent 145 165 0 0 0 0 t\n" "MouseMoveEvent 145 172 0 0 0 0 t\n" "RenderEvent 145 172 0 0 0 0 t\n" "MouseMoveEvent 145 179 0 0 0 0 t\n" "RenderEvent 145 179 0 0 0 0 t\n" "MouseMoveEvent 145 185 0 0 0 0 t\n" "RenderEvent 145 185 0 0 0 0 t\n" "MouseMoveEvent 145 191 0 0 0 0 t\n" "RenderEvent 145 191 0 0 0 0 t\n" "MouseMoveEvent 145 197 0 0 0 0 t\n" "RenderEvent 145 197 0 0 0 0 t\n" "MouseMoveEvent 144 201 0 0 0 0 t\n" "RenderEvent 144 201 0 0 0 0 t\n" "MouseMoveEvent 144 203 0 0 0 0 t\n" "RenderEvent 144 203 0 0 0 0 t\n" "MouseMoveEvent 144 205 0 0 0 0 t\n" "RenderEvent 144 205 0 0 0 0 t\n" "MouseMoveEvent 144 206 0 0 0 0 t\n" "RenderEvent 144 206 0 0 0 0 t\n" "MouseMoveEvent 144 208 0 0 0 0 t\n" "RenderEvent 144 208 0 0 0 0 t\n" "MouseMoveEvent 144 209 0 0 0 0 t\n" "RenderEvent 144 209 0 0 0 0 t\n" "MouseMoveEvent 144 212 0 0 0 0 t\n" "RenderEvent 144 212 0 0 0 0 t\n" "MouseMoveEvent 144 213 0 0 0 0 t\n" "RenderEvent 144 213 0 0 0 0 t\n" "MouseMoveEvent 144 214 0 0 0 0 t\n" "RenderEvent 144 214 0 0 0 0 t\n" "MouseMoveEvent 144 215 0 0 0 0 t\n" "RenderEvent 144 215 0 0 0 0 t\n" "MouseMoveEvent 144 216 0 0 0 0 t\n" "RenderEvent 144 216 0 0 0 0 t\n" "MouseMoveEvent 144 217 0 0 0 0 t\n" "RenderEvent 144 217 0 0 0 0 t\n" "MouseMoveEvent 144 218 0 0 0 0 t\n" "RenderEvent 144 218 0 0 0 0 t\n" "MouseMoveEvent 144 219 0 0 0 0 t\n" "RenderEvent 144 219 0 0 0 0 t\n" "RightButtonReleaseEvent 144 219 0 0 0 0 t\n" "EndInteractionEvent 144 219 0 0 0 0 t\n" "RenderEvent 144 219 0 0 0 0 t\n" "MouseMoveEvent 144 219 0 0 0 0 t\n" "MouseMoveEvent 144 211 0 0 0 0 t\n" "MouseMoveEvent 145 199 0 0 0 0 t\n" "MouseMoveEvent 146 187 0 0 0 0 t\n" "MouseMoveEvent 146 174 0 0 0 0 t\n" "MouseMoveEvent 147 162 0 0 0 0 t\n" "MouseMoveEvent 148 151 0 0 0 0 t\n" "MouseMoveEvent 148 142 0 0 0 0 t\n" "MouseMoveEvent 148 133 0 0 0 0 t\n" "MouseMoveEvent 148 126 0 0 0 0 t\n" "MouseMoveEvent 148 120 0 0 0 0 t\n" "MouseMoveEvent 148 116 0 0 0 0 t\n" "MouseMoveEvent 148 113 0 0 0 0 t\n" "MouseMoveEvent 148 112 0 0 0 0 t\n" "MouseMoveEvent 148 111 0 0 0 0 t\n" "MouseMoveEvent 148 110 0 0 0 0 t\n" "MouseMoveEvent 148 109 0 0 0 0 t\n" "MouseMoveEvent 148 108 0 0 0 0 t\n" "MouseMoveEvent 147 107 0 0 0 0 t\n" "MouseMoveEvent 147 105 0 0 0 0 t\n" "MouseMoveEvent 147 104 0 0 0 0 t\n" "MouseMoveEvent 147 103 0 0 0 0 t\n" "MouseMoveEvent 146 101 0 0 0 0 t\n" "MouseMoveEvent 146 99 0 0 0 0 t\n" "MouseMoveEvent 146 98 0 0 0 0 t\n" "MouseMoveEvent 146 97 0 0 0 0 t\n" "MouseMoveEvent 146 96 0 0 0 0 t\n" "MouseMoveEvent 147 96 0 0 0 0 t\n" "MouseMoveEvent 148 96 0 0 0 0 t\n" "LeftButtonPressEvent 148 96 0 0 0 0 t\n" "RenderEvent 148 96 0 0 0 0 t\n" "MouseMoveEvent 148 97 0 0 0 0 t\n" "RenderEvent 148 97 0 0 0 0 t\n" "MouseMoveEvent 148 98 0 0 0 0 t\n" "RenderEvent 148 98 0 0 0 0 t\n" "MouseMoveEvent 148 103 0 0 0 0 t\n" "RenderEvent 148 103 0 0 0 0 t\n" "MouseMoveEvent 148 107 0 0 0 0 t\n" "RenderEvent 148 107 0 0 0 0 t\n" "MouseMoveEvent 147 114 0 0 0 0 t\n" "RenderEvent 147 114 0 0 0 0 t\n" "MouseMoveEvent 146 120 0 0 0 0 t\n" "RenderEvent 146 120 0 0 0 0 t\n" "MouseMoveEvent 145 124 0 0 0 0 t\n" "RenderEvent 145 124 0 0 0 0 t\n" "MouseMoveEvent 145 128 0 0 0 0 t\n" "RenderEvent 145 128 0 0 0 0 t\n" "MouseMoveEvent 145 133 0 0 0 0 t\n" "RenderEvent 145 133 0 0 0 0 t\n" "MouseMoveEvent 144 136 0 0 0 0 t\n" "RenderEvent 144 136 0 0 0 0 t\n" "MouseMoveEvent 144 140 0 0 0 0 t\n" "RenderEvent 144 140 0 0 0 0 t\n" "MouseMoveEvent 144 144 0 0 0 0 t\n" "RenderEvent 144 144 0 0 0 0 t\n" "MouseMoveEvent 144 147 0 0 0 0 t\n" "RenderEvent 144 147 0 0 0 0 t\n" "MouseMoveEvent 144 151 0 0 0 0 t\n" "RenderEvent 144 151 0 0 0 0 t\n" "MouseMoveEvent 143 155 0 0 0 0 t\n" "RenderEvent 143 155 0 0 0 0 t\n" "MouseMoveEvent 143 158 0 0 0 0 t\n" "RenderEvent 143 158 0 0 0 0 t\n" "MouseMoveEvent 142 160 0 0 0 0 t\n" "RenderEvent 142 160 0 0 0 0 t\n" "MouseMoveEvent 142 162 0 0 0 0 t\n" "RenderEvent 142 162 0 0 0 0 t\n" "MouseMoveEvent 142 164 0 0 0 0 t\n" "RenderEvent 142 164 0 0 0 0 t\n" "MouseMoveEvent 142 165 0 0 0 0 t\n" "RenderEvent 142 165 0 0 0 0 t\n" "MouseMoveEvent 141 166 0 0 0 0 t\n" "RenderEvent 141 166 0 0 0 0 t\n" "MouseMoveEvent 140 168 0 0 0 0 t\n" "RenderEvent 140 168 0 0 0 0 t\n" "MouseMoveEvent 140 169 0 0 0 0 t\n" "RenderEvent 140 169 0 0 0 0 t\n" "MouseMoveEvent 140 170 0 0 0 0 t\n" "RenderEvent 140 170 0 0 0 0 t\n" "MouseMoveEvent 140 169 0 0 0 0 t\n" "RenderEvent 140 169 0 0 0 0 t\n" "LeftButtonReleaseEvent 140 169 0 0 0 0 t\n" "RenderEvent 140 169 0 0 0 0 t\n" "MouseMoveEvent 140 169 0 0 0 0 t\n" "MouseMoveEvent 145 174 0 0 0 0 t\n" "MouseMoveEvent 151 179 0 0 0 0 t\n" "MouseMoveEvent 157 183 0 0 0 0 t\n" "MouseMoveEvent 161 186 0 0 0 0 t\n" "MouseMoveEvent 164 189 0 0 0 0 t\n" "MouseMoveEvent 166 190 0 0 0 0 t\n" "MouseMoveEvent 166 191 0 0 0 0 t\n" "MouseMoveEvent 167 192 0 0 0 0 t\n" "MouseMoveEvent 167 193 0 0 0 0 t\n" "MouseMoveEvent 169 196 0 0 0 0 t\n" "MouseMoveEvent 172 199 0 0 0 0 t\n" "MouseMoveEvent 175 203 0 0 0 0 t\n" "MouseMoveEvent 178 207 0 0 0 0 t\n" "MouseMoveEvent 182 211 0 0 0 0 t\n" "MouseMoveEvent 183 213 0 0 0 0 t\n" "MouseMoveEvent 184 214 0 0 0 0 t\n" "MouseMoveEvent 184 216 0 0 0 0 t\n" "RightButtonPressEvent 184 216 0 0 0 0 t\n" "StartInteractionEvent 184 216 0 0 0 0 t\n" "MouseMoveEvent 183 216 0 0 0 0 t\n" "RenderEvent 183 216 0 0 0 0 t\n" "MouseMoveEvent 182 215 0 0 0 0 t\n" "RenderEvent 182 215 0 0 0 0 t\n" "MouseMoveEvent 181 213 0 0 0 0 t\n" "RenderEvent 181 213 0 0 0 0 t\n" "MouseMoveEvent 181 212 0 0 0 0 t\n" "RenderEvent 181 212 0 0 0 0 t\n" "MouseMoveEvent 180 208 0 0 0 0 t\n" "RenderEvent 180 208 0 0 0 0 t\n" "MouseMoveEvent 179 204 0 0 0 0 t\n" "RenderEvent 179 204 0 0 0 0 t\n" "MouseMoveEvent 178 200 0 0 0 0 t\n" "RenderEvent 178 200 0 0 0 0 t\n" "MouseMoveEvent 177 195 0 0 0 0 t\n" "RenderEvent 177 195 0 0 0 0 t\n" "MouseMoveEvent 177 191 0 0 0 0 t\n" "RenderEvent 177 191 0 0 0 0 t\n" "MouseMoveEvent 176 187 0 0 0 0 t\n" "RenderEvent 176 187 0 0 0 0 t\n" "MouseMoveEvent 175 183 0 0 0 0 t\n" "RenderEvent 175 183 0 0 0 0 t\n" "MouseMoveEvent 174 180 0 0 0 0 t\n" "RenderEvent 174 180 0 0 0 0 t\n" "MouseMoveEvent 174 177 0 0 0 0 t\n" "RenderEvent 174 177 0 0 0 0 t\n" "MouseMoveEvent 174 174 0 0 0 0 t\n" "RenderEvent 174 174 0 0 0 0 t\n" "MouseMoveEvent 173 171 0 0 0 0 t\n" "RenderEvent 173 171 0 0 0 0 t\n" "MouseMoveEvent 173 167 0 0 0 0 t\n" "RenderEvent 173 167 0 0 0 0 t\n" "MouseMoveEvent 173 164 0 0 0 0 t\n" "RenderEvent 173 164 0 0 0 0 t\n" "MouseMoveEvent 173 161 0 0 0 0 t\n" "RenderEvent 173 161 0 0 0 0 t\n" "MouseMoveEvent 172 157 0 0 0 0 t\n" "RenderEvent 172 157 0 0 0 0 t\n" "MouseMoveEvent 172 155 0 0 0 0 t\n" "RenderEvent 172 155 0 0 0 0 t\n" "MouseMoveEvent 172 151 0 0 0 0 t\n" "RenderEvent 172 151 0 0 0 0 t\n" "MouseMoveEvent 172 147 0 0 0 0 t\n" "RenderEvent 172 147 0 0 0 0 t\n" "MouseMoveEvent 171 143 0 0 0 0 t\n" "RenderEvent 171 143 0 0 0 0 t\n" "MouseMoveEvent 171 137 0 0 0 0 t\n" "RenderEvent 171 137 0 0 0 0 t\n" "MouseMoveEvent 171 133 0 0 0 0 t\n" "RenderEvent 171 133 0 0 0 0 t\n" "MouseMoveEvent 171 129 0 0 0 0 t\n" "RenderEvent 171 129 0 0 0 0 t\n" "MouseMoveEvent 171 125 0 0 0 0 t\n" "RenderEvent 171 125 0 0 0 0 t\n" "MouseMoveEvent 171 121 0 0 0 0 t\n" "RenderEvent 171 121 0 0 0 0 t\n" "MouseMoveEvent 171 115 0 0 0 0 t\n" "RenderEvent 171 115 0 0 0 0 t\n" "MouseMoveEvent 171 111 0 0 0 0 t\n" "RenderEvent 171 111 0 0 0 0 t\n" "MouseMoveEvent 171 106 0 0 0 0 t\n" "RenderEvent 171 106 0 0 0 0 t\n" "MouseMoveEvent 171 100 0 0 0 0 t\n" "RenderEvent 171 100 0 0 0 0 t\n" "MouseMoveEvent 171 94 0 0 0 0 t\n" "RenderEvent 171 94 0 0 0 0 t\n" "MouseMoveEvent 171 86 0 0 0 0 t\n" "RenderEvent 171 86 0 0 0 0 t\n" "MouseMoveEvent 171 79 0 0 0 0 t\n" "RenderEvent 171 79 0 0 0 0 t\n" "MouseMoveEvent 171 72 0 0 0 0 t\n" "RenderEvent 171 72 0 0 0 0 t\n" "MouseMoveEvent 171 65 0 0 0 0 t\n" "RenderEvent 171 65 0 0 0 0 t\n" "MouseMoveEvent 171 60 0 0 0 0 t\n" "RenderEvent 171 60 0 0 0 0 t\n" "MouseMoveEvent 171 56 0 0 0 0 t\n" "RenderEvent 171 56 0 0 0 0 t\n" "MouseMoveEvent 171 52 0 0 0 0 t\n" "RenderEvent 171 52 0 0 0 0 t\n" "MouseMoveEvent 171 48 0 0 0 0 t\n" "RenderEvent 171 48 0 0 0 0 t\n" "MouseMoveEvent 171 42 0 0 0 0 t\n" "RenderEvent 171 42 0 0 0 0 t\n" "MouseMoveEvent 171 37 0 0 0 0 t\n" "RenderEvent 171 37 0 0 0 0 t\n" "MouseMoveEvent 171 31 0 0 0 0 t\n" "RenderEvent 171 31 0 0 0 0 t\n" "MouseMoveEvent 171 27 0 0 0 0 t\n" "RenderEvent 171 27 0 0 0 0 t\n" "MouseMoveEvent 171 23 0 0 0 0 t\n" "RenderEvent 171 23 0 0 0 0 t\n" "MouseMoveEvent 171 20 0 0 0 0 t\n" "RenderEvent 171 20 0 0 0 0 t\n" "MouseMoveEvent 171 19 0 0 0 0 t\n" "RenderEvent 171 19 0 0 0 0 t\n" "MouseMoveEvent 172 16 0 0 0 0 t\n" "RenderEvent 172 16 0 0 0 0 t\n" "MouseMoveEvent 172 14 0 0 0 0 t\n" "RenderEvent 172 14 0 0 0 0 t\n" "MouseMoveEvent 173 12 0 0 0 0 t\n" "RenderEvent 173 12 0 0 0 0 t\n" "MouseMoveEvent 173 11 0 0 0 0 t\n" "RenderEvent 173 11 0 0 0 0 t\n" "MouseMoveEvent 173 10 0 0 0 0 t\n" "RenderEvent 173 10 0 0 0 0 t\n" "MouseMoveEvent 173 9 0 0 0 0 t\n" "RenderEvent 173 9 0 0 0 0 t\n" "MouseMoveEvent 173 8 0 0 0 0 t\n" "RenderEvent 173 8 0 0 0 0 t\n" "MouseMoveEvent 173 5 0 0 0 0 t\n" "RenderEvent 173 5 0 0 0 0 t\n" "MouseMoveEvent 173 0 0 0 0 0 t\n" "RenderEvent 173 0 0 0 0 0 t\n" "MouseMoveEvent 173 -4 0 0 0 0 t\n" "RenderEvent 173 -4 0 0 0 0 t\n" "MouseMoveEvent 173 -9 0 0 0 0 t\n" "RenderEvent 173 -9 0 0 0 0 t\n" "MouseMoveEvent 173 -11 0 0 0 0 t\n" "RenderEvent 173 -11 0 0 0 0 t\n" "MouseMoveEvent 173 -13 0 0 0 0 t\n" "RenderEvent 173 -13 0 0 0 0 t\n" "MouseMoveEvent 173 -14 0 0 0 0 t\n" "RenderEvent 173 -14 0 0 0 0 t\n" "MouseMoveEvent 173 -15 0 0 0 0 t\n" "RenderEvent 173 -15 0 0 0 0 t\n" "MouseMoveEvent 173 -16 0 0 0 0 t\n" "RenderEvent 173 -16 0 0 0 0 t\n" "MouseMoveEvent 173 -18 0 0 0 0 t\n" "RenderEvent 173 -18 0 0 0 0 t\n" "MouseMoveEvent 173 -19 0 0 0 0 t\n" "RenderEvent 173 -19 0 0 0 0 t\n" "MouseMoveEvent 173 -21 0 0 0 0 t\n" "RenderEvent 173 -21 0 0 0 0 t\n" "MouseMoveEvent 173 -23 0 0 0 0 t\n" "RenderEvent 173 -23 0 0 0 0 t\n" "MouseMoveEvent 173 -26 0 0 0 0 t\n" "RenderEvent 173 -26 0 0 0 0 t\n" "MouseMoveEvent 173 -29 0 0 0 0 t\n" "RenderEvent 173 -29 0 0 0 0 t\n" "MouseMoveEvent 173 -30 0 0 0 0 t\n" "RenderEvent 173 -30 0 0 0 0 t\n" "MouseMoveEvent 173 -33 0 0 0 0 t\n" "RenderEvent 173 -33 0 0 0 0 t\n" "MouseMoveEvent 173 -36 0 0 0 0 t\n" "RenderEvent 173 -36 0 0 0 0 t\n" "MouseMoveEvent 173 -39 0 0 0 0 t\n" "RenderEvent 173 -39 0 0 0 0 t\n" "MouseMoveEvent 173 -42 0 0 0 0 t\n" "RenderEvent 173 -42 0 0 0 0 t\n" "MouseMoveEvent 173 -46 0 0 0 0 t\n" "RenderEvent 173 -46 0 0 0 0 t\n" "MouseMoveEvent 173 -50 0 0 0 0 t\n" "RenderEvent 173 -50 0 0 0 0 t\n" "MouseMoveEvent 173 -53 0 0 0 0 t\n" "RenderEvent 173 -53 0 0 0 0 t\n" "MouseMoveEvent 173 -56 0 0 0 0 t\n" "RenderEvent 173 -56 0 0 0 0 t\n" "MouseMoveEvent 173 -58 0 0 0 0 t\n" "RenderEvent 173 -58 0 0 0 0 t\n" "MouseMoveEvent 173 -60 0 0 0 0 t\n" "RenderEvent 173 -60 0 0 0 0 t\n" "MouseMoveEvent 173 -62 0 0 0 0 t\n" "RenderEvent 173 -62 0 0 0 0 t\n" "MouseMoveEvent 173 -63 0 0 0 0 t\n" "RenderEvent 173 -63 0 0 0 0 t\n" "MouseMoveEvent 173 -64 0 0 0 0 t\n" "RenderEvent 173 -64 0 0 0 0 t\n" "RightButtonReleaseEvent 173 -64 0 0 0 0 t\n" "EndInteractionEvent 173 -64 0 0 0 0 t\n" "RenderEvent 173 -64 0 0 0 0 t\n" "LeaveEvent 173 -64 0 0 0 0 t\n" "EnterEvent 171 4 0 0 0 0 t\n" "MouseMoveEvent 171 4 0 0 0 0 t\n" "MouseMoveEvent 172 15 0 0 0 0 t\n" "MouseMoveEvent 173 23 0 0 0 0 t\n" "MouseMoveEvent 173 30 0 0 0 0 t\n" "MouseMoveEvent 173 37 0 0 0 0 t\n" "MouseMoveEvent 174 44 0 0 0 0 t\n" "MouseMoveEvent 174 48 0 0 0 0 t\n" "MouseMoveEvent 174 53 0 0 0 0 t\n" "MouseMoveEvent 174 59 0 0 0 0 t\n" "MouseMoveEvent 174 63 0 0 0 0 t\n" "MouseMoveEvent 174 67 0 0 0 0 t\n" "MouseMoveEvent 174 71 0 0 0 0 t\n" "MouseMoveEvent 174 74 0 0 0 0 t\n" "MouseMoveEvent 174 76 0 0 0 0 t\n" "MouseMoveEvent 174 79 0 0 0 0 t\n" "MouseMoveEvent 174 81 0 0 0 0 t\n" "MouseMoveEvent 174 84 0 0 0 0 t\n" "MouseMoveEvent 174 87 0 0 0 0 t\n" "MouseMoveEvent 173 90 0 0 0 0 t\n" "MouseMoveEvent 172 93 0 0 0 0 t\n" "MouseMoveEvent 172 96 0 0 0 0 t\n" "MouseMoveEvent 170 98 0 0 0 0 t\n" "MouseMoveEvent 169 100 0 0 0 0 t\n" "MouseMoveEvent 169 101 0 0 0 0 t\n" "MouseMoveEvent 167 104 0 0 0 0 t\n" "MouseMoveEvent 166 106 0 0 0 0 t\n" "MouseMoveEvent 164 108 0 0 0 0 t\n" "MouseMoveEvent 162 110 0 0 0 0 t\n" "MouseMoveEvent 160 114 0 0 0 0 t\n" "MouseMoveEvent 160 115 0 0 0 0 t\n" "MouseMoveEvent 158 117 0 0 0 0 t\n" "MouseMoveEvent 157 119 0 0 0 0 t\n" "MouseMoveEvent 157 121 0 0 0 0 t\n" "MouseMoveEvent 155 123 0 0 0 0 t\n" "MouseMoveEvent 154 125 0 0 0 0 t\n" "MouseMoveEvent 154 127 0 0 0 0 t\n" "MouseMoveEvent 154 129 0 0 0 0 t\n" "MouseMoveEvent 153 130 0 0 0 0 t\n" "MouseMoveEvent 152 132 0 0 0 0 t\n" "MouseMoveEvent 152 133 0 0 0 0 t\n" "MouseMoveEvent 152 134 0 0 0 0 t\n" "MouseMoveEvent 152 135 0 0 0 0 t\n" "MouseMoveEvent 152 137 0 0 0 0 t\n" "MouseMoveEvent 152 138 0 0 0 0 t\n" "MouseMoveEvent 152 139 0 0 0 0 t\n" "MouseMoveEvent 152 140 0 0 0 0 t\n" "MouseMoveEvent 152 141 0 0 0 0 t\n" "MouseMoveEvent 152 142 0 0 0 0 t\n" "MouseMoveEvent 152 143 0 0 0 0 t\n" "MouseMoveEvent 152 144 0 0 0 0 t\n" "MouseMoveEvent 151 144 0 0 0 0 t\n" "MouseMoveEvent 151 145 0 0 0 0 t\n" "MouseMoveEvent 151 146 0 0 0 0 t\n" "MouseMoveEvent 151 147 0 0 0 0 t\n" "MouseMoveEvent 151 148 0 0 0 0 t\n" "MouseMoveEvent 150 148 0 0 0 0 t\n" "MouseMoveEvent 150 149 0 0 0 0 t\n" "MouseMoveEvent 149 149 0 0 0 0 t\n" "MouseMoveEvent 149 150 0 0 0 0 t\n" "LeftButtonPressEvent 149 150 0 0 0 0 t\n" "RenderEvent 149 150 0 0 0 0 t\n" "MouseMoveEvent 149 149 0 0 0 0 t\n" "RenderEvent 149 149 0 0 0 0 t\n" "MouseMoveEvent 149 148 0 0 0 0 t\n" "RenderEvent 149 148 0 0 0 0 t\n" "MouseMoveEvent 149 147 0 0 0 0 t\n" "RenderEvent 149 147 0 0 0 0 t\n" "LeftButtonReleaseEvent 149 147 0 0 0 0 t\n" "RenderEvent 149 147 0 0 0 0 t\n" "MouseMoveEvent 149 147 0 0 0 0 t\n" "MouseMoveEvent 153 145 0 0 0 0 t\n" "MouseMoveEvent 157 142 0 0 0 0 t\n" "MouseMoveEvent 161 139 0 0 0 0 t\n" "MouseMoveEvent 164 138 0 0 0 0 t\n" "MouseMoveEvent 165 136 0 0 0 0 t\n" "MouseMoveEvent 166 136 0 0 0 0 t\n" "MouseMoveEvent 167 136 0 0 0 0 t\n" "KeyPressEvent 167 136 0 0 113 1 q\n" "CharEvent 167 136 0 0 113 1 q\n" "ExitEvent 167 136 0 0 113 1 q\n"; // This callback is responsible for setting the angle label. class vtkHandleCallback : public vtkCommand { public: static vtkHandleCallback* New() { return new vtkHandleCallback; } void Execute(vtkObject*, unsigned long eid, void*) override { if (eid == vtkCommand::InteractionEvent) { double point1[3]; this->Rep->GetWorldPosition(point1); std::cout << "Handle position: " << "(" << point1[0] << "," << point1[1] << "," << point1[2] << ")" << std::endl; } } vtkFixedSizeHandleRepresentation3D* Rep; vtkHandleCallback() : Rep(nullptr) { } }; // The actual test function int TestFixedSizeHandleRepresentation3D(int argc, char* argv[]) { vtkSmartPointer ss = vtkSmartPointer::New(); ss->SetRadius(10.0); ss->SetCenter(0, 0, 0); ss->Update(); // Create the RenderWindow, Renderer and both Actors // vtkSmartPointer ren = vtkSmartPointer::New(); vtkSmartPointer renWin = vtkSmartPointer::New(); renWin->AddRenderer(ren); vtkSmartPointer iren = vtkSmartPointer::New(); iren->SetRenderWindow(renWin); // Create a test pipeline showing a sphere and our handle on it. vtkSmartPointer mapper = vtkSmartPointer::New(); mapper->SetInputConnection(ss->GetOutputPort()); vtkSmartPointer actor = vtkSmartPointer::New(); actor->SetMapper(mapper); // Create the widget and its representation vtkSmartPointer rep = vtkSmartPointer::New(); rep->SetHandleSizeInPixels(10.0); rep->SetHandleSizeToleranceInPixels(1.0); rep->GetProperty()->SetColor(1, 0, 0); double p[3] = { 0, 0, 10 }; rep->SetWorldPosition(p); vtkSmartPointer widget = vtkSmartPointer::New(); widget->SetInteractor(iren); widget->SetDefaultRenderer(ren); widget->SetRepresentation(rep); // Print out the handle position when we interact with the widget vtkSmartPointer mcbk = vtkSmartPointer::New(); mcbk->Rep = rep; widget->AddObserver(vtkCommand::InteractionEvent, mcbk); // Add the actors to the renderer, set the background and size ren->AddActor(actor); ren->SetBackground(0.1, 0.2, 0.4); renWin->SetSize(300, 300); // render iren->Initialize(); renWin->Render(); widget->On(); renWin->Render(); return vtkTesting::InteractorEventLoop(argc, argv, iren, TestFixedSizeHandleRepresentation3DLog); }