00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef FUTUREWORLDMODELGENERATOR_H_
00010 #define FUTUREWORLDMODELGENERATOR_H_
00011
00012
00013 #include <string>
00014 #include <vector>
00015
00016 class Potentialfield;
00017 class Actionfield;
00018 class PotentialfieldTransformation;
00019 class Rotation;
00020 class Action;
00021 class PotentialFieldsObject;
00022 class PfPose;
00023 class Polygon;
00024 class PfVec;
00025
00026
00027
00028
00029
00030
00031
00032 class FutureWorldModelGenerator
00033 {
00034 private:
00035
00036 FutureWorldModelGenerator() {};
00037
00038 public:
00039
00040
00041
00042 static FutureWorldModelGenerator* getFutureWorldModelGenerator()
00043 {
00044 static FutureWorldModelGenerator instance;
00045 return &instance;
00046 }
00047
00048
00049
00050
00051
00052
00053
00054
00055
00056
00057 void transformWorldState(const PfPose& poseNow, PfPose& poseThen,
00058 Action& action, Actionfield* callingField,
00059 std::vector<PotentialFieldsObject*>& worldStateNow,
00060 std::vector<PotentialFieldsObject*>& worldStateThen,
00061 std::vector<PotentialFieldsObject*>& worldStateStatic);
00062
00063 private:
00064
00065
00066
00067
00068
00069
00070
00071
00072 void executeSingleTransformation(PfPose& pose, Action& action,
00073 PotentialfieldTransformation* transformation,
00074 Actionfield* callingField,
00075 std::vector<PotentialFieldsObject*>& dynamicWorldState,
00076 std::vector<PotentialFieldsObject*>& staticWorldState);
00077
00078
00079
00080
00081
00082
00083
00084
00085
00086 double getMaxTranslationForObject(const PfPose& objectPose,
00087 const PfVec& translation,
00088 std::vector<PotentialFieldsObject*>& otherObjects,
00089 std::vector<PotentialFieldsObject*>& otherStaticObjects,
00090 int excludedObject = -1);
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101 double getMaxRotationForObject(const PfPose& objectPose,
00102 const PfPose& rotationPose,
00103 double rotation,
00104 std::vector<PotentialFieldsObject*>& otherObjects,
00105 std::vector<PotentialFieldsObject*>& otherStaticObjects,
00106 int excludedObject = -1);
00107 };
00108
00109
00110 #endif //FUTUREWORLDMODELGENERATOR_H_