VTK
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
vtkAbstractContextBufferId Class Reference

2D array of ids, used for picking. More...

#include <vtkAbstractContextBufferId.h>

Inheritance diagram for vtkAbstractContextBufferId:
Inheritance graph
[legend]
Collaboration diagram for vtkAbstractContextBufferId:
Collaboration graph
[legend]

List of all members.

Public Types

typedef vtkObject Superclass

Public Member Functions

virtual int IsA (const char *type)
vtkAbstractContextBufferIdNewInstance () const
virtual void PrintSelf (ostream &os, vtkIndent indent)
virtual void Allocate ()=0
virtual bool IsAllocated () const =0
virtual vtkIdType GetPickedItem (int x, int y)=0
virtual void ReleaseGraphicsResources ()
virtual int GetWidth ()
virtual void SetWidth (int)
virtual int GetHeight ()
virtual void SetHeight (int)
virtual void SetValues (int srcXmin, int srcYmin)=0

Static Public Member Functions

static int IsTypeOf (const char *type)
static vtkAbstractContextBufferIdSafeDownCast (vtkObjectBase *o)

Protected Member Functions

virtual vtkObjectBaseNewInstanceInternal () const
 vtkAbstractContextBufferId ()
virtual ~vtkAbstractContextBufferId ()

Protected Attributes

int Width
int Height

Detailed Description

2D array of ids, used for picking.

An 2D array where each element is the id of an entity drawn at the given pixel. The access is not specified in this class. The effective/concrete subclass vtkContextBufferId stores the whole buffer in RAM. The access to a value is fast and independent of the OpenGL. However it requires to first fill the whole buffer by transferring the buffer generated by OpenGL from the VRAM to the RAM. It is inefficient if the context of the scene changes during interaction.

The effective/concrete subclass vtkOpenGLContextBufferId keeps the buffer id on the VRAM in a texture image. The access to a value is slower than a simple read access to an array but it does not require a large transfer of data from the VRAM to the RAM.

See also:
vtkContextBufferId, vtkOpenGLContextBufferId

Definition at line 43 of file vtkAbstractContextBufferId.h.


Member Typedef Documentation

Reimplemented from vtkObject.

Reimplemented in vtkOpenGLContextBufferId, and vtkContextBufferId.

Definition at line 46 of file vtkAbstractContextBufferId.h.


Constructor & Destructor Documentation


Member Function Documentation

static int vtkAbstractContextBufferId::IsTypeOf ( const char *  name) [static]

Return 1 if this class type is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkObject.

Reimplemented in vtkOpenGLContextBufferId, and vtkContextBufferId.

virtual int vtkAbstractContextBufferId::IsA ( const char *  name) [virtual]

Return 1 if this class is the same type of (or a subclass of) the named class. Returns 0 otherwise. This method works in combination with vtkTypeMacro found in vtkSetGet.h.

Reimplemented from vtkObject.

Reimplemented in vtkOpenGLContextBufferId, and vtkContextBufferId.

Reimplemented from vtkObject.

Reimplemented in vtkOpenGLContextBufferId, and vtkContextBufferId.

virtual vtkObjectBase* vtkAbstractContextBufferId::NewInstanceInternal ( ) const [protected, virtual]

Reimplemented from vtkObject.

Reimplemented in vtkOpenGLContextBufferId, and vtkContextBufferId.

Reimplemented from vtkObject.

Reimplemented in vtkOpenGLContextBufferId, and vtkContextBufferId.

virtual void vtkAbstractContextBufferId::PrintSelf ( ostream &  os,
vtkIndent  indent 
) [virtual]

Methods invoked by print to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from vtkObject.

Reimplemented in vtkOpenGLContextBufferId, and vtkContextBufferId.

Number of columns. Initial value is 0.

virtual void vtkAbstractContextBufferId::SetWidth ( int  ) [virtual]

Set the number of columns. Initial value is 0.

Number of rows. Initial value is 0.

virtual void vtkAbstractContextBufferId::SetHeight ( int  ) [virtual]

Set the number of rows. Initial value is 0.

virtual void vtkAbstractContextBufferId::Allocate ( ) [pure virtual]

Allocate the memory for at least Width*Height elements.

Precondition:
positive_width: GetWidth()>0
positive_height: GetHeight()>0

Implemented in vtkOpenGLContextBufferId, and vtkContextBufferId.

virtual bool vtkAbstractContextBufferId::IsAllocated ( ) const [pure virtual]

Tell if the buffer has been allocated.

Implemented in vtkOpenGLContextBufferId, and vtkContextBufferId.

virtual void vtkAbstractContextBufferId::SetValues ( int  srcXmin,
int  srcYmin 
) [pure virtual]

Copy the contents of the current read buffer to the internal structure starting at lower left corner of the framebuffer (srcXmin,srcYmin).

Precondition:
is_allocated: this->IsAllocated()

Implemented in vtkOpenGLContextBufferId, and vtkContextBufferId.

virtual vtkIdType vtkAbstractContextBufferId::GetPickedItem ( int  x,
int  y 
) [pure virtual]

Return item under abscissa x and ordinate y. Abscissa go from left to right. Ordinate go from bottom to top. The return value is -1 if there is no item.

Precondition:
is_allocated: IsAllocated()
Postcondition:
valid_result: result>=-1

Implemented in vtkOpenGLContextBufferId, and vtkContextBufferId.

Release any graphics resources that are being consumed by this object. Default implementation is empty.

Reimplemented in vtkOpenGLContextBufferId.


Member Data Documentation

Definition at line 98 of file vtkAbstractContextBufferId.h.

Definition at line 99 of file vtkAbstractContextBufferId.h.


The documentation for this class was generated from the following file: