//--------------------------------------------------------- bool CSG_PointCloud::Assign(CSG_Data_Object *pObject) { if( pObject && pObject->is_Valid() && pObject->Get_ObjectType() == Get_ObjectType() ) { Destroy(); CSG_PointCloud *pPointCloud = (CSG_PointCloud *)pObject; Get_History() = pPointCloud->Get_History(); for(int iField=0; iField<pPointCloud->m_nFields; iField++) { _Add_Field(pPointCloud->m_Field_Name[iField]->c_str(), pPointCloud->m_Field_Type[iField]); } for(int iPoint=0; iPoint<pPointCloud->Get_Count(); iPoint++) { if( _Inc_Array() ) { memcpy(m_Points[iPoint] + 1, pPointCloud->m_Points[iPoint] + 1, m_nPointBytes - 1); } } return( true ); } return( false ); }
//--------------------------------------------------------- bool CSG_Grid::Assign(CSG_Data_Object *pObject) { if( pObject && pObject->is_Valid() && pObject->Get_ObjectType() == Get_ObjectType() ) { return( Assign((CSG_Grid *)pObject, GRID_INTERPOLATION_Undefined) ); } return( false ); }