SPMeshRow* SPMeshRow::getPrevMeshRow() { SPMeshRow *result = 0; for (SPObject* obj = getPrev(); obj; obj = obj->getPrev()) { // The closest previous SPObject that is an SPMeshRow *should* be ourself. if (SP_IS_MESHROW(obj)) { SPMeshRow* meshrow = SP_MESHROW(obj); // Sanity check to ensure we have a proper sibling structure. if (meshrow->getNextMeshRow() == this) { result = meshrow; } else { g_warning("SPMeshRow previous/next relationship broken"); } break; } } return result; }