You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

106 lines
3.3 KiB
C++

/*=========================================================================
Program: Visualization Toolkit
Module: vtkRenderedRepresentation.h
Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
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.
=========================================================================*/
/*-------------------------------------------------------------------------
Copyright 2008 Sandia Corporation.
Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
the U.S. Government retains certain rights in this software.
-------------------------------------------------------------------------*/
/**
* @class vtkRenderedRepresentation
*
*
*/
#ifndef vtkRenderedRepresentation_h
#define vtkRenderedRepresentation_h
#include "vtkDataRepresentation.h"
#include "vtkSmartPointer.h" // for SP ivars
#include "vtkUnicodeString.h" // for string
#include "vtkViewsInfovisModule.h" // For export macro
class vtkApplyColors;
class vtkProp;
class vtkRenderView;
class vtkRenderWindow;
class vtkTextProperty;
class vtkTexture;
class vtkView;
class VTKVIEWSINFOVIS_EXPORT vtkRenderedRepresentation : public vtkDataRepresentation
{
public:
static vtkRenderedRepresentation* New();
vtkTypeMacro(vtkRenderedRepresentation, vtkDataRepresentation);
void PrintSelf(ostream& os, vtkIndent indent) override;
//@{
/**
* Set the label render mode.
* vtkRenderView::QT - Use Qt-based labeler with fitted labeling
* and unicode support. Requires VTK_USE_QT to be on.
* vtkRenderView::FREETYPE - Use standard freetype text rendering.
*/
vtkSetMacro(LabelRenderMode, int);
vtkGetMacro(LabelRenderMode, int);
//@}
protected:
vtkRenderedRepresentation();
~vtkRenderedRepresentation() override;
//@{
/**
* Subclasses may call these methods to add or remove props from the representation.
* Use these if the number of props/actors changes as the result of input connection
* changes.
*/
void AddPropOnNextRender(vtkProp* p);
void RemovePropOnNextRender(vtkProp* p);
//@}
/**
* Obtains the hover text for a particular prop and cell.
* If the prop is not applicable to the representation, return an empty string.
* Subclasses should override GetHoverTextInternal, in which the prop and cell
* are converted to an appropriate selection using ConvertSelection().
*/
vtkUnicodeString GetHoverText(vtkView* view, vtkProp* prop, vtkIdType cell);
/**
* Subclasses may override this method to generate the hover text.
*/
virtual vtkUnicodeString GetHoverTextInternal(vtkSelection*) { return vtkUnicodeString(); }
/**
* The view will call this method before every render.
* Representations may add their own pre-render logic here.
*/
virtual void PrepareForRendering(vtkRenderView* view);
friend class vtkRenderView;
int LabelRenderMode;
private:
vtkRenderedRepresentation(const vtkRenderedRepresentation&) = delete;
void operator=(const vtkRenderedRepresentation&) = delete;
class Internals;
Internals* Implementation;
};
#endif