
/* _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/

	FILE	: Image2D.h

+ ------ Explanation of file --------------------------------------------------------------------------

	長方形2D描画

+ _/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/_/ */

#pragma once

class Mouse;
class TextureManager;

// 頂点バッファのフォーマット定義
#define IMAGE2D_VERTEX_FVF (D3DFVF_XYZ | D3DFVF_DIFFUSE | D3DFVF_TEX2)

// 頂点バッファ構造体
typedef struct
{
	VEC3		p;		// 座標
	DWORD		color;	// 色
	VEC2		t1;		// テクスチャ座標
	VEC2		t2;		// テクスチャ座標
}IMAGE2D_VERTEX;

class Image2D
{
	protected:
		TextureManager*	m_pTexMan;		// テクスチャ管理

	public:
		Image2D();
		~Image2D();

		LPDIRECT3DVERTEXBUFFER9	m_pVB;			// 頂点バッファ
		D3DXMATRIX				m_world;		// ワールド行列
		bool					m_isCreate;		// 生成フラグ
		VEC3					m_pos;			// 座標(左上)
		VEC3					m_degree;		// 角度
		float					m_scale;		// 拡大率
		VEC2					m_size;			// 幅高さ
		VEC2					m_center;		// 回転中心(0.0〜1.0割合)
		int						m_texPart;		// テクスチャ分割番号
		int						m_texID[2];		// テクスチャ番号

		void	init	(void);
		int		create	(int set_x, int set_y, int set_w, int set_h, D3DXCOLOR color = D3DXCOLOR(0.0f, 0.0f, 0.0f, 1.0f), float set_xc = 0.5f, float set_yc = 0.5f);
		void	update	(void);
		void	draw	(void);
		void	close	(void);

		void	setTexture(int stage, char* name, int xPart = 1, int yPart = 1, bool isRev = false);
		void	setTexPart(int part);
};

typedef vector<Image2D>						VecImg2D;
typedef vector<Image2D>::iterator			IteImg2D;
typedef vector<Image2D*>					VecpImg2D;
typedef vector<Image2D*>::iterator			ItepImg2D;

