///////////////////////////////////////////////////////////////////////////////
//  S4D.h

#pragma once

struct S3D;
struct SColor;
struct SMatrix;

struct S4D {
	float	fX, fY, fZ, fW;

public:
	S4D(void);
	S4D(float fX_, float fY_, float fZ_, float fW_);
	explicit S4D(const S3D& Pos);

	const S4D	operator+(const S4D& Pos) const;
	const S4D	operator*(const SMatrix& m) const;

	float&			operator[](int n);
	const float&	operator[](int n) const;

	void	Set(float fX_, float fY_, float fZ_, float fW_);

	const S3D	GetS3D(void) const;
	const S3D	GetS3DNotDivideW(void) const;
	SColor		GetSColor() const;
};

