HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GU_AgentBlendShapeDeformer.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  */
7 
8 #ifndef __GU_AgentBlendShapeDeformer__
9 #define __GU_AgentBlendShapeDeformer__
10 
11 #include "GU_API.h"
12 
13 #include "GU_Agent.h"
14 #include "GU_AgentShapeDeformer.h"
15 
16 #include <UT/UT_Span.h>
17 
18 /// Blendshape deformer for agents. Optionally, skinning can be performed
19 /// afterwards via GU_AgentLinearSkinDeformer.
21 {
22 public:
24  const GU_AgentShapeDeformerConstPtr &post_blend_deformer);
25 
26  void
27  deform(GU_Detail &gdp, const GU_AgentShapeLib::Shape &src_shape,
28  exint xform_idx, const GU_Agent &src_agent) const override;
29 
30  /// Variant of the default deform() method which allows overriding the
31  /// agent's channel values.
32  void deform(
33  GU_Detail &gdp,
34  const GU_AgentShapeLib::Shape &src_shape,
35  exint xform_idx,
36  const GU_Agent &src_agent,
37  const UT_Span<const GU_Agent::FloatType> &channel_values) const;
38 
39  void
41  exint xform_idx, const GU_Agent &src_agent) const override;
42 
44  {
45  return myPostBlendDeformer;
46  }
47 
48 private:
49  GU_AgentShapeDeformerConstPtr myPostBlendDeformer;
50 };
51 
52 #endif
int64 exint
Definition: SYS_Types.h:125
const GU_AgentShapeDeformerConstPtr & postBlendDeformer() const
virtual void computeBounds(UT_BoundingBox &box, const GU_AgentShapeLib::Shape &src_shape, exint xform_idx, const GU_Agent &src_agent) const
Shape(GA_Offset offset)
#define GU_API
Definition: GU_API.h:14
virtual void deform(GU_Detail &gdp, const GU_AgentShapeLib::Shape &src_shape, exint xform_idx, const GU_Agent &src_agent) const =0
Defines a deformer for an agent shape.