void ForEachPoint(Functor && f, int scale) { ParseGeometry(scale); if (m_points.empty()) { // it's a point feature if (GetFeatureType() == feature::GEOM_POINT) f(m_center); } else { for (size_t i = 0; i < m_points.size(); ++i) f(m_points[i]); } }
////////////////////////////////////////////////////////////////////// // feature_Factory::SpawnFeature() // \author Logan Jones //////////////////////////////////// \date 2/13/2002 // //==================================================================== // Parameters: // LPCTSTR strType - // long x - // long y - // BYTE z - // // Return: BOOL - // BOOL feature_Factory::SpawnFeature( LPTSTR strType, long x, long y, BYTE z ) { feature_Object* pObject = new feature_Object; std_SizeF Size; FeatureType_t* pFeatureType = GetFeatureType( strType ); if( stricmp(pFeatureType->Name.c_str(),strType)!=0 ) { DWORD A = std_NameHash( strType ); DWORD B = std_NameHash( pFeatureType->Name.c_str() ); assert( 0 ); } assert( pFeatureType ); pObject->Create( std_Point(x,y), pFeatureType ); // objectManager.InsertObject( pObject ); return TRUE; }