Tissue Forge C++ 0.2.1
Interactive, particle-based physics, chemistry and biology modeling and simulation environment
Loading...
Searching...
No Matches
tfEventList.h
Go to the documentation of this file.
1/*******************************************************************************
2 * This file is part of Tissue Forge.
3 * Copyright (c) 2022-2024 T.J. Sego
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU Lesser General Public License as published
7 * by the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU Lesser General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 *
18 ******************************************************************************/
19
24
25#ifndef _SOURCE_EVENT_TFEVENTLIST_H_
26#define _SOURCE_EVENT_TFEVENTLIST_H_
27
28#include "tfEvent.h"
29
30
31namespace TissueForge::event {
32
33
34 HRESULT event_func_invoke(EventBase &event, const FloatP_t &time);
35
36 struct CAPI_EXPORT EventBaseList {
37
38 private:
39
40 inline std::vector<EventBase*>::iterator findEventIterator(EventBase *event);
41 std::vector<EventBase*> toRemove;
42
43 public:
44
45 std::vector<EventBase*> events;
46
48
49 void addEvent(EventBase *event);
50 HRESULT removeEvent(EventBase *event);
51 HRESULT eval(const FloatP_t &time);
52
53 };
54
55 inline HRESULT eventListEval(EventBaseList *eventList, const FloatP_t &time);
56
57 // Basic event list
58 template<typename event_t>
60
61 using EventList = EventListT<Event>;
62
63};
64
65#endif // _SOURCE_EVENT_TFEVENTLIST_H_
Tissue Forge event system.
Definition tfEvent.h:34
Definition tfEvent.h:45
Definition tfEventList.h:36
Definition tfEventList.h:59
int32_t HRESULT
Definition tf_port.h:255