Esempio n. 1
0
sql_rel *
rel_transactions(mvc *sql, symbol *s)
{
	sql_rel *ret = NULL;

	switch (s->token) {
	case TR_RELEASE:
		ret = rel_trans(sql, DDL_RELEASE, 0, s->data.sval);
		break;
	case TR_COMMIT:
		assert(s->type == type_int);
		ret = rel_trans(sql, DDL_COMMIT, s->data.i_val, NULL);
		break;
	case TR_SAVEPOINT:
		ret = rel_trans(sql, DDL_COMMIT, 0, s->data.sval);
		break;
	case TR_ROLLBACK: {
		dnode *n = s->data.lval->h;
		assert(n->type == type_int);
		ret= rel_trans(sql, DDL_ROLLBACK, n->data.i_val, n->next->data.sval);
	} 	break;
	case TR_START:
	case TR_MODE:
		assert(s->type == type_int);
		ret = rel_trans(sql, DDL_TRANS, s->data.i_val, NULL);
		break;
	default:
		return sql_error(sql, 01, "transaction unknown Symbol(" PTRFMT ")->token = %s", PTRFMTCAST s, token2string(s->token));
	}
	return ret;
}
void compute_sample_relationships()
	{	// Load a point cloud file, run the detector, store the object centroids, 
		//Then call spatial_model over each pair of objects
		//Store / save the results into whatever 
		
		std::cout<<"Break point 3.5, "<<scene_vector.size()<<std::endl;
		for (int scene_ind=0; scene_ind<scene_vector.size(); scene_ind++)	
			{	
				// std::cout<<"Break point 4 at loop number: "<<scene_ind<<std::endl;
				for (int i=0; i<number_objects; i++)
					{	
						// std::cout<<"Break point 5 at loop number: "<<i<<std::endl;
						for (int j=0; j<number_objects; j++)
							scene_vector[scene_ind].scene_spatial_rel[i][j] = -1;
					}
			}
			
		for (int scene_ind=0; scene_ind<scene_vector.size(); scene_ind++)
			{					
				for (int obj_ind_i=0; obj_ind_i<scene_vector[scene_ind].scene_obj_vector.size(); obj_ind_i++)
					{	
						for (int obj_ind_j=0; obj_ind_j<scene_vector[scene_ind].scene_obj_vector.size(); obj_ind_j++)
							{	
								tf::Vector3 rel_trans(scene_vector[scene_ind].scene_obj_vector[obj_ind_i].geo_centroid.x - scene_vector[scene_ind].scene_obj_vector[obj_ind_j].geo_centroid.x,
													  scene_vector[scene_ind].scene_obj_vector[obj_ind_i].geo_centroid.y - scene_vector[scene_ind].scene_obj_vector[obj_ind_j].geo_centroid.y,
   												  	scene_vector[scene_ind].scene_obj_vector[obj_ind_i].geo_centroid.z - scene_vector[scene_ind].scene_obj_vector[obj_ind_j].geo_centroid.z);					
								if (rel_trans.length()<no_relation_threshold)
									scene_vector[scene_ind].scene_spatial_rel[obj_ind_i][obj_ind_j] = rel_trans.length();
								// else 
									// scene_vector[scene_ind].scene_spatial_rel[obj_ind_i][obj_ind_j] = -1; 
							}
					}
			}
		
	}