Sha256: 9e0b162c475772a6887e6d7b50a054ba40f4177d9dec403fb2a9a02d62a63faa

Contents?: true

Size: 1.02 KB

Versions: 3

Compression:

Stored size: 1.02 KB

Contents

// -*- c++ -*-
#pragma once
#ifndef __RAYS_MATRIX_H__
#define __RAYS_MATRIX_H__


#include <rays/defs.h>


namespace Rays
{


	struct Matrix
	{

		float
			a1, a2, a3, a4,
			b1, b2, b3, b4,
			c1, c2, c3, c4,
			d1, d2, d3, d4;

		Matrix (float value = 1);

		Matrix (
			float a1, float a2, float a3, float a4,
			float b1, float b2, float b3, float b4,
			float c1, float c2, float c3, float c4,
			float d1, float d2, float d3, float d4);

		Matrix (const float* elements, size_t size);

		Matrix dup () const;

		Matrix& set (float value = 1);

		Matrix& set (
			float a1, float a2, float a3, float a4,
			float b1, float b2, float b3, float b4,
			float c1, float c2, float c3, float c4,
			float d1, float d2, float d3, float d4);

		Matrix& set (const float* elements, size_t size);

		float& at (int row, int column);

		float  at (int row, int column) const;

		      float* array ();

		const float* array () const;

		float& operator [] (int index);

		float  operator [] (int index) const;

	};// Matrix


}// Rays


#endif//EOH

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
rays-0.1.6 include/rays/matrix.h
rays-0.1.5 include/rays/matrix.h
rays-0.1.4 include/rays/matrix.h