61 #ifndef vtkHardwareSelector_h 62 #define vtkHardwareSelector_h 64 #include "vtkRenderingCoreModule.h" 102 void PrintSelf(ostream& os,
vtkIndent indent) VTK_OVERRIDE;
116 vtkSetVector4Macro(Area,
unsigned int);
117 vtkGetVector4Macro(Area,
unsigned int);
132 vtkGetMacro(FieldAssociation,
int);
142 vtkGetMacro(UseProcessIdFromData,
bool);
165 virtual bool CaptureBuffers();
167 {
return this->GetPixelInformation(display_position, 0); }
169 {
unsigned int temp[2];
return this->GetPixelInformation(display_position, maxDist, temp); }
170 PixelInformation GetPixelInformation(
const unsigned int display_position[2],
171 int maxDist,
unsigned int selected_position[2]);
173 { this->ReleasePixBuffers(); }
180 virtual void RenderCompositeIndex(
unsigned int index);
185 virtual void RenderAttributeId(
vtkIdType attribid);
191 virtual void RenderProcessId(
unsigned int processid);
204 virtual void BeginRenderProp();
205 virtual void EndRenderProp();
214 vtkGetMacro(ProcessID,
int);
221 vtkGetVector3Macro(PropColorValue,
float);
222 vtkSetVector3Macro(PropColorValue,
float);
229 vtkGetMacro(CurrentPass,
int);
241 {
return GenerateSelection(this->Area); }
243 {
return GenerateSelection(r[0], r[1], r[2], r[3]); }
245 unsigned int x1,
unsigned int y1,
246 unsigned int x2,
unsigned int y2);
261 vtkProp* GetPropFromID(
int id);
271 MAX_KNOWN_PASS = ID_HIGH16,
272 MIN_KNOWN_PASS = PROCESS_PASS
282 tcoord[0] =
static_cast<float>((
id & 0xff)/255.0);
283 tcoord[1] =
static_cast<float>(((
id & 0xff00) >> 8)/255.0);
284 tcoord[2] =
static_cast<float>(((
id & 0xff0000) >> 16)/255.0);
307 unsigned char rgb[3];
309 rgb[1] = pb[offset+1];
310 rgb[2] = pb[offset+2];
324 int Convert(
unsigned int pos[2],
unsigned char* pb)
325 {
return this->
Convert(pos[0], pos[1], pb); }
326 int Convert(
int xx,
int yy,
unsigned char* pb)
332 int offset = (yy *
static_cast<int>(this->Area[2]-this->Area[0]+1) + xx) * 3;
333 unsigned char rgb[3];
335 rgb[1] = pb[offset+1];
336 rgb[2] = pb[offset+2];
361 virtual bool PassRequired(
int pass);
368 bool IsPropHit(
int propid);
376 virtual void BeginSelection();
377 virtual void EndSelection();
379 virtual void SavePixelBuffer(
int passNo);
380 void BuildPropHitList(
unsigned char* rgbData);
386 void ReleasePixBuffers();
388 unsigned int Area[4];
395 unsigned char* PixBuffer[10];
400 float PropColorValue[3];
407 vtkInternals* Internals;
abstract superclass for all actors, volumes and annotations
virtual void PostCapturePass(int pass)
abstract base class for most VTK objects
virtual void PreCapturePass(int pass)
vtkIdType MaxAttributeId
Clears all pixel buffers.
PixelInformation GetPixelInformation(const unsigned int display_position[2], int maxDist)
It is possible to use the vtkHardwareSelector for a custom picking.
abstract specification for renderers
virtual vtkSelection * GenerateSelection(unsigned int r[4])
A node in a selection tree.
bool UseProcessIdFromData
Clears all pixel buffers.
int FieldAssociation
Clears all pixel buffers.
a simple class to control print indentation
virtual int GetPropID(int idx, vtkProp *vtkNotUsed(prop))
Return a unique ID for the prop.
static void Convert(int id, float tcoord[3])
void ClearBuffers()
It is possible to use the vtkHardwareSelector for a custom picking.
int Convert(int xx, int yy, unsigned char *pb)
pos must be relative to the lower-left corner of this->Area.
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
abstracts an OpenGL texture object.
vtkIdType GetID(int low24, int mid24, int high16)
create a window for renderers to draw into
vtkRenderer * Renderer
Clears all pixel buffers.
PixelInformation GetPixelInformation(const unsigned int display_position[2])
It is possible to use the vtkHardwareSelector for a custom picking.
virtual vtkSelection * GenerateSelection()
Generates the vtkSelection from pixel buffers.
manager for OpenGL-based selection.
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.
VTKACCELERATORSVTKM_EXPORT vtkm::cont::Field Convert(vtkDataArray *input, int association)