/*! \brief Load geometry Print warning when some invalid features are detected. \return number of invalid features \return -1 on failure */ int IVFKDataBlock::LoadGeometry() { int nInvalid; clock_t start, end; if (m_bGeometry) return 0; nInvalid = 0; m_bGeometry = TRUE; start = clock(); if (m_nFeatureCount < 0) { m_poReader->ReadDataRecords(this); } if (EQUAL (m_pszName, "SOBR") || EQUAL (m_pszName, "OBBP") || EQUAL (m_pszName, "SPOL") || EQUAL (m_pszName, "OB") || EQUAL (m_pszName, "OP") || EQUAL (m_pszName, "OBPEJ")) { /* -> wkbPoint */ nInvalid = LoadGeometryPoint(); } else if (EQUAL (m_pszName, "SBP")) { /* -> wkbLineString */ nInvalid = LoadGeometryLineStringSBP(); } else if (EQUAL (m_pszName, "HP") || EQUAL (m_pszName, "DPM")) { /* -> wkbLineString */ nInvalid = LoadGeometryLineStringHP(); } else if (EQUAL (m_pszName, "PAR") || EQUAL (m_pszName, "BUD")) { /* -> wkbPolygon */ nInvalid = LoadGeometryPolygon(); } end = clock(); if (nInvalid > 0) { CPLError(CE_Warning, CPLE_AppDefined, "%s: %d invalid features detected.", m_pszName, nInvalid); } CPLDebug("OGR_VFK", "VFKDataBlock::LoadGeometry(): name=%s sec=%ld", m_pszName, (long)((end - start) / CLOCKS_PER_SEC)); return nInvalid; }
/*! \brief Load geometry \return TRUE on success or FALSE on failure */ bool IVFKFeature::LoadGeometry() { const char *pszName; if (m_bGeometry) return TRUE; pszName = m_poDataBlock->GetName(); if (EQUAL (pszName, "SOBR") || EQUAL (pszName, "OBBP") || EQUAL (pszName, "SPOL") || EQUAL (pszName, "OB") || EQUAL (pszName, "OP") || EQUAL (pszName, "OBPEJ")) { /* -> wkbPoint */ return LoadGeometryPoint(); } else if (EQUAL (pszName, "SBP")) { /* -> wkbLineString */ return LoadGeometryLineStringSBP(); } else if (EQUAL (pszName, "HP") || EQUAL (pszName, "DPM")) { /* -> wkbLineString */ return LoadGeometryLineStringHP(); } else if (EQUAL (pszName, "PAR") || EQUAL (pszName, "BUD")) { /* -> wkbPolygon */ return LoadGeometryPolygon(); } return FALSE; }