mirror of
https://github.com/g-truc/glm.git
synced 2024-11-27 10:44:34 +00:00
fixed: glm::operator<< (using a copy of #491)
This commit is contained in:
parent
ca7a4ed4fe
commit
b52156991e
@ -30,9 +30,11 @@
|
|||||||
/// @author Jan P Springer (regnirpsj@gmail.com)
|
/// @author Jan P Springer (regnirpsj@gmail.com)
|
||||||
///////////////////////////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#include <iomanip> // std::fixed, std::setfill<>, std::setprecision, std::right, std::setw
|
#include <iomanip> // std::fixed, std::setfill<>, std::setprecision, std::right,
|
||||||
|
// std::setw
|
||||||
#include <ostream> // std::basic_ostream<>
|
#include <ostream> // std::basic_ostream<>
|
||||||
#include "../gtc/matrix_access.hpp" // glm::col, glm::row
|
#include "../gtc/matrix_access.hpp" // glm::col, glm::row
|
||||||
|
#include "../gtx/type_trait.hpp" // glm::type<>
|
||||||
|
|
||||||
#if !defined(GLM_META_PROG_HELPERS)
|
#if !defined(GLM_META_PROG_HELPERS)
|
||||||
# pragma error("Please define 'GLM_META_PROG_HELPERS' before using GLM_GTX_io")
|
# pragma error("Please define 'GLM_META_PROG_HELPERS' before using GLM_GTX_io")
|
||||||
@ -201,6 +203,8 @@ namespace glm{
|
|||||||
{
|
{
|
||||||
io::format_punct<CTy> const & fmt(io::get_facet<io::format_punct<CTy> >(os));
|
io::format_punct<CTy> const & fmt(io::get_facet<io::format_punct<CTy> >(os));
|
||||||
|
|
||||||
|
length_t const& components(type<V>::components);
|
||||||
|
|
||||||
if(fmt.formatted)
|
if(fmt.formatted)
|
||||||
{
|
{
|
||||||
io::basic_state_saver<CTy> const bss(os);
|
io::basic_state_saver<CTy> const bss(os);
|
||||||
@ -211,20 +215,20 @@ namespace glm{
|
|||||||
<< std::setfill(fmt.space)
|
<< std::setfill(fmt.space)
|
||||||
<< fmt.delim_left;
|
<< fmt.delim_left;
|
||||||
|
|
||||||
for (unsigned i(0); i < V<T,P>::components; ++i) {
|
for (unsigned i(0); i < components; ++i) {
|
||||||
os << std::setw(fmt.width) << a[i];
|
os << std::setw(fmt.width) << a[i];
|
||||||
|
|
||||||
if (V<T,P>::components-1 != i) { os << fmt.separator; }
|
if (components-1 != i) { os << fmt.separator; }
|
||||||
}
|
}
|
||||||
|
|
||||||
os << fmt.delim_right;
|
os << fmt.delim_right;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
for (unsigned i(0); i < V<T,P>::components; ++i) {
|
for (unsigned i(0); i < components; ++i) {
|
||||||
os << a[i];
|
os << a[i];
|
||||||
|
|
||||||
if (V<T,P>::components-1 != i) { os << fmt.space; }
|
if (components-1 != i) { os << fmt.space; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -276,6 +280,9 @@ namespace glm{
|
|||||||
{
|
{
|
||||||
io::format_punct<CTy> const & fmt(io::get_facet<io::format_punct<CTy> >(os));
|
io::format_punct<CTy> const & fmt(io::get_facet<io::format_punct<CTy> >(os));
|
||||||
|
|
||||||
|
length_t const& cols(type<M>::cols);
|
||||||
|
length_t const& rows(type<M>::rows);
|
||||||
|
|
||||||
if(fmt.formatted) {
|
if(fmt.formatted) {
|
||||||
os << fmt.newline
|
os << fmt.newline
|
||||||
<< fmt.delim_left;
|
<< fmt.delim_left;
|
||||||
@ -283,24 +290,24 @@ namespace glm{
|
|||||||
switch (fmt.order) {
|
switch (fmt.order) {
|
||||||
case io::column_major:
|
case io::column_major:
|
||||||
{
|
{
|
||||||
for (unsigned i(0); i < M<T,P>::rows; ++i) {
|
for (unsigned i(0); i < rows; ++i) {
|
||||||
if (0 != i) { os << fmt.space; }
|
if (0 != i) { os << fmt.space; }
|
||||||
|
|
||||||
os << row(a, i);
|
os << row(a, i);
|
||||||
|
|
||||||
if (M<T,P>::rows-1 != i) { os << fmt.newline; }
|
if (rows-1 != i) { os << fmt.newline; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case io::row_major:
|
case io::row_major:
|
||||||
{
|
{
|
||||||
for (unsigned i(0); i < M<T,P>::cols; ++i) {
|
for (unsigned i(0); i < cols; ++i) {
|
||||||
if (0 != i) { os << fmt.space; }
|
if (0 != i) { os << fmt.space; }
|
||||||
|
|
||||||
os << column(a, i);
|
os << column(a, i);
|
||||||
|
|
||||||
if (M<T,P>::cols-1 != i) { os << fmt.newline; }
|
if (cols-1 != i) { os << fmt.newline; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -311,20 +318,20 @@ namespace glm{
|
|||||||
switch (fmt.order) {
|
switch (fmt.order) {
|
||||||
case io::column_major:
|
case io::column_major:
|
||||||
{
|
{
|
||||||
for (unsigned i(0); i < M<T,P>::cols; ++i) {
|
for (unsigned i(0); i < cols; ++i) {
|
||||||
os << column(a, i);
|
os << column(a, i);
|
||||||
|
|
||||||
if (M<T,P>::cols-1 != i) { os << fmt.space; }
|
if (cols-1 != i) { os << fmt.space; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case io::row_major:
|
case io::row_major:
|
||||||
{
|
{
|
||||||
for (unsigned i(0); i < M<T,P>::rows; ++i) {
|
for (unsigned i(0); i < rows; ++i) {
|
||||||
os << row(a, i);
|
os << row(a, i);
|
||||||
|
|
||||||
if (M<T,P>::rows-1 != i) { os << fmt.space; }
|
if (rows-1 != i) { os << fmt.space; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -401,9 +408,11 @@ namespace glm{
|
|||||||
|
|
||||||
if(cerberus)
|
if(cerberus)
|
||||||
{
|
{
|
||||||
io::format_punct<CTy> const & fmt(io::get_facet<io::format_punct<CTy> >(os));
|
io::format_punct<CTy> const& fmt(io::get_facet<io::format_punct<CTy> >(os));
|
||||||
M<T,P> const& ml(a.first);
|
M<T,P> const& ml(a.first);
|
||||||
M<T,P> const& mr(a.second);
|
M<T,P> const& mr(a.second);
|
||||||
|
length_t const& cols(type<M>::cols);
|
||||||
|
length_t const& rows(type<M>::rows);
|
||||||
|
|
||||||
if(fmt.formatted) {
|
if(fmt.formatted) {
|
||||||
os << fmt.newline
|
os << fmt.newline
|
||||||
@ -412,32 +421,32 @@ namespace glm{
|
|||||||
switch (fmt.order) {
|
switch (fmt.order) {
|
||||||
case io::column_major:
|
case io::column_major:
|
||||||
{
|
{
|
||||||
for (unsigned i(0); i < M<T,P>::rows; ++i) {
|
for (unsigned i(0); i < rows; ++i) {
|
||||||
if (0 != i) { os << fmt.space; }
|
if (0 != i) { os << fmt.space; }
|
||||||
|
|
||||||
os << row(ml, i)
|
os << row(ml, i)
|
||||||
<< ((M<T,P>::rows-1 != i) ? fmt.space : fmt.delim_right)
|
<< ((rows-1 != i) ? fmt.space : fmt.delim_right)
|
||||||
<< fmt.space
|
<< fmt.space
|
||||||
<< ((0 != i) ? fmt.space : fmt.delim_left)
|
<< ((0 != i) ? fmt.space : fmt.delim_left)
|
||||||
<< row(mr, i);
|
<< row(mr, i);
|
||||||
|
|
||||||
if (M<T,P>::rows-1 != i) { os << fmt.newline; }
|
if (rows-1 != i) { os << fmt.newline; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case io::row_major:
|
case io::row_major:
|
||||||
{
|
{
|
||||||
for (unsigned i(0); i < M<T,P>::cols; ++i) {
|
for (unsigned i(0); i < cols; ++i) {
|
||||||
if (0 != i) { os << fmt.space; }
|
if (0 != i) { os << fmt.space; }
|
||||||
|
|
||||||
os << column(ml, i)
|
os << column(ml, i)
|
||||||
<< ((M<T,P>::cols-1 != i) ? fmt.space : fmt.delim_right)
|
<< ((cols-1 != i) ? fmt.space : fmt.delim_right)
|
||||||
<< fmt.space
|
<< fmt.space
|
||||||
<< ((0 != i) ? fmt.space : fmt.delim_left)
|
<< ((0 != i) ? fmt.space : fmt.delim_left)
|
||||||
<< column(mr, i);
|
<< column(mr, i);
|
||||||
|
|
||||||
if (M<T,P>::cols-1 != i) { os << fmt.newline; }
|
if (cols-1 != i) { os << fmt.newline; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
Loading…
Reference in New Issue
Block a user