7 #ifndef __houdini_SurfaceAccessibleHoudini_h__ 8 #define __houdini_SurfaceAccessibleHoudini_h__ 33 { setGdp(a_instance.cast<GU_Detail*>()); }
35 virtual BWORD
isBound(
void) {
return m_pGdp!=NULL; }
38 SurfaceAccessibleI::Element
41 using SurfaceAccessibleBase::attributeSpecs;
43 virtual void attributeSpecs(
47 SurfaceAccessibleI::Element
56 SurfaceAccessibleI::Element a_element,
58 SurfaceAccessibleI::Creation a_create,
59 SurfaceAccessibleI::Writable
62 SurfaceAccessibleI::Element a_element,
63 SurfaceAccessibleI::Attribute
65 SurfaceAccessibleI::Creation a_create,
66 SurfaceAccessibleI::Writable
69 using SurfaceAccessibleBase::discard;
71 virtual BWORD discard(SurfaceAccessibleI::Element a_element,
74 #ifdef FE_HOUDINI_USE_GA 76 String a_group,U32 a_desiredCount);
78 virtual void preparePaging(AtomicChange a_atomicChange,
80 virtual I32 pointPage(U32 a_pointIndex)
const;
81 virtual I32 primitivePage(U32 a_primitiveIndex)
const;
87 SurfaceI::Restrictions a_restrictions);
89 using SurfaceAccessibleBase::subSurface;
92 SurfaceI::Restrictions a_restrictions);
94 using SurfaceAccessibleBase::append;
97 a_spSurfaceAccessibleI,
101 a_spSurfaceAccessibleI,
106 SurfaceAccessibleI::Element a_element,
109 class MultiGroupHoudini:
114 MultiGroupHoudini(
void):
115 m_pSolitaryGroup(NULL) {}
116 virtual ~MultiGroupHoudini(
void) {}
118 virtual void add(I32 a_index);
119 virtual void remove(I32 a_index);
121 void setSolitaryGroup(GA_ElementGroup* a_pSolitaryGroup)
122 { m_pSolitaryGroup=a_pSolitaryGroup; }
125 GA_ElementGroup* m_pSolitaryGroup;
128 void setGdp(
const GU_Detail* a_pGdp);
129 void setGdpChangeable(GU_Detail* a_pGdp);
130 const GU_Detail* gdp(
void) {
return m_pGdp; }
131 GU_Detail* gdpChangeable(
void) {
return m_pGdpChangeable; }
135 virtual void reset(
void);
137 #ifdef FE_HOUDINI_USE_GA 138 static GA_AttributeOwner attributeOwner(
139 SurfaceAccessibleI::Element a_element);
152 void initPrimitiveMap(
void);
153 I32 lookupPrimitive(I32 a_surfaceIndex)
const;
155 const GU_Detail* m_pGdp;
156 GU_Detail* m_pGdpChangeable;
160 std::map<I32,I32> m_primitiveMap;
161 BWORD m_hasDiscretePolygons;
165 #if FE_HOUDINI_HARDENING 169 std::map<String, hp<SurfaceAccessorHoudini::Hardening> > m_hardeningMap;
Common Functionality for Accessible Surface.
Definition: SurfaceAccessibleBase.h:20
virtual sp< SurfaceI > surface(void)
Return current underlying SurfaceI.
Definition: SurfaceAccessibleBase.h:143
Smart pointer used with types represented by BaseType.
Definition: Instance.h:28
kernel
Definition: namespace.dox:3
virtual void bind(Instance a_instance)
associate with model data
Definition: SurfaceAccessibleHoudini.h:32
Houdini Surface Binding.
Definition: SurfaceAccessibleHoudini.h:20
virtual void bind(Instance a_instance)
associate with model data
Definition: SurfaceAccessibleBase.h:31
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 BWORD isBound(void)
Return true if surface is available.
Definition: SurfaceAccessibleHoudini.h:35
Per-class participation non-RTTI fallback dynamic casting mechanism.
Definition: Castable.h:192
virtual sp< SurfaceAccessorI > accessor(String a_node, Element a_element, String a_name, Creation a_create, Writable a_writable)
Return access to an attribute.
Definition: SurfaceAccessibleBase.h:87