~ubuntu-branches/ubuntu/trusty/blender/trusty

« back to all changes in this revision

Viewing changes to source/blender/blenkernel/BKE_curve.h

  • Committer: Package Import Robot
  • Author(s): Jeremy Bicha
  • Date: 2013-03-06 12:08:47 UTC
  • mfrom: (1.5.1) (14.1.8 experimental)
  • Revision ID: package-import@ubuntu.com-20130306120847-frjfaryb2zrotwcg
Tags: 2.66a-1ubuntu1
* Resynchronize with Debian (LP: #1076930, #1089256, #1052743, #999024,
  #1122888, #1147084)
* debian/control:
  - Lower build-depends on libavcodec-dev since we're not
    doing the libav9 transition in Ubuntu yet

Show diffs side-by-side

added added

removed removed

Lines of Context:
39
39
struct EditNurb;
40
40
struct ListBase;
41
41
struct ListBase;
 
42
struct Main;
42
43
struct Nurb;
43
44
struct Object;
44
45
struct Scene;
45
46
 
46
 
#define KNOTSU(nu)          ( (nu)->orderu+ (nu)->pntsu+ (((nu)->flagu & CU_NURB_CYCLIC) ? ((nu)->orderu-1) : 0) )
47
 
#define KNOTSV(nu)          ( (nu)->orderv+ (nu)->pntsv+ (((nu)->flagv & CU_NURB_CYCLIC) ? ((nu)->orderv-1) : 0) )
 
47
#define KNOTSU(nu)      ( (nu)->orderu + (nu)->pntsu + (((nu)->flagu & CU_NURB_CYCLIC) ? ((nu)->orderu - 1) : 0) )
 
48
#define KNOTSV(nu)      ( (nu)->orderv + (nu)->pntsv + (((nu)->flagv & CU_NURB_CYCLIC) ? ((nu)->orderv - 1) : 0) )
48
49
 
49
50
/* Non cyclic nurbs have 1 less segment */
50
 
#define SEGMENTSU(nu)       ( ((nu)->flagu & CU_NURB_CYCLIC) ? (nu)->pntsu : (nu)->pntsu-1 )
51
 
#define SEGMENTSV(nu)       ( ((nu)->flagv & CU_NURB_CYCLIC) ? (nu)->pntsv : (nu)->pntsv-1 )
52
 
 
53
 
#define CU_DO_TILT(cu, nu) (((nu->flag & CU_2D) && (cu->flag & CU_3D)==0) ? 0 : 1)
54
 
#define CU_DO_RADIUS(cu, nu) ((CU_DO_TILT(cu, nu) || ((cu)->flag & CU_PATH_RADIUS) || (cu)->bevobj || (cu)->ext1!=0.0f || (cu)->ext2!=0.0f) ? 1:0)
55
 
 
56
 
 
57
 
void unlink_curve(struct Curve *cu);
58
 
void free_curve_editNurb_keyIndex(struct EditNurb *editnurb);
59
 
void free_curve_editNurb(struct Curve *cu);
60
 
void free_curve(struct Curve *cu);
61
 
void BKE_free_editfont(struct Curve *cu);
62
 
struct Curve *add_curve(const char *name, int type);
63
 
struct Curve *copy_curve(struct Curve *cu);
64
 
void make_local_curve(struct Curve *cu);
65
 
struct ListBase *curve_editnurbs(struct Curve *cu);
66
 
short curve_type(struct Curve *cu);
67
 
void test_curve_type(struct Object *ob);
68
 
void update_curve_dimension(struct Curve *cu );
69
 
void tex_space_curve(struct Curve *cu);
70
 
int count_curveverts(struct ListBase *nurb);
71
 
int count_curveverts_without_handles(struct ListBase *nurb);
72
 
void freeNurb(struct Nurb *nu);
73
 
void freeNurblist(struct ListBase *lb);
74
 
struct Nurb *duplicateNurb(struct Nurb *nu);
75
 
void duplicateNurblist(struct ListBase *lb1,  struct ListBase *lb2);
76
 
void test2DNurb(struct Nurb *nu);
77
 
void minmaxNurb(struct Nurb *nu, float *min, float *max);
78
 
 
79
 
void nurbs_knot_calc_u(struct Nurb *nu);
80
 
void nurbs_knot_calc_v(struct Nurb *nu);
81
 
 
82
 
void makeNurbfaces(struct Nurb *nu, float *coord_array, int rowstride, int resolu, int resolv);
83
 
void makeNurbcurve(struct Nurb *nu, float *coord_array, float *tilt_array, float *radius_array, float *weight_array, int resolu, int stride);
84
 
void forward_diff_bezier(float q0, float q1, float q2, float q3, float *p, int it, int stride);
85
 
float *make_orco_curve(struct Scene *scene, struct Object *ob);
86
 
float *make_orco_surf(struct Object *ob);
87
 
void makebevelcurve(struct Scene *scene, struct Object *ob,  struct ListBase *disp, int forRender);
88
 
 
89
 
void makeBevelList(struct Object *ob);
90
 
 
91
 
void calchandleNurb(struct BezTriple *bezt, struct BezTriple *prev,  struct BezTriple *next, int mode);
92
 
void calchandlesNurb(struct Nurb *nu);
93
 
void testhandlesNurb(struct Nurb *nu);
94
 
void autocalchandlesNurb(struct Nurb *nu, int flag);
95
 
void autocalchandlesNurb_all(ListBase *editnurb, int flag);
96
 
void sethandlesNurb(ListBase *editnurb, short code);
97
 
 
98
 
void switchdirectionNurb(struct Nurb *nu);
99
 
 
100
 
void addNurbPoints(struct Nurb *nu, int number);
101
 
void addNurbPointsBezier(struct Nurb *nu, int number);
102
 
 
103
 
float (*curve_getVertexCos(struct Curve *cu, struct ListBase *lb, int *numVerts_r))[3];
104
 
void curve_applyVertexCos(struct Curve *cu, struct ListBase *lb, float (*vertexCos)[3]);
105
 
 
106
 
float (*curve_getKeyVertexCos(struct Curve *cu, struct ListBase *lb, float *key))[3];
107
 
void curve_applyKeyVertexTilts(struct Curve *cu, struct ListBase *lb, float *key);
 
51
#define SEGMENTSU(nu)       ( ((nu)->flagu & CU_NURB_CYCLIC) ? (nu)->pntsu : (nu)->pntsu - 1)
 
52
#define SEGMENTSV(nu)       ( ((nu)->flagv & CU_NURB_CYCLIC) ? (nu)->pntsv : (nu)->pntsv - 1)
 
53
 
 
54
#define CU_DO_TILT(cu, nu) (((nu->flag & CU_2D) && (cu->flag & CU_3D) == 0) ? 0 : 1)
 
55
#define CU_DO_RADIUS(cu, nu) ((CU_DO_TILT(cu, nu) || ((cu)->flag & CU_PATH_RADIUS) || (cu)->bevobj || (cu)->ext1 != 0.0f || (cu)->ext2 != 0.0f) ? 1 : 0)
 
56
 
 
57
/* ** Curve ** */
 
58
void BKE_curve_unlink(struct Curve *cu);
 
59
void BKE_curve_free(struct Curve *cu);
 
60
void BKE_curve_editfont_free(struct Curve *cu);
 
61
struct Curve *BKE_curve_add(struct Main *bmain, const char *name, int type);
 
62
struct Curve *BKE_curve_copy(struct Curve *cu);
 
63
void BKE_curve_make_local(struct Curve *cu);
 
64
short BKE_curve_type_get(struct Curve *cu);
 
65
void BKE_curve_type_test(struct Object *ob);
 
66
void BKE_curve_curve_dimension_update(struct Curve *cu);
 
67
void BKE_curve_texspace_calc(struct Curve *cu);
 
68
 
 
69
int BKE_curve_minmax(struct Curve *cu, float min[3], float max[3]);
 
70
int BKE_curve_center_median(struct Curve *cu, float cent[3]);
 
71
int BKE_curve_center_bounds(struct Curve *cu, float cent[3]);
 
72
void BKE_curve_translate(struct Curve *cu, float offset[3], int do_keys);
 
73
void BKE_curve_delete_material_index(struct Curve *cu, int index);
 
74
 
 
75
ListBase *BKE_curve_nurbs_get(struct Curve *cu);
 
76
 
 
77
float (*BKE_curve_vertexCos_get(struct Curve *cu, struct ListBase *lb, int *numVerts_r))[3];
 
78
void BK_curve_vertexCos_apply(struct Curve *cu, struct ListBase *lb, float (*vertexCos)[3]);
 
79
 
 
80
float (*BKE_curve_keyVertexCos_get(struct Curve *cu, struct ListBase *lb, float *key))[3];
 
81
void BKE_curve_keyVertexTilts_apply(struct Curve *cu, struct ListBase *lb, float *key);
 
82
 
 
83
void BKE_curve_editNurb_keyIndex_free(struct EditNurb *editnurb);
 
84
void BKE_curve_editNurb_free(struct Curve *cu);
 
85
struct ListBase *BKE_curve_editNurbs_get(struct Curve *cu);
 
86
 
 
87
float *BKE_curve_make_orco(struct Scene *scene, struct Object *ob);
 
88
float *BKE_curve_surf_make_orco(struct Object *ob);
 
89
 
 
90
void BKE_curve_bevelList_make(struct Object *ob);
 
91
void BKE_curve_bevel_make(struct Scene *scene, struct Object *ob,  struct ListBase *disp, int forRender);
 
92
 
 
93
void BKE_curve_forward_diff_bezier(float q0, float q1, float q2, float q3, float *p, int it, int stride);
 
94
 
 
95
/* ** Nurbs ** */
 
96
 
 
97
int BKE_nurbList_index_get_co(struct ListBase *editnurb, const int index, float r_co[3]);
 
98
 
 
99
int BKE_nurbList_verts_count(struct ListBase *nurb);
 
100
int BKE_nurbList_verts_count_without_handles(struct ListBase *nurb);
 
101
 
 
102
void BKE_nurbList_free(struct ListBase *lb);
 
103
void BKE_nurbList_duplicate(struct ListBase *lb1,  struct ListBase *lb2);
 
104
void BKE_nurbList_handles_set(struct ListBase *editnurb, short code);
 
105
 
 
106
void BKE_nurbList_handles_autocalc(ListBase *editnurb, int flag);
 
107
 
 
108
void BKE_nurb_free(struct Nurb *nu);
 
109
struct Nurb *BKE_nurb_duplicate(struct Nurb *nu);
 
110
 
 
111
void BKE_nurb_test2D(struct Nurb *nu);
 
112
void BKE_nurb_minmax(struct Nurb *nu, float min[3], float max[3]);
 
113
 
 
114
void BKE_nurb_makeFaces(struct Nurb *nu, float *coord_array, int rowstride, int resolu, int resolv);
 
115
void BKE_nurb_makeCurve(struct Nurb *nu, float *coord_array, float *tilt_array, float *radius_array, float *weight_array, int resolu, int stride);
 
116
 
 
117
void BKE_nurb_knot_calc_u(struct Nurb *nu);
 
118
void BKE_nurb_knot_calc_v(struct Nurb *nu);
108
119
 
109
120
/* nurb checks if they can be drawn, also clamp order func */
110
 
int check_valid_nurb_u(struct Nurb *nu);
111
 
int check_valid_nurb_v(struct Nurb *nu);
112
 
 
113
 
int clamp_nurb_order_u(struct Nurb *nu);
114
 
int clamp_nurb_order_v(struct Nurb *nu);
115
 
 
116
 
ListBase *BKE_curve_nurbs(struct Curve *cu);
117
 
 
118
 
int minmax_curve(struct Curve *cu, float min[3], float max[3]);
119
 
int curve_center_median(struct Curve *cu, float cent[3]);
120
 
int curve_center_bounds(struct Curve *cu, float cent[3]);
121
 
void curve_translate(struct Curve *cu, float offset[3], int do_keys);
122
 
void curve_delete_material_index(struct Curve *cu, int index);
 
121
int BKE_nurb_check_valid_u(struct Nurb *nu);
 
122
int BKE_nurb_check_valid_v(struct Nurb *nu);
 
123
 
 
124
int BKE_nurb_order_clamp_u(struct Nurb *nu);
 
125
int BKE_nurb_order_clamp_v(struct Nurb *nu);
 
126
 
 
127
void BKE_nurb_direction_switch(struct Nurb *nu);
 
128
 
 
129
void BKE_nurb_points_add(struct Nurb *nu, int number);
 
130
void BKE_nurb_bezierPoints_add(struct Nurb *nu, int number);
 
131
 
 
132
void BKE_nurb_handle_calc(struct BezTriple *bezt, struct BezTriple *prev,  struct BezTriple *next, int mode);
 
133
 
 
134
void BKE_nurb_handles_calc(struct Nurb *nu);
 
135
void BKE_nurb_handles_autocalc(struct Nurb *nu, int flag);
 
136
void BKE_nurb_handles_test(struct Nurb *nu);
 
137
 
123
138
#endif
124