40 * Using ray intersection, sample the database object obj and return a pnts
41 * primitive.
42 *
43 * For the grid sampling method, the tolerance sets the number of rays fired.
44 * max_time and max_pnts do *not* impact the GRID sampling logic.
45 *
46 * The max_pnts limit will cap the number of reported points for the
47 * pseudorandom sampling methods, on a per method basis - i.e., the function
48 * will return up to max_pnts for each non-grid sampling method that is
49 * enabled. If unset, the maximum pnt count return is 500,000 per method
50 * (except for GRID).
51 *
52 * Likewise, max_time will limit the run time of each pseudorandom method, with
53 * the total limit for all methods being method_cnt_enabled * max_time.
54 *
55 * Return codes:
56 *
57 * -1 - error
58 * 0 - success
59 *
60 */
61#define ANALYZE_OBJ_TO_PNTS_SURF 0x1 /**< @brief save only the first and last hit point on a ray */
62#define ANALYZE_OBJ_TO_PNTS_GRID 0x2 /**< @brief sample using an XYZ grid based on the bounding box (default if no method flags are specified) */
63#define ANALYZE_OBJ_TO_PNTS_RAND 0x4 /**< @brief sample using Marsaglia sampling on the bounding sphere with pseudo random numbers */
64#define ANALYZE_OBJ_TO_PNTS_SOBOL 0x8 /**< @brief sample using Marsaglia sampling on the bounding sphere with Sobol' low-discrepancy-sequence generation */
int analyze_obj_to_pnts(struct rt_pnts_internal *rpnts, double *avg_thickness, struct db_i *dbip, const char *obj, struct bn_tol *tol, int flags, int max_pnts, int max_time, int verbosity)