У меня был вопрос относительно того, как я проектирую свою систему частиц.
Прямо сейчас у меня есть класс P, в котором хранится вся информация о частице, такая как скорость, положение, направление, тип и т. Д. У меня также есть основной файл, в котором я буду рисовать эти частицы, обновлять и создавать их экземпляры. Я хочу создать список этих частиц, используя библиотеку c ++ std list, поэтому изначально я сделал
std::list<P> listOfParticles;
в основном файле. Здесь проблема. Делая это, я по существу буду вынужден сделать свои функции обновления и отрисовки в основном файле. Я чувствую, что это плохая практика, и что все, что связано с частицей, должно храниться в одном классе, но я не уверен, куда идти дальше с точки зрения наилучшей практики. Было бы хорошей идеей просто создать список частиц в классе P, где я определяю, что такое частица? Я чувствую, что это не умная идея, хотя ..
Если бы кто-то мог направить меня в правильном направлении, я был бы очень признателен.
«Делая это, я по сути буду вынужден делать свои функции обновления и рисования в главном файле»
Никто не мешает вам помещать объявления / определения членов класса в одни и те же / разные файлы .h / .cpp.
РЕДАКТИРОВАТЬ:-
Это то, что я сказал, лучше было бы, если бы вы сделали это List
член какого-то другого класса, куда вы бы поместили все функции для управления этим списком.
Ваш список частиц, скорее всего, заслуживает своего собственного класса, пусть C, который будет обрабатывать хранение, начальное пространственное распределение, временные обновления … то есть все глобальные операции в облаке частиц. Если вы уверены, что когда-нибудь будете обрабатывать один список, вы можете сделать его статическим членом.
Класс, который представляет отдельные частицы (P), может быть вложен в (C), если нет необходимости видеть его снаружи. Он будет инкапсулировать данные частиц и, возможно, также моделировать парное взаимодействие с другой частицей и другие одночастичные операции.