/usr/include/KWWidgets/vtkKWSimpleAnimationWidget.h is in libkwwidgets1-dev 1.0.0~cvs20100930-8.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 | /*=========================================================================
Module: $RCSfile: vtkKWSimpleAnimationWidget.h,v $
Copyright (c) Kitware, Inc.
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.
=========================================================================*/
// .NAME vtkKWSimpleAnimationWidget - a simple animation widget
// .SECTION Description
// This widget provides some simple controls and means to create an
// animation for either a 3D or a 2D scene. It supports two animation
// type. The first one, 'Camera' provides a user interface to rotate the
// camera in the scene. The second one, 'Slice' provides a different user
// interface to slice through a volume for example (say, display all the
// slices along the sagittal axis of a medical dataset). No explicit reference
// is made to the dataset, but callbacks must be set so that this widget
// can set or get the slice value on the approriate external resource.
// .SECTION Thanks
// This work is part of the National Alliance for Medical Image
// Computing (NAMIC), funded by the National Institutes of Health
// through the NIH Roadmap for Medical Research, Grant U54 EB005149.
// Information on the National Centers for Biomedical Computing
// can be obtained from http://nihroadmap.nih.gov/bioinformatics.
#ifndef __vtkKWSimpleAnimationWidget_h
#define __vtkKWSimpleAnimationWidget_h
#include "vtkKWCompositeWidget.h"
class vtkKWLabelWithLabel;
class vtkKWPushButtonSet;
class vtkKWScaleWithEntrySet;
class vtkKWRenderWidget;
class KWWidgets_EXPORT vtkKWSimpleAnimationWidget : public vtkKWCompositeWidget
{
public:
static vtkKWSimpleAnimationWidget* New();
vtkTypeRevisionMacro(vtkKWSimpleAnimationWidget, vtkKWCompositeWidget);
void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// Set/Get the renderwidget to perform the animation on.
// It is not ref-counted.
vtkGetObjectMacro(RenderWidget, vtkKWRenderWidget);
virtual void SetRenderWidget(vtkKWRenderWidget*);
// Description:
// Set the number of frames and maximum number of frames
virtual void SetMaximumNumberOfFrames(int max);
virtual void SetNumberOfFrames(int val);
// Description:
// Set/Get the animation type.
// If set to 'camera', the widget will display controls to rotate the
// camera only the 3-axes.
// If set to 'slice', the widget will display controls to iterate over
// a range of slice. It is meant to actually slice through a 3D volume.
// This 'slice' modes requires several callbacks to be also defined.
//BTX
enum
{
AnimationTypeCamera = 0,
AnimationTypeSlice
};
//ETX
virtual void SetAnimationType(int);
vtkGetMacro(AnimationType, int);
virtual void SetAnimationTypeToCamera();
virtual void SetAnimationTypeToSlice();
// Description:
// Set the slice range (i.e. the indices of the first and last slices
// available in the animation, when the animation type is Slice).
virtual void SetSliceRange(int min, int max);
virtual void SetSliceRange(const int range[2])
{ this->SetSliceRange(range[0], range[1]); };
// Description:
// Set the command to invoke to set the slice value on an external
// source when the animation is in 'slice' mode.
// This command is mandatory for the slice animation to work.
// The 'object' argument is the object that will have the method called on
// it. The 'method' argument is the name of the method to be called and any
// arguments in string form. If the object is NULL, the method is still
// evaluated as a simple command.
// The following parameters are also passed to the command:
// - the slice value: int
virtual void SetSliceSetCommand(vtkObject *object, const char *method);
// Description:
// Set the command to invoke to get the slice value from an external
// source when the animation is in 'slice' mode.
// This command is optional for the slice animation to work but will
// guarantee that the slice is set back to its proper value once
// the animation has been performed.
// The 'object' argument is the object that will have the method called on
// it. The 'method' argument is the name of the method to be called and any
// arguments in string form. If the object is NULL, the method is still
// evaluated as a simple command.
// The following output is expected from the command:
// - the slice value: int
virtual void SetSliceGetCommand(vtkObject *object, const char *method);
// Description:
// Set a command to be invoked after the slice animation has been
// created/previewed.
// This command is optional.
// The 'object' argument is the object that will have the method called on
// it. The 'method' argument is the name of the method to be called and any
// arguments in string form. If the object is NULL, the method is still
// evaluated as a simple command.
virtual void SetSlicePostAnimationCommand(
vtkObject *object, const char *method);
// Description:
// Set the X start and total rotation.
virtual void SetXStart(double val);
virtual void SetXRotation(double val);
// Description:
// Set the Y start and total rotation.
virtual void SetYStart(double val);
virtual void SetYRotation(double val);
// Description:
// Set the Z start and total rotation.
virtual void SetZStart(double val);
virtual void SetZRotation(double val);
// Description:
// Set the zoom start and factor.
virtual void SetZoomStart(double val);
virtual void SetZoomFactor(double val);
// Description:
// Set a command to be invoked after the camera animation has been
// created/previewed.
// This command is optional.
// The 'object' argument is the object that will have the method called on
// it. The 'method' argument is the name of the method to be called and any
// arguments in string form. If the object is NULL, the method is still
// evaluated as a simple command.
virtual void SetCameraPostAnimationCommand(
vtkObject *object, const char *method);
// Description:
// Preview and create camera animation
virtual void PreviewCameraAnimation();
virtual void CreateCameraAnimation(
const char *filename, int width, int height, int fps, const char *fourcc);
// Description:
// Preview and create slice animation
virtual void PreviewSliceAnimation();
virtual void CreateSliceAnimation(
const char *filename, int width, int height, int fps, const char *fourcc);
// Description:
// Update the whole UI depending on the value of the Ivars
virtual void Update();
// Description:
// Update the "enable" state of the object and its internal parts.
// Depending on different Ivars (this->Enabled, the application's
// Limited Edition Mode, etc.), the "enable" state of the object is updated
// and propagated to its internal parts/subwidgets. This will, for example,
// enable/disable parts of the widget UI, enable/disable the visibility
// of 3D widgets, etc.
virtual void UpdateEnableState();
// Description:
// Callbacks. Internal, do not use.
virtual void PreviewAnimationCallback();
virtual void CreateAnimationCallback();
virtual void CancelAnimationCallback();
protected:
vtkKWSimpleAnimationWidget();
~vtkKWSimpleAnimationWidget();
// Description:
// Create the widget.
virtual void CreateWidget();
vtkKWRenderWidget *RenderWidget;
// GUI
vtkKWScaleWithEntrySet *Parameters;
vtkKWPushButtonSet *AnimationButtonSet;
vtkKWLabelWithLabel *HelpLabel;
int AnimationType;
// Description:
// Animation status
//BTX
enum
{
AnimationDone = 0,
AnimationPreviewing = 1,
AnimationCreating = 2,
AnimationCanceled = 4,
AnimationFailed = 8
};
//ETX
int AnimationStatus;
char *CameraPostAnimationCommand;
char *SlicePostAnimationCommand;
char *SliceGetCommand;
char *SliceSetCommand;
virtual void InvokeSliceSetCommand(int);
virtual int InvokeSliceGetCommand();
virtual void InvokeSlicePostAnimationCommand();
virtual void InvokeCameraPostAnimationCommand();
// Description:
// Fix animation size
virtual void FixAnimationSize(const char *filename, int *width, int *height);
// Description:
// Enable/disable animation buttons
virtual void DisableButtonsButCancel();
virtual void EnableButtonsButCancel();
private:
vtkKWSimpleAnimationWidget(const vtkKWSimpleAnimationWidget&); // Not implemented
void operator=(const vtkKWSimpleAnimationWidget&); // Not implemented
};
#endif
|