00001 #ifndef XDKWRL_COLLISION_H
00002 #define XDKWRL_COLLISION_H
00003
00004 #include <xdkwrl/config.h>
00005 #include <xdkwrl/node.h>
00006 #include <xdkwrl/fieldtypes/mfnode.h>
00007 #include <xdkwrl/fieldtypes/sfbool.h>
00008 #include <xdkwrl/fieldtypes/sfnode.h>
00009 #include <xdkwrl/fieldtypes/sftime.h>
00010 #include <xdkwrl/fieldtypes/sfvec3f.h>
00011
00012 namespace wrl
00013 {
00014
00015
00016
00017 class XDKWRL_EXPORT Collision : public Node
00018 {
00019 public:
00020 Collision(const char* name="");
00021 virtual ~Collision();
00022 virtual inline unsigned int nbFields() const;
00023 virtual FieldHandle field(const std::string& n);
00024 virtual FieldHandle field(unsigned int i);
00025 virtual bool isSetToDefaultValue(unsigned int i) const;
00026 virtual inline unsigned int nbEventsIn() const;
00027 virtual EventInHandle eventIn(const std::string& n);
00028 virtual EventInHandle eventIn(unsigned int i);
00029 virtual inline unsigned int nbEventsOut() const;
00030 virtual EventOutHandle eventOut(const std::string& n);
00031 virtual EventOutHandle eventOut(unsigned int i);
00032 inline const char* typeName() const;
00033 virtual Node* duplicate() const;
00034 virtual Node* duplicate(std::map<const Node*,Node*>&) const;
00035
00036
00037
00038
00039
00040
00041
00042
00043
00044
00045
00046 MFNode children;
00047
00048
00049
00050
00051
00052
00053
00054
00055 SFBool collide;
00056
00057
00058
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071 SFVec3f bboxCenter;
00072
00073
00074
00075
00076
00077
00078
00079
00080 SFVec3f bboxSize;
00081
00082
00083
00084
00085
00086 SFNode proxy;
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096 EventIn<MFNode> addChildren;
00097
00098
00099
00100
00101 EventIn<MFNode> removeChildren;
00102
00103
00104
00105 EventIn<MFNode> set_children;
00106
00107
00108
00109 EventIn<SFBool> set_collide;
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119 EventOut<SFTime> collideTime;
00120
00121
00122
00123 EventOut<MFNode> children_changed;
00124
00125
00126
00127 EventOut<SFBool> collide_changed;
00128
00129 };
00130 };
00131
00132
00133
00134
00135
00136
00137 inline const char*
00138 wrl::Collision::typeName() const
00139 {
00140 return "Collision";
00141 }
00142
00143
00144
00145 inline unsigned int
00146 wrl::Collision::nbFields() const
00147 {
00148 return 5;
00149 }
00150
00151
00152
00153 inline unsigned int
00154 wrl::Collision::nbEventsIn() const
00155 {
00156 return 2;
00157 }
00158
00159
00160
00161 inline unsigned int
00162 wrl::Collision::nbEventsOut() const
00163 {
00164 return 1;
00165 }
00166 #endif // XDKWRL_COLLISION_H
00167
00168
00169
00170
00171
00172