Choreonoid  1.5
BodyMotionGenerationBar.h
Go to the documentation of this file.
1 
5 #ifndef CNOID_POSE_SEQ_PLUGIN_BODY_MOTION_GENERATION_BAR_H
6 #define CNOID_POSE_SEQ_PLUGIN_BODY_MOTION_GENERATION_BAR_H
7 
8 #include <cnoid/ToolBar>
9 #include <cnoid/LazySignal>
10 #include <cnoid/ConnectionSet>
11 #include <cnoid/Body>
12 #include <cnoid/BodyMotionItem>
13 #include "exportdecl.h"
14 
15 namespace cnoid {
16 
17 class ExtensionManager;
18 class TimeBar;
19 class PoseProvider;
20 class BodyMotionPoseProvider;
21 class PoseProviderToBodyMotionConverter;
22 class BodyMotionGenerationSetupDialog;
23 class ToggleToolButton;
24 class Action;
25 
27 {
28 public:
29  static void initializeInstance(ExtensionManager* ext);
30 
31  static BodyMotionGenerationBar* instance();
32 
33  virtual ~BodyMotionGenerationBar();
34 
35  bool shapeBodyMotion(
36  BodyPtr body, PoseProvider* provider, BodyMotionItemPtr motionItem, bool putMessages = false);
37 
38  class Balancer
39  {
40  public:
41  virtual bool apply(BodyPtr& body, PoseProvider* provider, BodyMotionItemPtr motionItem, bool putMessages) = 0;
42  virtual void storeState(Archive& archive) = 0;
43  virtual void restoreState(const Archive& archive) = 0;
44  virtual QWidget* panel() = 0;
45  };
46 
47  //void setBalancer(BalancerFunc func, QWidget* panel);
48  void setBalancer(Balancer* balancer);
49  void unsetBalancer();
50 
51  bool isAutoInterpolationUpdateMode() const;
52  bool isBalancerEnabled() const;
53  bool isAutoGenerationMode() const;
54  bool isAutoGenerationForNewBodyEnabled() const;
55 
56  double timeScaleRatio() const;
57  double preInitialDuration() const;
58  double postFinalDuration() const;
59 
60  double timeToStartBalancer() const;
61  int balancerIterations() const;
62  int boundaryConditionType() const;
63  int boundarySmootherType() const;
64  double boundarySmootherTime() const;
65  double dynamicsTimeRatio() const;
66  bool isTimeBarRangeOnly() const;
67  int initialWaistTrajectoryMode() const;
68  bool isStealthyStepMode() const;
69  double stealthyHeightRatioThresh() const;
70  double flatLiftingHeight() const;
71  double flatLandingHeight() const;
72  double impactReductionHeight() const;
73  double impactReductionTime() const;
74  bool isAutoZmpAdjustmentMode() const;
75  double minZmpTransitionTime() const;
76  double zmpCenteringTimeThresh() const;
77  double zmpTimeMarginBeforeLifting() const;
78  double zmpMaxDistanceFromCenter() const;
79  bool isSe3Enabled() const;
80  bool isLipSyncMixMode() const;
81 
83  return sigInterpolationParametersChanged_.signal();
84  }
85 
86 private:
87 
88  BodyMotionPoseProvider* bodyMotionPoseProvider;
89  PoseProviderToBodyMotionConverter* poseProviderToBodyMotionConverter;
90 
91  Balancer* balancer;
92 
93  TimeBar* timeBar;
94  BodyMotionGenerationSetupDialog* setup;
95 
96  Action* autoInterpolationUpdateCheck;
97  Action* autoGenerationForNewBodyCheck;
98  ToolButton* balancerToggle;
99  ToolButton* autoGenerationToggle;
100 
101  LazySignal< Signal<void()> >sigInterpolationParametersChanged_;
102 
103  ConnectionSet interpolationParameterWidgetsConnection;
104 
106 
107  void notifyInterpolationParametersChanged();
108 
109  void onGenerationButtonClicked();
110 
111  bool shapeBodyMotionWithSimpleInterpolation
112  (BodyPtr& body, PoseProvider* provider, BodyMotionItemPtr motionItem);
113 
114  virtual bool storeState(Archive& archive);
115  virtual bool restoreState(const Archive& archive);
116 };
117 
118 }
119 
120 #endif
Definition: Archive.h:21
Definition: ExtensionManager.h:26
Definition: PoseProviderToBodyMotionConverter.h:16
Definition: LazySignal.h:33
Definition: ConnectionSet.h:22
Definition: BodyMotionPoseProvider.h:23
Definition: BodyMotionGenerationBar.h:26
Definition: TimeBar.h:16
Definition: Buttons.h:73
Definition: PoseProvider.h:16
Definition: ToolBar.h:22
SignalProxy< void()> sigInterpolationParametersChanged()
Definition: BodyMotionGenerationBar.h:82
Definition: BodyMotionGenerationBar.h:38
Defines the minimum processing for performing pasing file for STL.
Definition: AbstractSceneLoader.h:9
#define CNOID_EXPORT
Definition: Util/exportdecl.h:37
Definition: Signal.h:380
Definition: Action.h:14