Go to the documentation of this file.
64 #ifndef vtkHardwareSelector_h
65 #define vtkHardwareSelector_h
67 #include "vtkRenderingCoreModule.h"
119 vtkSetVector4Macro(Area,
unsigned int);
120 vtkGetVector4Macro(Area,
unsigned int);
135 vtkGetMacro(FieldAssociation,
int);
145 vtkGetMacro(UseProcessIdFromData,
bool);
170 {
return this->GetPixelInformation(display_position, 0); }
172 {
unsigned int temp[2];
return this->GetPixelInformation(display_position, maxDist, temp); }
174 int maxDist,
unsigned int selected_position[2]);
176 { this->ReleasePixBuffers(); }
217 vtkGetMacro(ProcessID,
int);
224 vtkGetVector3Macro(PropColorValue,
float);
225 vtkSetVector3Macro(PropColorValue,
float);
232 vtkGetMacro(CurrentPass,
int);
244 {
return GenerateSelection(this->Area); }
246 {
return GenerateSelection(r[0], r[1], r[2], r[3]); }
248 unsigned int x1,
unsigned int y1,
249 unsigned int x2,
unsigned int y2);
274 MAX_KNOWN_PASS = ID_HIGH16,
275 MIN_KNOWN_PASS = PROCESS_PASS
285 tcoord[0] =
static_cast<float>((
id & 0xff)/255.0);
286 tcoord[1] =
static_cast<float>(((
id & 0xff00) >> 8)/255.0);
287 tcoord[2] =
static_cast<float>(((
id & 0xff0000) >> 16)/255.0);
310 unsigned char rgb[3];
327 int Convert(
unsigned int pos[2],
unsigned char* pb)
328 {
return this->Convert(pos[0], pos[1], pb); }
329 int Convert(
int xx,
int yy,
unsigned char* pb)
335 int offset = (yy *
static_cast<int>(this->Area[2]-this->Area[0]+1) + xx) * 3;
336 unsigned char rgb[3];
391 unsigned int Area[4];
398 unsigned char* PixBuffer[10];
403 float PropColorValue[3];
410 vtkInternals* Internals;
vtkProp * GetPropFromID(int id)
returns the prop associated with a ID.
bool IsPropHit(int propid)
After the ACTOR_PASS this return true or false depending upon whether the prop was hit in the ACTOR_P...
int Convert(unsigned long offset, unsigned char *pb)
int Convert(unsigned int pos[2], unsigned char *pb)
pos must be relative to the lower-left corner of this->Area.
static vtkHardwareSelector * New()
abstract base class for most VTK objects
virtual void RenderCompositeIndex(unsigned int index)
Called by any vtkMapper or vtkProp subclass to render a composite-index.
virtual bool PassRequired(int pass)
Returns is the pass indicated is needed.
virtual int GetPropID(int idx, vtkProp *vtkNotUsed(prop))
Return a unique ID for the prop.
virtual vtkSelection * GenerateSelection(unsigned int x1, unsigned int y1, unsigned int x2, unsigned int y2)
A node in a selection tree.
virtual vtkSelection * GenerateSelection()
Generates the vtkSelection from pixel buffers.
virtual bool CaptureBuffers()
It is possible to use the vtkHardwareSelector for a custom picking.
virtual void EndRenderProp()
vtkSelection * Select()
Perform the selection.
virtual void BeginRenderProp()
Called by the mapper (vtkHardwareSelectionPolyDataPainter) before and after rendering each prop.
std::string PassTypeToString(PassTypes type)
Convert a PassTypes enum value to a human readable string.
void ReleasePixBuffers()
Clears all pixel buffers.
PixelInformation GetPixelInformation(const unsigned int display_position[2])
void BuildPropHitList(unsigned char *rgbData)
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
virtual vtkSelection * GeneratePolygonSelection(int *polygonPoints, vtkIdType count)
Generates the vtkSelection from pixel buffers.
manager for OpenGL-based selection.
PixelInformation GetPixelInformation(const unsigned int display_position[2], int maxDist, unsigned int selected_position[2])
a simple class to control print indentation
abstracts an OpenGL texture object.
virtual vtkSelection * GenerateSelection(unsigned int r[4])
virtual void EndRenderProp(vtkRenderWindow *)=0
vtkIdType GetID(int low24, int mid24, int high16)
int Render(vtkRenderer *renderer, vtkProp **propArray, int propArrayCount)
Called by vtkRenderer to render the selection pass.
virtual void PreCapturePass(int pass)
static void Convert(int id, float tcoord[3])
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
abstract superclass for all actors, volumes and annotations
int Convert(int xx, int yy, unsigned char *pb)
virtual void SavePixelBuffer(int passNo)
virtual void SetRenderer(vtkRenderer *)
Get/Set the renderer to perform the selection on.
abstract specification for renderers
virtual void RenderAttributeId(vtkIdType attribid)
Called by any vtkMapper or vtkProp subclass to render an attribute's id.
bool UseProcessIdFromData
create a window for renderers to draw into
virtual void BeginRenderProp(vtkRenderWindow *)=0
virtual void RenderProcessId(unsigned int processid)
Called by any vtkMapper or subclass to render process id.
virtual void EndSelection()
PixelInformation GetPixelInformation(const unsigned int display_position[2], int maxDist)
virtual void PostCapturePass(int pass)
virtual void BeginSelection()