
#include <typedefs.h>
#include <vrmlshaperaw.h>

vrmlshaperaw::vrmlshaperaw()
  : 
  isline(false),
  istriangles(false)
{
  diffuseColor[0] = diffuseColor[1] = diffuseColor[2] = -1.0;
  emissiveColor[0] = emissiveColor[1] = emissiveColor[2] = -1.0;
  ambientIntensity = -1.0;
}



ostream & vrmlshaperaw::print( ostream & os ) const
{
  if (isline)
    os << "isline" << endl;

  if (istriangles)
    os << "istriangles" << endl;

  
  if (diffuseColor[0]>=0.0)
  {
    os << "diffuseColor: ";
    os << diffuseColor[0] << " ";
    os << diffuseColor[1] << " ";
    os << diffuseColor[2] << " ";
    os << endl;
  }
  
  if (emissiveColor[0]>=0.0)
  {
    os << "emissiveColor: ";
    os << emissiveColor[0] << " ";
    os << emissiveColor[1] << " ";
    os << emissiveColor[2] << " ";
    os << endl;
  }
  
  if (ambientIntensity>=0.0)
  {
    os << "ambientIntensity: ";
    os << ambientIntensity;
    os << endl;
  }

  if (! point.empty() )
  {
    os << "point:" << endl;

    for (uint i=0; i<point.size(); ++i)
    {
      os << point[i] << " ";
      if ((i+1)%3==0)
        os << endl;
    }
    os << endl;
  }

  if (! normal.empty() )
  {
    os << "normal:" << endl;

    for (uint i=0; i<normal.size(); ++i)
    {
      os << normal[i] << " ";

      if ((i+1)%3==0)
        os << endl;
    }
    os << endl;
  }

  if (! color.empty() )
  {
    os << "color:" << endl;

    for (uint i=0; i<color.size(); ++i)
    {
      os << color[i] << " ";
      if ((i+1)%3==0)
        os << endl;
    }
    os << endl;
  }

  if (! coordIndex.empty() )
  {
    os << "coordIndex:" << endl;
    for (uint i=0; i<coordIndex.size(); ++i)
    {
      if (coordIndex[i]==-1)
        os << endl;
      else
        os << coordIndex[i] << " ";
    }
    os << endl;
  }

  os << endl;

  return os;
}





