00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef OST_XCS_EDITOR_HE
00020 #define OST_XCS_EDITOR_HE
00021
00022
00023
00024
00025 #include <ost/mol/module_config.hh>
00026 #include <ost/geom/geom.hh>
00027 #include <ost/mol/handle_type_fw.hh>
00028
00029 #include "editor_base.hh"
00030
00031 namespace ost { namespace mol {
00032
00036 class DLLEXPORT_OST_MOL XCSEditor : public EditorBase {
00037 public:
00038 friend class EntityHandle;
00039
00041 XCSEditor();
00042
00043 ~XCSEditor();
00044
00045 XCSEditor(const XCSEditor& rhs);
00046
00047 XCSEditor& operator=(const XCSEditor& rhs);
00048
00051 void SetAtomOriginalPos(const AtomHandle& atom,
00052 const geom::Vec3& position);
00053
00057 void SetAtomOriginalPos(const AtomHandleList& alist,
00058 float *positions);
00059
00063 void SetAtomOriginalPos(const AtomHandleList& alist,
00064 double *positions);
00065
00069 void SetAtomTransformedPos(const AtomHandle& atom,
00070 const geom::Vec3& position);
00071
00075 void SetAtomTransformedPos(const AtomHandleList& alist,
00076 float *positions);
00077
00081 void SetAtomTransformedPos(const AtomHandleList& alist,
00082 double *positions);
00083
00085 void SetAtomPos(const AtomHandle& atom,
00086 const geom::Vec3& position);
00087
00089 void SetAtomPos(const AtomHandleList& alist,
00090 float *positions);
00091
00093 void SetAtomPos(const AtomHandleList& alist,
00094 double *positions);
00095
00100 void ApplyTransform(const geom::Mat4& transform);
00101 void ApplyTransform(const geom::Transform& transform);
00102
00104 void SetTransform(const geom::Mat4& transform);
00105 void SetTransform(const geom::Transform& transform);
00106
00108 void FixTransform();
00109
00111 void UpdateICS();
00112
00115 void ForceUpdate();
00116
00117 protected:
00118 XCSEditor(const EntityHandle& ent, EditMode mode);
00119
00120 void Update();
00121 };
00122
00123 }}
00124
00125 #endif