PyObject *py_ped_alignment_is_aligned(PyObject *s, PyObject *args) { int ret = -1; PyObject *in_geom = NULL; PedAlignment *align = NULL; PedGeometry *out_geom = NULL; PedSector sector; if (!PyArg_ParseTuple(args, "O!L", &_ped_Geometry_Type_obj, &in_geom, §or)) { return NULL; } align = _ped_Alignment2PedAlignment(s); if (align == NULL) { return NULL; } out_geom = _ped_Geometry2PedGeometry(in_geom); if (out_geom == NULL) { return NULL; } ret = ped_alignment_is_aligned(align, out_geom, sector); ped_alignment_destroy(align); if (ret) { Py_RETURN_TRUE; } else { Py_RETURN_FALSE; } }
/** * Check whether \p geom satisfies the given constraint. * * \return \c 1 if it does. **/ int ped_constraint_is_solution (const PedConstraint* constraint, const PedGeometry* geom) { PED_ASSERT (constraint != NULL); PED_ASSERT (geom != NULL); if (!ped_alignment_is_aligned (constraint->start_align, NULL, geom->start)) return 0; if (!ped_alignment_is_aligned (constraint->end_align, NULL, geom->end)) return 0; if (!ped_geometry_test_sector_inside (constraint->start_range, geom->start)) return 0; if (!ped_geometry_test_sector_inside (constraint->end_range, geom->end)) return 0; if (geom->length < constraint->min_size) return 0; if (geom->length > constraint->max_size) return 0; return 1; }