Free Electron
MetaBrush.h
Go to the documentation of this file.
1 /* Copyright (C) 2003-2021 Free Electron Organization
2  Any use of this software requires a license. If a valid license
3  was not distributed with this file, visit freeelectron.org. */
4 
5 /** @file */
6 
7 #ifndef __operator_MetaBrush_h__
8 #define __operator_MetaBrush_h__
9 
10 namespace fe
11 {
12 namespace ext
13 {
14 
15 /**************************************************************************//**
16  @brief Common functionality of meta brushes for Houdini, Maya, etc
17 
18  @ingroup meta
19 *//***************************************************************************/
20 class FE_DL_EXPORT MetaBrush
21 {
22  public:
23  MetaBrush(void);
24 virtual ~MetaBrush(void);
25 
26  sp<Master> master(void) const { return m_spMaster; }
27 
28  protected:
29  void initEvent(sp<Scope>& a_rspScope);
30  void initDrawInterfaces(MetaPlugin* a_pMetaPlugin);
31  void updateDrawInterfaces(void);
32  void setupDrawOpenGL(void);
33  void draw(void);
34  void drawBrush(void);
35 
36 virtual void drawPost(void) {}
37 
38  WindowEvent m_event;
39  Box2i m_viewport;
40 
41  OperatorContext* m_pOperatorContext;
42  sp<Master> m_spMaster;
43  sp<DrawI> m_spDrawOpenGL;
44  sp<DrawI> m_spDrawPerspective;
45  sp<DrawI> m_spDrawOrtho;
46 };
47 
48 } /* namespace ext */
49 } /* namespace fe */
50 
51 #endif /* __operator_MetaBrush_h__ */
kernel
Definition: namespace.dox:3
Common functionality of meta brushes for Houdini, Maya, etc.
Definition: MetaBrush.h:20
Generalized windowing event.
Definition: WindowEvent.h:43
Intrusive Smart Pointer.
Definition: src/core/ptr.h:53
Common functionality of meta plugins for Houdini, Maya, etc.
Definition: MetaPlugin.h:20
shared FE context for Operator plugins
Definition: OperatorContext.h:23