| 111 | } |
| 112 | |
| 113 | Vector3 PointCollisionData::GetFloorNormal() |
| 114 | { |
| 115 | if (_floorNormal.has_value()) |
| 116 | return *_floorNormal; |
| 117 | |
| 118 | // Set floor normal. |
| 119 | if (GetFloorBridgeItemNumber() != NO_VALUE) |
| 120 | { |
| 121 | _floorNormal = GetBridgeNormal(true); |
| 122 | } |
| 123 | else |
| 124 | { |
| 125 | _floorNormal = GetBottomSector().GetSurfaceNormal(_position.x, _position.z, true); |
| 126 | } |
| 127 | |
| 128 | return *_floorNormal; |
| 129 | } |
| 130 | |
| 131 | Vector3 PointCollisionData::GetCeilingNormal() |
| 132 | { |