Esempio n. 1
0
static void camera_to_frame_view_cb(const float co[3], void *user_data)
{
	CameraViewFrameData *data= (CameraViewFrameData *)user_data;
	unsigned int i;

	for (i= 0; i < 4; i++) {
		float nd= dist_to_plane_v3(co, data->frame_tx[i], data->normal_tx[i]);
		if (nd < data->dist_vals[i]) {
			data->dist_vals[i]= nd;
		}
	}

	data->tot++;
}
static PyObject *M_Geometry_distance_point_to_plane(PyObject *UNUSED(self), PyObject *args)
{
	VectorObject *pt, *plene_co, *plane_no;

	if (!PyArg_ParseTuple(args, "O!O!O!:distance_point_to_plane",
	                      &vector_Type, &pt,
	                      &vector_Type, &plene_co,
	                      &vector_Type, &plane_no))
	{
		return NULL;
	}

	if (BaseMath_ReadCallback(pt) == -1 ||
	    BaseMath_ReadCallback(plene_co) == -1 ||
	    BaseMath_ReadCallback(plane_no) == -1)
	{
		return NULL;
	}

	return PyFloat_FromDouble(dist_to_plane_v3(pt->vec, plene_co->vec, plane_no->vec));
}