summaryrefslogtreecommitdiffstats
path: root/kue/utility.h
blob: 56343acb5f8d68859a2f49393d8f40d9fcc4c3c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#ifndef _UTILITY_H
#define _UTILITY_H

#include "texture.h"

// Helper functions for rules implementations
namespace KueUtility {
	enum rackType {None, Triangle, Diamond};

	// Regulation table layout
	void layoutTable();
	// Regulation pocket layout
	void layoutPockets();

	// Lays out the billiard in either 8-ball or 9-ball style, or just 
	// place the cue ball (with rack_type = None)
	// Billiard 0 becomes the cue ball, and the rest of the billiards
	// are indexed according to their face number
	void layoutBilliards(rackType rack_type = None);

	// The texture for a given billiard index
	KueTexture textureForBilliard(unsigned int index);

	// Regulation radius of billiards, in meters
	double defaultBilliardRadius();

	// Regulation radius of pockets, in meters
	double defaultPocketRadius();
};

#endif