RxDock 0.1.0
A fast, versatile, and open-source program for docking ligands to proteins and nucleic acids
Loading...
Searching...
No Matches
BaseUniMolTransform.h
1/***********************************************************************
2 * The rDock program was developed from 1998 - 2006 by the software team
3 * at RiboTargets (subsequently Vernalis (R&D) Ltd).
4 * In 2006, the software was licensed to the University of York for
5 * maintenance and distribution.
6 * In 2012, Vernalis and the University of York agreed to release the
7 * program as Open Source software.
8 * This version is licensed under GNU-LGPL version 3.0 with support from
9 * the University of Barcelona.
10 * http://rdock.sourceforge.net/
11 ***********************************************************************/
12
13// Base class for unimolecular transforms. Overrides Update()
14
15#ifndef _RBTBASEUNIMOLTRANSFORM_H_
16#define _RBTBASEUNIMOLTRANSFORM_H_
17
18#include "rxdock/BaseTransform.h"
19#include "rxdock/Model.h"
20
21#include <nlohmann/json.hpp>
22
23using json = nlohmann::json;
24
25namespace rxdock {
26
28public:
29 // Class type string
30 static const std::string _CT;
32 // Constructors/destructors
33 virtual ~BaseUniMolTransform();
34
35 friend void to_json(json &j, const BaseUniMolTransform &baseUniMolTrans);
36 friend void from_json(const json &j, BaseUniMolTransform &baseUniMolTrans);
37
39 // Public methods
41
42 ModelPtr GetLigand() const;
43
44 // Override Observer pure virtual
45 // Notify observer that subject has changed
46 virtual void Update(Subject *theChangedSubject);
47
48protected:
50 // Protected methods
52 BaseUniMolTransform(const std::string &strClass, const std::string &strName);
53
54 // PURE VIRTUAL - Derived classes must override
55 virtual void SetupTransform() = 0; // Called by Update when model has changed
56
57private:
59 // Private methods
61
62protected:
64 // Protected data
66
67private:
69 // Private data
71 ModelPtr m_spLigand;
72};
73
74void to_json(json &j, const BaseUniMolTransform &baseUniMolTrans);
75void from_json(const json &j, BaseUniMolTransform &baseUniMolTrans);
76
77} // namespace rxdock
78
79#endif //_RBTBASEUNIMOLTRANSFORM_H_
Definition BaseTransform.h:29
Definition BaseUniMolTransform.h:27
Definition Subject.h:35