# Visualization
TKNIS
NIS

# NIS_Drawer< A > Class Template Reference

`#include <NIS_Drawer.hxx>`

Inheritance diagram for NIS_Drawer< A >:

[legend]

## Public Types

enum | DrawType { Draw_Normal = 0, Draw_Transparent = 1, Draw_Hilighted = 2, Draw_DynHilighted = 3 }

## Public Member Functions

| NIS_Drawer ()
virtual Standard_EXPORT | ~NIS_Drawer ()
NIS_InteractiveContext * | GetContext () const
virtual Standard_EXPORT void | Assign (const Handle_NIS_Drawer &theOther)
virtual Standard_EXPORT const Bnd_B3f & | GetBox (const NIS_View *pView=0L) const
Standard_EXPORT void | SetUpdated (const DrawType theType) const
Standard_EXPORT void | SetUpdated (const DrawType theType1, const DrawType theType2) const
Standard_EXPORT void | SetUpdated (const DrawType theType1, const DrawType theType2, const DrawType theType3) const
Standard_EXPORT void | SetDynamicHilighted (const Standard_Boolean isHilighted, const Handle_NIS_InteractiveObject &theObj, const Handle_NIS_View &theView=0L)
virtual Standard_EXPORT Standard_Integer | HashCode (const Standard_Integer theN) const
virtual Standard_EXPORT Standard_Boolean | IsEqual (const Handle_NIS_Drawer &theOth) const
TColStd_MapIteratorOfPackedMapOfInteger | ObjectIterator () const

## Protected Member Functions

virtual Standard_EXPORT void | BeforeDraw (const DrawType theType, const NIS_DrawList &theDrawList)
virtual Standard_EXPORT void | AfterDraw (const DrawType theType, const NIS_DrawList &theDrawList)
virtual Standard_EXPORT void | Draw (const Handle_NIS_InteractiveObject &, const DrawType theType, const NIS_DrawList &theDrawList)=0
virtual Standard_EXPORT void | redraw (const DrawType theType, const Handle_NIS_View &theView)
Standard_EXPORT void | addObject (const NIS_InteractiveObject *theObj, const Standard_Boolean isUpVws)
Standard_EXPORT void | removeObject (const NIS_InteractiveObject *theObj, const Standard_Boolean isUpVws)
virtual Standard_EXPORT NIS_DrawList * | createDefaultList (const Handle_NIS_View &) const

## Protected Attributes

NCollection_List< NIS_DrawList * > | myLists

## Private Member Functions

| NIS_Drawer (const NIS_Drawer &theOther)
NIS_Drawer & | operator= (const NIS_Drawer &theOther)
void | prepareList (const NIS_Drawer::DrawType theType, const NIS_DrawList &theDrawLst)

## Private Attributes

NIS_InteractiveContext * | myCtx
TColStd_PackedMapOfInteger | myMapID
Bnd_B3f | myBox

## Detailed Description

### template<class A>
class NIS_Drawer< A >

Abstract Drawer type

## Member Enumeration Documentation

template<class A>
enum NIS_Drawer::DrawType

Enumeration values:

  Draw_Normal |
  Draw_Transparent |
  Draw_Hilighted |
  Draw_DynHilighted |

## Constructor & Destructor Documentation

template<class A>
NIS_Drawer< A >::NIS_Drawer | ( |  | ) | `[inline]`

| Empty constructor.

template<class A>
virtual Standard_EXPORT NIS_Drawer< A >::~NIS_Drawer | ( |  | ) | `[virtual]`

| Destructor.

template<class A>
NIS_Drawer< A >::NIS_Drawer | ( | const NIS_Drawer< A > & | theOther | ) | `[private]`

## Member Function Documentation

template<class A>
Standard_EXPORT void NIS_Drawer< A >::addObject | ( | const NIS_InteractiveObject * | theObj,
|  | const Standard_Boolean | isUpVws
| ) | `[protected]`

template<class A>
virtual Standard_EXPORT void NIS_Drawer< A >::AfterDraw | ( | const DrawType | theType,
|  | const NIS_DrawList & | theDrawList
| ) | `[protected, virtual]`

| Called after execution of Draw(), once per group of interactive objects. Reimplemented in NIS_SurfaceDrawer, and NIS_TriangulatedDrawer.

template<class A>
virtual Standard_EXPORT void NIS_Drawer< A >::Assign | ( | const Handle_NIS_Drawer< A > & | theOther | ) | `[virtual]`

| Copy the relevant information from another instance of Drawer. raises exception if theOther has incompatible type (test IsKind). Reimplemented in NIS_SurfaceDrawer, and NIS_TriangulatedDrawer.

template<class A>
virtual Standard_EXPORT void NIS_Drawer< A >::BeforeDraw | ( | const DrawType | theType,
|  | const NIS_DrawList & | theDrawList
| ) | `[protected, virtual]`

| Called before execution of Draw(), once per group of interactive objects. Reimplemented in NIS_SurfaceDrawer, and NIS_TriangulatedDrawer.

template<class A>
virtual Standard_EXPORT NIS_DrawList* NIS_Drawer< A >::createDefaultList | ( | const Handle_NIS_View & |  | ) | const`[protected, virtual]`

template<class A>
virtual Standard_EXPORT void NIS_Drawer< A >::Draw | ( | const Handle_NIS_InteractiveObject & | ,
|  | const DrawType | theType,
|  | const NIS_DrawList & | theDrawList
| ) | `[protected, pure virtual]`

| Main function: display the given interactive object in the given view. Implemented in NIS_SurfaceDrawer, and NIS_TriangulatedDrawer.

template<class A>
virtual Standard_EXPORT const Bnd_B3f& NIS_Drawer< A >::GetBox | ( | const NIS_View * | pView = `0L` | ) | const`[virtual]`

Create a3D bounding box of drawn objects.

Parameters:

  | pView | In not NULL, only objects visible in this view are taken.

template<class A>
NIS_InteractiveContext* NIS_Drawer< A >::GetContext | ( |  | ) | const`[inline]`

| Query the Interactive Context.

template<class A>
virtual Standard_EXPORT Standard_Integer NIS_Drawer< A >::HashCode | ( | const Standard_Integer | theN | ) | const`[virtual]`

| Hash value, for Map interface.

template<class A>
virtual Standard_EXPORT Standard_Boolean NIS_Drawer< A >::IsEqual | ( | const Handle_NIS_Drawer< A > & | theOth | ) | const`[virtual]`

| Matching two instances, for Map interface. Reimplemented in NIS_SurfaceDrawer, and NIS_TriangulatedDrawer.

template<class A>
TColStd_MapIteratorOfPackedMapOfInteger NIS_Drawer< A >::ObjectIterator | ( |  | ) | const`[inline]`

| Obtain the iterator of IDs of associated objects.

template<class A>
NIS_Drawer& NIS_Drawer< A >::operator= | ( | const NIS_Drawer< A > & | theOther | ) | `[private]`

template<class A>
void NIS_Drawer< A >::prepareList | ( | const NIS_Drawer< A >::DrawType | theType,
|  | const NIS_DrawList & | theDrawLst
| ) | `[private]`

template<class A>
virtual Standard_EXPORT void NIS_Drawer< A >::redraw | ( | const DrawType | theType,
|  | const Handle_NIS_View & | theView
| ) | `[protected, virtual]`

| Reimplemented in NIS_SurfaceDrawer.

template<class A>
Standard_EXPORT void NIS_Drawer< A >::removeObject | ( | const NIS_InteractiveObject * | theObj,
|  | const Standard_Boolean | isUpVws
| ) | `[protected]`

template<class A>
Standard_EXPORT void NIS_Drawer< A >::SetDynamicHilighted | ( | const Standard_Boolean | isHilighted,
|  | const Handle_NIS_InteractiveObject & | theObj,
|  | const Handle_NIS_View & | theView = `0L`
| ) |

Switch on/off the dynamic hilight of the given object in the given view.

Parameters:

  | isHilighted | True if the object should be hilighted, False - if not hilighted
  | theObj | Object instance that should be hilighted or unhilighted.
  | theView | View where the status of object must be changed. If NULL, the object is hilighted/unhilighted in all views.

template<class A>
Standard_EXPORT void NIS_Drawer< A >::SetUpdated | ( | const DrawType | theType1,
|  | const DrawType | theType2,
|  | const DrawType | theType3
| ) | const

template<class A>
Standard_EXPORT void NIS_Drawer< A >::SetUpdated | ( | const DrawType | theType1,
|  | const DrawType | theType2
| ) | const

template<class A>
Standard_EXPORT void NIS_Drawer< A >::SetUpdated | ( | const DrawType | theType | ) | const

| Mark all draw lists for update

## Field Documentation

template<class A>
Bnd_B3f NIS_Drawer< A >::myBox `[private]`

template<class A>
NIS_InteractiveContext* NIS_Drawer< A >::myCtx `[private]`

template<class A>
NCollection_List<NIS_DrawList*> NIS_Drawer< A >::myLists `[protected]`

template<class A>
TColStd_PackedMapOfInteger NIS_Drawer< A >::myMapID `[private]`

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

- NIS_Drawer.hxx