1 #pragma once
2 #include "TPinballComponent.h"
3 
4 struct vector_type;
5 class TEdgeSegment;
6 class TBall;
7 
8 class TCollisionComponent : public TPinballComponent
9 {
10 public:
11 	std::vector<TEdgeSegment*> EdgeList;
12 	float Elasticity;
13 	float Smoothness;
14 	float Boost;
15 	float Threshold;
16 	int SoftHitSoundId;
17 	int HardHitSoundId;
18 
19 	TCollisionComponent(TPinballTable* table, int groupIndex, bool createWall);
20 	~TCollisionComponent() override;
21 	void port_draw() override;
22 	virtual void Collision(TBall* ball, vector_type* nextPosition, vector_type* direction, float coef,
23 	                       TEdgeSegment* edge);
24 	virtual int FieldEffect(TBall* ball, vector_type* vecDst);
25 	int DefaultCollision(TBall* ball, vector_type* nextPosition, vector_type* direction);
26 };
27