104 bContext *C,
Object *obedit,
float mat[4][4],
int type,
int newob)
106 static int xzproj = 0;
113 float vec[3], zvec[3] = {0.0f, 0.0f, 1.0f};
114 float umat[4][4], viewmat[4][4];
117 const float grid = 1.0f;
118 const int cutype = (type &
CU_TYPE);
150 bezt->
vec[1][0] += -grid;
151 bezt->
vec[0][0] += -1.5f * grid;
152 bezt->
vec[0][1] += -0.5f * grid;
153 bezt->
vec[2][0] += -0.5f * grid;
154 bezt->
vec[2][1] += 0.5f * grid;
155 for (a = 0; a < 3; a++) {
166 bezt->
vec[1][0] = grid;
168 bezt->
vec[2][0] = grid * 2;
170 for (a = 0; a < 3; a++) {
184 for (a = 0; a < 4; a++, bp++) {
191 bp->
vec[0] += -1.5f * grid;
199 bp->
vec[0] += 1.5f * grid;
202 for (a = 0; a < 4; a++, bp++) {
221 for (a = 0; a < 5; a++, bp++) {
228 bp->
vec[0] += -2.0f * grid;
235 bp->
vec[0] += 2.0f * grid;
238 for (a = 0; a < 5; a++, bp++) {
259 bezt->
vec[1][0] += -grid;
260 for (a = 0; a < 3; a++) {
268 bezt->
vec[1][1] += grid;
269 for (a = 0; a < 3; a++) {
277 bezt->
vec[1][0] += grid;
278 for (a = 0; a < 3; a++) {
286 bezt->
vec[1][1] += -grid;
287 for (a = 0; a < 3; a++) {
302 for (a = 0; a < 8; a++) {
309 bp->
vec[0] += 0.25f *
nurbcircle[a][0] * grid - 0.75f * grid;
340 for (a = 0; a < 4; a++) {
341 for (
b = 0;
b < 4;
b++) {
343 fac =
float(a) - 1.5f;
344 bp->
vec[0] += fac * grid;
346 bp->
vec[1] += fac * grid;
366 vec[0] = vec[1] = 0.0;
388 const float tmp_cent[3] = {0.0f, 0.0f, 0.0f};
389 const float tmp_vec[3] = {0.0f, 0.0f, 1.0f};
401 for (a = 0; a < 5; a++) {
442 const float tmp_cent[3] = {0.0f, 0.0f, 0.0f};
443 const float tmp_vec[3] = {0.0f, 0.0f, 1.0f};
507 float loc[3],
rot[3];
513 C, op,
'Z', loc,
rot,
nullptr, &enter_editmode, &local_view_bits,
nullptr);
535 if (obedit ==
nullptr || obedit->
type !=
OB_SURF) {
555 if (newob && !enter_editmode) {
586 ot->
idname =
"CURVE_OT_primitive_bezier_curve_add";
607 ot->
name =
"Add Bézier Circle";
609 ot->
idname =
"CURVE_OT_primitive_bezier_circle_add";
630 ot->
name =
"Add Nurbs Curve";
632 ot->
idname =
"CURVE_OT_primitive_nurbs_curve_add";
653 ot->
name =
"Add Nurbs Circle";
655 ot->
idname =
"CURVE_OT_primitive_nurbs_circle_add";
678 ot->
idname =
"CURVE_OT_primitive_nurbs_path_add";
700 ot->
name =
"Add Surface Curve";
702 ot->
idname =
"SURFACE_OT_primitive_nurbs_surface_curve_add";
723 ot->
name =
"Add Surface Circle";
725 ot->
idname =
"SURFACE_OT_primitive_nurbs_surface_circle_add";
746 ot->
name =
"Add Surface Patch";
748 ot->
idname =
"SURFACE_OT_primitive_nurbs_surface_surface_add";
769 ot->
name =
"Add Surface Cylinder";
771 ot->
idname =
"SURFACE_OT_primitive_nurbs_surface_cylinder_add";
792 ot->
name =
"Add Surface Sphere";
794 ot->
idname =
"SURFACE_OT_primitive_nurbs_surface_sphere_add";
815 ot->
name =
"Add Surface Torus";
817 ot->
idname =
"SURFACE_OT_primitive_nurbs_surface_torus_add";
Scene * CTX_data_scene(const bContext *C)
Main * CTX_data_main(const bContext *C)
ViewLayer * CTX_data_view_layer(const bContext *C)
void BKE_nurb_handles_calc(Nurb *nu)
void BKE_nurb_project_2d(Nurb *nu)
void BKE_nurb_knot_calc_u(Nurb *nu)
void BKE_nurb_knot_calc_v(Nurb *nu)
void BKE_nurbList_flag_set(ListBase *editnurb, uint8_t flag, bool set)
void BKE_view_layer_synced_ensure(const Scene *scene, ViewLayer *view_layer)
Object * BKE_view_layer_edit_object_get(const ViewLayer *view_layer)
#define BLI_assert_msg(a, msg)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_remlink(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
int BLI_listbase_count(const struct ListBase *listbase) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
void unit_m4(float m[4][4])
void mul_m4_v3(const float M[4][4], float r[3])
void copy_m4_m4(float m1[4][4], const float m2[4][4])
void mul_mat3_m4_v3(const float mat[4][4], float r[3])
MINLINE void mul_v3_fl(float r[3], float f)
MINLINE void copy_v3_v3(float r[3], const float a[3])
MINLINE void copy_v3_fl(float r[3], float f)
#define BLT_I18NCONTEXT_ID_CURVE_LEGACY
#define CTX_DATA_(context, msgid)
void DEG_id_tag_update(ID *id, unsigned int flags)
Object is a sort of wrapper for general info.
bool ED_operator_scene_editable(bContext *C)
RegionView3D * ED_view3d_context_rv3d(bContext *C)
Read Guarded memory(de)allocation.
local_group_size(16, 16) .push_constant(Type b
void ed_editnurb_translate_flag(ListBase *editnurb, uint8_t flag, const float vec[3], bool is_2d)
bool ed_editnurb_extrude_flag(EditNurb *editnurb, uint8_t flag)
bool ed_editnurb_spin(float viewmat[4][4], View3D *v3d, Object *obedit, const float axis[3], const float cent[3])
ListBase * object_editcurve_get(Object *ob)
static int add_primitive_nurbs_surface_sphere_exec(bContext *C, wmOperator *op)
void CURVE_OT_primitive_nurbs_path_add(wmOperatorType *ot)
void SURFACE_OT_primitive_nurbs_surface_sphere_add(wmOperatorType *ot)
static int add_primitive_bezier_exec(bContext *C, wmOperator *op)
static int add_primitive_bezier_circle_exec(bContext *C, wmOperator *op)
static int curvesurf_prim_add(bContext *C, wmOperator *op, int type, int isSurf)
static const char * get_surf_defname(int type)
void CURVE_OT_primitive_bezier_curve_add(wmOperatorType *ot)
static int add_primitive_nurbs_circle_exec(bContext *C, wmOperator *op)
static int add_primitive_nurbs_curve_exec(bContext *C, wmOperator *op)
static int add_primitive_nurbs_surface_cylinder_exec(bContext *C, wmOperator *op)
void CURVE_OT_primitive_bezier_circle_add(wmOperatorType *ot)
void SURFACE_OT_primitive_nurbs_surface_torus_add(wmOperatorType *ot)
static int add_primitive_curve_path_exec(bContext *C, wmOperator *op)
void CURVE_OT_primitive_nurbs_circle_add(wmOperatorType *ot)
static int add_primitive_nurbs_surface_curve_exec(bContext *C, wmOperator *op)
void SURFACE_OT_primitive_nurbs_surface_surface_add(wmOperatorType *ot)
void CURVE_OT_primitive_nurbs_curve_add(wmOperatorType *ot)
static int curve_prim_add(bContext *C, wmOperator *op, int type)
void SURFACE_OT_primitive_nurbs_surface_cylinder_add(wmOperatorType *ot)
static int surf_prim_add(bContext *C, wmOperator *op, int type)
static int add_primitive_nurbs_surface_torus_exec(bContext *C, wmOperator *op)
static int add_primitive_nurbs_surface_surface_exec(bContext *C, wmOperator *op)
Nurb * ED_curve_add_nurbs_primitive(bContext *C, Object *obedit, float mat[4][4], int type, int newob)
void SURFACE_OT_primitive_nurbs_surface_curve_add(wmOperatorType *ot)
static const float nurbcircle[8][2]
static const char * get_curve_defname(int type)
static int add_primitive_nurbs_surface_circle_exec(bContext *C, wmOperator *op)
void SURFACE_OT_primitive_nurbs_surface_circle_add(wmOperatorType *ot)
draw_view in_light_buf[] float
void *(* MEM_callocN)(size_t len, const char *str)
void add_unit_props_radius(wmOperatorType *ot)
Object * add_type(bContext *C, int type, const char *name, const float loc[3], const float rot[3], bool enter_editmode, unsigned short local_view_bits) ATTR_NONNULL(1) ATTR_RETURNS_NONNULL
float new_primitive_matrix(bContext *C, Object *obedit, const float loc[3], const float rot[3], const float scale[3], float primmat[4][4])
void add_generic_props(wmOperatorType *ot, bool do_editmode)
void add_generic_get_opts(bContext *C, wmOperator *op, char view_align_axis, float r_loc[3], float r_rot[3], float r_scale[3], bool *r_enter_editmode, unsigned short *r_local_view_bits, bool *r_is_view_aligned)
bool editmode_exit_ex(Main *bmain, Scene *scene, Object *obedit, int flag)
float RNA_float_get(PointerRNA *ptr, const char *name)
bool(* poll)(bContext *C) ATTR_WARN_UNUSED_RESULT
int(* exec)(bContext *C, wmOperator *op) ATTR_WARN_UNUSED_RESULT
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
void WM_operator_view3d_unit_defaults(bContext *C, wmOperator *op)