gen_mol_wall_hit_info.h 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. /******************************************************************************
  2. *
  3. * Copyright (C) 2021 by
  4. * The Salk Institute for Biological Studies
  5. *
  6. * Use of this source code is governed by an MIT-style
  7. * license that can be found in the LICENSE file or at
  8. * https://opensource.org/licenses/MIT.
  9. *
  10. ******************************************************************************/
  11. #ifndef API_GEN_MOL_WALL_HIT_INFO_H
  12. #define API_GEN_MOL_WALL_HIT_INFO_H
  13. #include "api/api_common.h"
  14. namespace MCell {
  15. namespace API {
  16. class MolWallHitInfo;
  17. class GeometryObject;
  18. class PythonExportContext;
  19. class GenMolWallHitInfo {
  20. public:
  21. GenMolWallHitInfo() {
  22. }
  23. GenMolWallHitInfo(DefaultCtorArgType) {
  24. }
  25. virtual ~GenMolWallHitInfo() {}
  26. std::shared_ptr<MolWallHitInfo> copy_mol_wall_hit_info() const;
  27. std::shared_ptr<MolWallHitInfo> deepcopy_mol_wall_hit_info(py::dict = py::dict()) const;
  28. virtual bool __eq__(const MolWallHitInfo& other) const;
  29. virtual bool eq_nonarray_attributes(const MolWallHitInfo& other, const bool ignore_name = false) const;
  30. bool operator == (const MolWallHitInfo& other) const { return __eq__(other);}
  31. bool operator != (const MolWallHitInfo& other) const { return !__eq__(other);}
  32. std::string to_str(const bool all_details=false, const std::string ind="") const ;
  33. // --- attributes ---
  34. int molecule_id;
  35. virtual void set_molecule_id(const int new_molecule_id_) {
  36. molecule_id = new_molecule_id_;
  37. }
  38. virtual int get_molecule_id() const {
  39. return molecule_id;
  40. }
  41. std::shared_ptr<GeometryObject> geometry_object;
  42. virtual void set_geometry_object(std::shared_ptr<GeometryObject> new_geometry_object_) {
  43. geometry_object = new_geometry_object_;
  44. }
  45. virtual std::shared_ptr<GeometryObject> get_geometry_object() const {
  46. return geometry_object;
  47. }
  48. int wall_index;
  49. virtual void set_wall_index(const int new_wall_index_) {
  50. wall_index = new_wall_index_;
  51. }
  52. virtual int get_wall_index() const {
  53. return wall_index;
  54. }
  55. double time;
  56. virtual void set_time(const double new_time_) {
  57. time = new_time_;
  58. }
  59. virtual double get_time() const {
  60. return time;
  61. }
  62. std::vector<double> pos3d;
  63. virtual void set_pos3d(const std::vector<double> new_pos3d_) {
  64. pos3d = new_pos3d_;
  65. }
  66. virtual std::vector<double>& get_pos3d() {
  67. return pos3d;
  68. }
  69. double time_before_hit;
  70. virtual void set_time_before_hit(const double new_time_before_hit_) {
  71. time_before_hit = new_time_before_hit_;
  72. }
  73. virtual double get_time_before_hit() const {
  74. return time_before_hit;
  75. }
  76. std::vector<double> pos3d_before_hit;
  77. virtual void set_pos3d_before_hit(const std::vector<double> new_pos3d_before_hit_) {
  78. pos3d_before_hit = new_pos3d_before_hit_;
  79. }
  80. virtual std::vector<double>& get_pos3d_before_hit() {
  81. return pos3d_before_hit;
  82. }
  83. // --- methods ---
  84. }; // GenMolWallHitInfo
  85. class MolWallHitInfo;
  86. py::class_<MolWallHitInfo> define_pybinding_MolWallHitInfo(py::module& m);
  87. } // namespace API
  88. } // namespace MCell
  89. #endif // API_GEN_MOL_WALL_HIT_INFO_H