Free Electron
SurfaceAccessibleJoint.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 __surface_SurfaceAccessibleJoint_h__
8 #define __surface_SurfaceAccessibleJoint_h__
9 
10 namespace fe
11 {
12 namespace ext
13 {
14 
15 /**************************************************************************//**
16  @brief Joint Surface Binding
17 
18  @ingroup surface
19 *//***************************************************************************/
20 class FE_DL_EXPORT SurfaceAccessibleJoint:
22  public CastableAs<SurfaceAccessibleJoint>
23 {
24  public:
26  m_frame(0.0) {}
27 virtual ~SurfaceAccessibleJoint(void) {}
28 
30 
31  //* as SurfaceAccessibleI
32 virtual BWORD load(String a_filename,
33  sp<Catalog> a_spSettings)
34  { return FALSE; }
35 
36  void startJoints(void);
37  void completeJoints(void);
38  BWORD setJoint(
39  String a_name,String a_parentName,
40  const SpatialTransform& a_rXformRelative,
41  const SpatialVector& a_rScaleLocal,
42  const SpatialTransform& a_rRefWorld,
43  Color a_color);
44  BWORD addJoint(String a_name,String a_parentName,
45  const SpatialTransform& a_rAnimLocal,
46  const SpatialTransform& a_rAnimWorld,
47  const SpatialVector& a_rScaleLocal,
48  const SpatialTransform& a_rRefWorld,
49  Real a_length,Color a_color);
50  BWORD addJoint(String a_name,String a_parentName,
51  const SpatialTransform& a_rAnimLocal,
52  const SpatialTransform& a_rAnimWorld,
53  const SpatialVector& a_rScaleLocal,
54  Real a_length,Color a_color);
55 
56  void startPoints(void);
57  void completePoints(void);
58  void startMeshes(void);
59  void completeMeshes(void);
60  void startCurves(void);
61  void completeCurves(void);
62 
63  protected:
64 
65 virtual void reset(void);
66  void resetJoints(void);
67  void clearAccessors(void);
68  void setOptions(String a_options);
69 
70  Real m_frame;
71  std::map<String,String> m_optionMap;
72  sp<StringFilterI> m_spFilter;
73 
74  sp<SurfaceAccessorI> m_spOutputPoint;
75  sp<SurfaceAccessorI> m_spOutputColor;
76  sp<SurfaceAccessorI> m_spOutputNormal;
77  sp<SurfaceAccessorI> m_spOutputUV;
78  sp<SurfaceAccessorI> m_spOutputPart;
79  sp<SurfaceAccessorI> m_spOutputRadius;
80  sp<SurfaceAccessorI> m_spOutputName;
81  sp<SurfaceAccessorI> m_spOutputParent;
82  sp<SurfaceAccessorI> m_spOutputRefX;
83  sp<SurfaceAccessorI> m_spOutputRefY;
84  sp<SurfaceAccessorI> m_spOutputRefZ;
85  sp<SurfaceAccessorI> m_spOutputRefT;
86  sp<SurfaceAccessorI> m_spOutputAnimX;
87  sp<SurfaceAccessorI> m_spOutputAnimY;
88  sp<SurfaceAccessorI> m_spOutputAnimZ;
89  sp<SurfaceAccessorI> m_spOutputAnimT;
90  sp<SurfaceAccessorI> m_spOutputAnimS;
91  sp<SurfaceAccessorI> m_spOutputVertices;
92  sp<SurfaceAccessorI> m_spOutputProperties;
93 
94  Array<String> m_nameList;
95  std::map<String,String> m_parentMap;
96  std::map<String, std::vector<String> > m_childMap;
97  std::map<String,Color> m_colorMap;
98  std::map<String,SpatialVector> m_targetMap;
99  std::map<String,I32> m_childrenMap;
100  std::map<String,BWORD> m_leafMap;
101 
102  //* includes joints filtered out
103  std::map<String,SpatialTransform> m_refMap;
104  std::map<String,SpatialTransform> m_refTweakMap;
105  std::map<String,SpatialTransform> m_animMap;
106  std::map<String,SpatialTransform> m_animTweakMap;
107  std::map<String,SpatialVector> m_animScaleMap;
108 };
109 
110 } /* namespace ext */
111 } /* namespace fe */
112 
113 #endif /* __surface_SurfaceAccessibleJoint_h__ */
virtual BWORD load(String a_filename, sp< Catalog > a_spSettings)
load model data with settings
Definition: SurfaceAccessibleCatalog.cc:70
kernel
Definition: namespace.dox:3
Catalog Surface Binding.
Definition: SurfaceAccessibleCatalog.h:20
Special vector for color (RGBA)
Definition: Color.h:21
virtual BWORD load(String a_filename, sp< Catalog > a_spSettings)
load model data with settings
Definition: SurfaceAccessibleJoint.h:32
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
Joint Surface Binding.
Definition: SurfaceAccessibleJoint.h:20
Per-class participation non-RTTI fallback dynamic casting mechanism.
Definition: Castable.h:192