nurb_trim.c File Reference

#include "common.h"
#include <stdio.h>
#include <math.h>
#include "machine.h"
#include "vmath.h"
#include "raytrace.h"
#include "nurb.h"

Include dependency graph for nurb_trim.c:

Go to the source code of this file.

Data Structures

struct  _interior_line

Defines

#define QUAD1   0
#define QUAD2   1
#define QUAD3   2
#define QUAD4   3
#define TRIM_OUT   0
#define TRIM_IN   1
#define TRIM_ON   2
#define CASE_A   0
#define CASE_B   2
#define CASE_C   3

Functions

void rt_clip_cnurb (struct bu_list *plist, struct edge_g_cnurb *crv, fastf_t u, fastf_t v)
int rt_trim_case (struct edge_g_cnurb *trim, fastf_t u, fastf_t v)
int rt_process_caseb (struct edge_g_cnurb *trim, fastf_t u, fastf_t v)
int rt_nurb_uv_dist (struct edge_g_cnurb *trim, fastf_t u, fastf_t v)
int rt_process_casec (struct edge_g_cnurb *trim, fastf_t u, fastf_t v)
int rt_uv_in_trim (struct edge_g_cnurb *trim, fastf_t u, fastf_t v)
fastf_t rt_trim_line_pt_dist (struct _interior_line *l, fastf_t *pt, int pt_type)
int _SIGN (fastf_t f)
int nmg_uv_in_lu (const fastf_t u, const fastf_t v, const struct loopuse *lu)

Variables

int quad_table [16]


Detailed Description

Trimming curve routines.

Author: Paul R. Stay Source SECAD/VLD Computing Consortium, Bldg 394 The US Army Ballistic Research Laboratory Aberdeen Proving Ground, Maryland 21005

Date: Mon June 1, 1992

Definition in file nurb_trim.c.


Define Documentation

#define QUAD1   0
 

Definition at line 59 of file nurb_trim.c.

Referenced by rt_process_caseb(), and rt_trim_case().

#define QUAD2   1
 

Definition at line 60 of file nurb_trim.c.

Referenced by rt_process_caseb(), and rt_trim_case().

#define QUAD3   2
 

Definition at line 61 of file nurb_trim.c.

Referenced by rt_process_caseb(), and rt_trim_case().

#define QUAD4   3
 

Definition at line 62 of file nurb_trim.c.

Referenced by rt_process_caseb(), and rt_trim_case().

#define TRIM_OUT   0
 

Definition at line 65 of file nurb_trim.c.

Referenced by rt_nurb_uv_dist(), rt_process_caseb(), rt_process_casec(), and rt_uv_in_trim().

#define TRIM_IN   1
 

Definition at line 66 of file nurb_trim.c.

Referenced by rt_process_caseb(), and rt_process_casec().

#define TRIM_ON   2
 

Definition at line 67 of file nurb_trim.c.

Referenced by rt_nurb_uv_dist(), and rt_process_casec().

#define CASE_A   0
 

Definition at line 73 of file nurb_trim.c.

Referenced by rt_uv_in_trim().

#define CASE_B   2
 

Definition at line 74 of file nurb_trim.c.

Referenced by rt_process_casec(), and rt_uv_in_trim().

#define CASE_C   3
 

Definition at line 75 of file nurb_trim.c.

Referenced by rt_process_casec(), and rt_uv_in_trim().


Function Documentation

void rt_clip_cnurb struct bu_list plist,
struct edge_g_cnurb crv,
fastf_t  u,
fastf_t  v
 

Definition at line 401 of file nurb_trim.c.

References _interior_line::axis, edge_g_cnurb::c_size, edge_g_cnurb::ctl_points, _interior_line::o_dist, edge_g_cnurb::pt_type, ptr, RT_NURB_EXTRACT_COORDS, and rt_trim_line_pt_dist().

Referenced by rt_process_casec().

Here is the call graph for this function:

int rt_trim_case struct edge_g_cnurb trim,
fastf_t  u,
fastf_t  v
 

Definition at line 90 of file nurb_trim.c.

References edge_g_cnurb::c_size, edge_g_cnurb::ctl_points, edge_g_cnurb::pt_type, QUAD1, QUAD2, QUAD3, QUAD4, RT_NURB_EXTRACT_COORDS, and RT_NURB_IS_PT_RATIONAL.

Referenced by rt_process_casec(), and rt_uv_in_trim().

int rt_process_caseb struct edge_g_cnurb trim,
fastf_t  u,
fastf_t  v
 

Definition at line 142 of file nurb_trim.c.

References edge_g_cnurb::c_size, edge_g_cnurb::ctl_points, edge_g_cnurb::pt_type, QUAD1, QUAD2, QUAD3, QUAD4, RT_NURB_EXTRACT_COORDS, RT_NURB_IS_PT_RATIONAL, TRIM_IN, and TRIM_OUT.

Referenced by rt_process_casec(), and rt_uv_in_trim().

int rt_nurb_uv_dist struct edge_g_cnurb trim,
fastf_t  u,
fastf_t  v
 

Definition at line 186 of file nurb_trim.c.

References edge_g_cnurb::c_size, edge_g_cnurb::ctl_points, NEAR_ZERO, edge_g_cnurb::pt_type, ptr, RT_NURB_EXTRACT_COORDS, RT_NURB_IS_PT_RATIONAL, TRIM_ON, and TRIM_OUT.

Referenced by rt_process_casec().

int rt_process_casec struct edge_g_cnurb trim,
fastf_t  u,
fastf_t  v
 

Definition at line 257 of file nurb_trim.c.

References BU_LIST_DEQUEUE, BU_LIST_INIT, BU_LIST_WHILE, CASE_B, CASE_C, clip(), nurb_c_to_bezier(), nurb_crv_is_bezier(), rt_clip_cnurb(), rt_nurb_free_cnurb(), rt_nurb_uv_dist(), rt_process_caseb(), rt_trim_case(), TRIM_IN, TRIM_ON, and TRIM_OUT.

Referenced by rt_uv_in_trim().

Here is the call graph for this function:

int rt_uv_in_trim struct edge_g_cnurb trim,
fastf_t  u,
fastf_t  v
 

Definition at line 324 of file nurb_trim.c.

References bu_log(), CASE_A, CASE_B, CASE_C, rt_process_caseb(), rt_process_casec(), rt_trim_case(), and TRIM_OUT.

Referenced by nmg_uv_in_lu().

Here is the call graph for this function:

fastf_t rt_trim_line_pt_dist struct _interior_line l,
fastf_t pt,
int  pt_type
 

Definition at line 354 of file nurb_trim.c.

References _interior_line::axis, _interior_line::o_dist, and RT_NURB_IS_PT_RATIONAL.

Referenced by rt_clip_cnurb().

int _SIGN fastf_t  f  ) 
 

Definition at line 378 of file nurb_trim.c.


Variable Documentation

int quad_table[16]
 

Initial value:

 {              
0,0,0,0,0,3,0,3,0,2,3,3,0,3,3,3
}

Definition at line 77 of file nurb_trim.c.


Generated on Mon Sep 18 01:25:09 2006 for BRL-CAD by  doxygen 1.4.6