Free Electron
JointCombineOp.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 __maya_JointCombineOp_h__
8 #define __maya_JointCombineOp_h__
9 
10 namespace fe
11 {
12 namespace ext
13 {
14 
15 /**************************************************************************//**
16  @brief Combine multiple native joints a single multi-joint surface
17 
18  @ingroup maya
19 *//***************************************************************************/
20 class FE_DL_EXPORT JointCombineOp:
21  public OperatorSurfaceCommon,
22  public Initialize<JointCombineOp>
23 {
24  public:
25 
26  JointCombineOp(void):
27  m_dirtied(FALSE) {}
28 virtual ~JointCombineOp(void);
29 
30  void initialize(void);
31 
32  //* As HandlerI
33 virtual void handle(Record& a_rSignal);
34 
35  private:
36  void cancelCallbacks(void);
37 
38  void scanDag(MObject a_parent,String a_grandparent);
39 
40 static void changeCB(MNodeMessage::AttributeMessage a_message,
41  MPlug & a_plug,MPlug & a_otherPlug,
42  void* a_pClientData);
43 static void renameCB(MObject &a_node, const MString &a_string,
44  void* a_pClientData);
45 
46  sp<Scope> m_spScope;
47  sp<SurfaceAccessibleJoint> m_spJointAccessible;
48 
49  std::map<String,SpatialTransform> m_animWorldMap;
50  std::map<String,SpatialTransform> m_refWorldMap;
51  std::map<String,U32> m_primitiveIndexMap;
52 
53  sp<SurfaceAccessorI> m_spInputRefX;
54  sp<SurfaceAccessorI> m_spInputRefY;
55  sp<SurfaceAccessorI> m_spInputRefZ;
56  sp<SurfaceAccessorI> m_spInputRefT;
57 
58  Array<MCallbackId> m_callbackIDs;
59  BWORD m_dirtied;
60 };
61 
62 } /* namespace ext */
63 } /* namespace fe */
64 
65 #endif /* __maya_JointCombineOp_h__ */
kernel
Definition: namespace.dox:3
Per-class participation in the Initialized <> mechanism.
Definition: Initialized.h:117
Automatically reference-counted string container.
Definition: String.h:128
Partial Generic SurfaceI Implemention.
Definition: OperatorSurfaceCommon.h:20
Combine multiple native joints a single multi-joint surface.
Definition: JointCombineOp.h:20
Reference to an instance of a Layout.
Definition: RecordSB.h:35