109 #ifndef vtkHardwareSelector_h
110 #define vtkHardwareSelector_h
113 #include "vtkRenderingCoreModule.h"
167 vtkSetVector4Macro(Area,
unsigned int);
168 vtkGetVector4Macro(Area,
unsigned int);
182 vtkSetMacro(FieldAssociation,
int);
183 vtkGetMacro(FieldAssociation,
int);
192 vtkSetMacro(UseProcessIdFromData,
bool);
193 vtkGetMacro(UseProcessIdFromData,
bool);
216 virtual bool CaptureBuffers();
219 return this->GetPixelInformation(display_position, 0);
223 unsigned int temp[2];
224 return this->GetPixelInformation(display_position, maxDist, temp);
226 PixelInformation GetPixelInformation(
227 const unsigned int display_position[2],
int maxDist,
unsigned int selected_position[2]);
238 virtual void RenderCompositeIndex(
unsigned int index);
247 virtual void UpdateMaximumCellId(
vtkIdType attribid);
248 virtual void UpdateMaximumPointId(
vtkIdType attribid);
255 virtual void RenderProcessId(
unsigned int processid);
268 vtkGetMacro(ActorPassOnly,
bool);
269 vtkSetMacro(ActorPassOnly,
bool);
279 vtkGetMacro(CaptureZValues,
bool);
280 vtkSetMacro(CaptureZValues,
bool);
287 virtual void BeginRenderProp();
288 virtual void EndRenderProp();
296 vtkSetMacro(ProcessID,
int);
297 vtkGetMacro(ProcessID,
int);
304 vtkGetVector3Macro(PropColorValue,
float);
305 vtkSetVector3Macro(PropColorValue,
float);
313 vtkGetMacro(CurrentPass,
int);
327 return GenerateSelection(r[0], r[1], r[2], r[3]);
330 unsigned int x1,
unsigned int y1,
unsigned int x2,
unsigned int y2);
344 vtkProp* GetPropFromID(
int id);
372 MAX_KNOWN_PASS = CELL_ID_HIGH24,
373 MIN_KNOWN_PASS = ACTOR_PASS
383 tcoord[0] =
static_cast<float>((
id & 0xff) / 255.0);
384 tcoord[1] =
static_cast<float>(((
id & 0xff00) >> 8) / 255.0);
385 tcoord[2] =
static_cast<float>(((
id & 0xff0000) >> 16) / 255.0);
390 virtual void SavePixelBuffer(
int passNo);
405 double GetZValue(
int propid);
414 unsigned char rgb[3];
431 int Convert(
unsigned int pos[2],
unsigned char* pb) {
return this->
Convert(pos[0], pos[1], pb); }
432 int Convert(
int xx,
int yy,
unsigned char* pb)
438 int offset = (yy *
static_cast<int>(this->Area[2] - this->Area[0] + 1) + xx) * 3;
439 unsigned char rgb[3];
467 virtual bool PassRequired(
int pass);
474 bool IsPropHit(
int propid);
481 virtual void BeginSelection();
482 virtual void EndSelection();
484 virtual void ProcessPixelBuffers();
485 void BuildPropHitList(
unsigned char* rgbData);
491 void ReleasePixBuffers();
493 unsigned int Area[4];
501 unsigned char* PixBuffer[10];
502 unsigned char* RawPixBuffer[10];
508 float PropColorValue[3];
519 vtkInternals* Internals;