Develop Biology
The language of life
Class.h
Go to the documentation of this file.
1/*
2 * This file is a part of the Biology project by eons LLC.
3 * Biology (aka Develop Biology) is a framework for approaching software
4 * development from a natural sciences perspective.
5 *
6 * Copyright (C) 2022 Séon O'Shannon & eons LLC
7 *
8 * This program is free software: you can redistribute it and/or modify
9 * it under the terms of the GNU Affero General Public License as
10 * published by the Free Software Foundation, either version 3 of the
11 * License, or (at your option) any later version.
12 *
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU Affero General Public License for more details.
17 *
18 * You should have received a copy of the GNU Affero General Public License
19 * along with this program. If not, see <https://www.gnu.org/licenses/>.
20 */
21
22#pragma once
23
26
27namespace bio {
28namespace molecular {
29
36template < typename T >
37class Class :
38 public chemical::Class< T >,
39 virtual public chemical::Substance
40{
41public:
42
44 T)
45
46
54 Class(
55 T* object,
58 SymmetryType symmetryType = symmetry_type::Object())
59 :
60 chemical::Class< T >(
61 object,
63 filter,
64 symmetryType
65 )
66 {
67
68 }
69
77 Class(
78 T* object,
79 Name name,
81 Filter filter = filter::Default(),
82 SymmetryType symmetryType = symmetry_type::Object())
83 :
84 chemical::Class< T >(
85 object,
86 name,
88 filter,
89 symmetryType
90 )
91 {
92
93 }
94
102 Class(
103 T* object,
104 StandardDimension id,
106 Filter filter = filter::Default(),
107 SymmetryType symmetryType = symmetry_type::Object())
108 :
109 chemical::Class< T >(
110 object,
111 id,
113 filter,
114 symmetryType
115 )
116 {
117
118 }
119
123 virtual ~Class()
124 {
125
126 }
127};
128
129} //molecular namespace
130} //bio namespace
BIO_DISAMBIGUATE_ALL_CLASS_METHODS(chemical, T) Class(T *object
physical::Perspective< StandardDimension > Filter filter
Definition: Class.h:57
physical::Perspective< StandardDimension > * perspective
Definition: Class.h:56
virtual ~Class()
Definition: Class.h:60
Class(T *object, Symmetry *symmetry=NULL)
Definition: Class.h:46
Filter Default()
SymmetryType Object()
Definition: Cell.h:31
const char * Name
Definition: Types.h:46