Example #1
0
//-----------------------------------------------------------------------------------------------------------------------------------------------------
VOID PlyElement::Parse( Ply::DataFormat F, Stream* pStream )
{
  if (F == Ply::Ascii)
  {
    TextStream S = TextStream(pStream);
    Array<String> V = S.ReadLine().Split( &String::IsWhitespace );    

    SIZE_T j=0;
    for( SIZE_T i=0; i<m_Properties.Length(); i++)
    {
        /*
      switch( m_Properties[i]->Type() )
      {
      case PlyProperty::Float32:
        m_Properties[i]->Value().Float = Bolitho::Parse<FLOAT>(V[j++]);
        break;
      case PlyProperty::Float64:
        m_Properties[i]->Value().Double = Bolitho::Parse<DOUBLE>(V[j++]);
        break;
      case PlyProperty::UInt8:
        m_Properties[i]->Value().UInt8 = Bolitho::Parse<UINT8>(V[j++]);
        break;
      case PlyProperty::Int8:
        m_Properties[i]->Value().Int8 = Bolitho::Parse<INT8>(V[j++]);
        break;
      case PlyProperty::UInt16:
        m_Properties[i]->Value().UInt16 = Bolitho::Parse<UINT16>(V[j++]);
        break;
      case PlyProperty::Int16:
        m_Properties[i]->Value().Int16 = Bolitho::Parse<INT16>(V[j++]);
        break;
      case PlyProperty::UInt32:
        m_Properties[i]->Value().UInt32 = Bolitho::Parse<UINT32>(V[j++]);
        break;
      case PlyProperty::Int32:
        m_Properties[i]->Value().Int32 = Bolitho::Parse<INT32>(V[j++]);
        break;
      case PlyProperty::List:
        {
          PlyPropertyList* pList = (PlyPropertyList*)m_Properties[i];
          SIZE_T N = Bolitho::Parse<SIZE_T>( V[j++] );
          pList->Values().Resize(N);
          for (SIZE_T k=0; k<N; k++)
          {
            switch( pList->ElementType() )
            {
            case PlyProperty::Float32:
              pList->Values()[k].Float = Bolitho::Parse<FLOAT>(V[j++]);
              break;
            case PlyProperty::Float64:
              pList->Values()[k].Double = Bolitho::Parse<DOUBLE>(V[j++]);
              break;
            case PlyProperty::UInt8:
              pList->Values()[k].UInt8 = Bolitho::Parse<UINT8>(V[j++]);
              break;
            case PlyProperty::Int8:
              pList->Values()[k].Int8 = Bolitho::Parse<INT8>(V[j++]);
              break;
            case PlyProperty::UInt16:
              pList->Values()[k].UInt16 = Bolitho::Parse<UINT16>(V[j++]);
              break;
            case PlyProperty::Int16:
              pList->Values()[k].Int16 = Bolitho::Parse<INT16>(V[j++]);
              break;
            case PlyProperty::UInt32:
              pList->Values()[k].UInt32 = Bolitho::Parse<UINT32>(V[j++]);
              break;
            case PlyProperty::Int32:
              pList->Values()[k].Int32 = Bolitho::Parse<INT32>(V[j++]);
              break;
            };
          }
        }
        break;
      };
        */
    }
  }
  else if (F == Ply::BinaryBigEndian)
  {
    
  }
  else if (F == Ply::BinaryLittleEndian)
  {


  }

}