Free Electron
SurfaceAccessibleOsd.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 __opensubdiv_SurfaceAccessibleOsd_h__
8 #define __opensubdiv_SurfaceAccessibleOsd_h__
9 
10 namespace fe
11 {
12 namespace ext
13 {
14 
15 /**************************************************************************//**
16  @brief OpenSubdiv Surface Binding
17 
18  @ingroup opensubdiv
19 *//***************************************************************************/
20 class FE_DL_EXPORT SurfaceAccessibleOsd:
22 {
23  public:
25 virtual ~SurfaceAccessibleOsd(void);
26 
28 
29 virtual sp<SurfaceAccessorI> accessor(String a_node,
30  SurfaceAccessibleI::Element a_element,
31  String a_name,
32  SurfaceAccessibleI::Creation a_create,
33  SurfaceAccessibleI::Writable
34  a_writable);
35 virtual sp<SurfaceAccessorI> accessor(String a_node,
36  SurfaceAccessibleI::Element a_element,
37  SurfaceAccessibleI::Attribute
38  a_attribute,
39  SurfaceAccessibleI::Creation a_create,
40  SurfaceAccessibleI::Writable
41  a_writable);
42 
43  I32& subdivDepth(void)
44  { return m_subdivDepth; }
45  Array<SpatialVector>& subdivPosition(void)
46  { return m_subdivPosition; }
47  Array< Vector<4,I32> >& subdivVertexIndex(void)
48  { return m_subdivVertexIndex; }
49 
50  protected:
51 virtual void reset(void);
52 
53  private:
54  sp<SurfaceAccessorI> createAccessor(void);
55 
56  I32 m_subdivDepth;
57  Array<SpatialVector> m_subdivPosition;
58  Array< Vector<4,I32> > m_subdivVertexIndex;
59 };
60 
61 } /* namespace ext */
62 } /* namespace fe */
63 
64 #endif /* __opensubdiv_SurfaceAccessibleOsd_h__ */
kernel
Definition: namespace.dox:3
Catalog Surface Binding.
Definition: SurfaceAccessibleCatalog.h:20
OpenSubdiv Surface Binding.
Definition: SurfaceAccessibleOsd.h:20
Automatically reference-counted string container.
Definition: String.h:128
Wrapper for std::vector.
Definition: Array.h:21
Intrusive Smart Pointer.
Definition: src/core/ptr.h:53
virtual sp< SurfaceAccessorI > accessor(String a_node, SurfaceAccessibleI::Element a_element, String a_name, SurfaceAccessibleI::Creation a_create, SurfaceAccessibleI::Writable a_writable)
Return access to an attribute.
Definition: SurfaceAccessibleCatalog.cc:176