这篇教程C++ BLI_countlist函数代码示例写得很实用,希望能帮到您。
本文整理汇总了C++中BLI_countlist函数的典型用法代码示例。如果您正苦于以下问题:C++ BLI_countlist函数的具体用法?C++ BLI_countlist怎么用?C++ BLI_countlist使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。 在下文中一共展示了BLI_countlist函数的16个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。 示例1: vertex_group_menu_execstatic int vertex_group_menu_exec(bContext *C, wmOperator *op){ Object *ob= CTX_data_pointer_get_type(C, "object", &RNA_Object).data; uiPopupMenu *pup; uiLayout *layout; pup= uiPupMenuBegin(C, "Vertex Groups", 0); layout= uiPupMenuLayout(pup); uiLayoutSetOperatorContext(layout, WM_OP_INVOKE_REGION_WIN); if(vgroup_object_in_edit_mode(ob)) { uiItemBooleanO(layout, "Assign to New Group", 0, "OBJECT_OT_vertex_group_assign", "new", 1); if(BLI_countlist(&ob->defbase) && ob->actdef) { uiItemO(layout, "Assign to Group", 0, "OBJECT_OT_vertex_group_assign"); uiItemO(layout, "Remove from Group", 0, "OBJECT_OT_vertex_group_remove_from"); uiItemBooleanO(layout, "Remove from All", 0, "OBJECT_OT_vertex_group_remove_from", "all", 1); } } if(BLI_countlist(&ob->defbase) && ob->actdef) { if(vgroup_object_in_edit_mode(ob)) uiItemS(layout); uiItemO(layout, "Set Active Group", 0, "OBJECT_OT_vertex_group_set_active"); uiItemO(layout, "Remove Group", 0, "OBJECT_OT_vertex_group_remove"); uiItemBooleanO(layout, "Remove All Groups", 0, "OBJECT_OT_vertex_group_remove", "all", 1); } uiPupMenuEnd(C, pup); return OPERATOR_FINISHED;}
开发者ID:jinjoh,项目名称:NOOR,代码行数:33,
示例2: rna_Surface_active_point_rangestatic void rna_Surface_active_point_range(PointerRNA *ptr, int *min, int *max, int *softmin, int *softmax){ DynamicPaintCanvasSettings *canvas = (DynamicPaintCanvasSettings *)ptr->data; *min = 0; *max = BLI_countlist(&canvas->surfaces) - 1;}
开发者ID:244xiao,项目名称:blender,代码行数:7,
示例3: rna_BoidSettings_active_boid_state_index_rangestatic void rna_BoidSettings_active_boid_state_index_range(PointerRNA *ptr, int *min, int *max, int *UNUSED(softmin), int *UNUSED(softmax)){ BoidSettings *boids = (BoidSettings *)ptr->data; *min = 0; *max = max_ii(0, BLI_countlist(&boids->states) - 1);}
开发者ID:caomw,项目名称:blender-ui,代码行数:7,
示例4: rna_BoidState_active_boid_rule_index_rangestatic void rna_BoidState_active_boid_rule_index_range(PointerRNA *ptr, int *min, int *max, int *UNUSED(softmin), int *UNUSED(softmax)){ BoidState *state = (BoidState *)ptr->data; *min = 0; *max = max_ii(0, BLI_countlist(&state->rules) - 1);}
开发者ID:caomw,项目名称:blender-ui,代码行数:7,
示例5: add_default_keyingset_execstatic int add_default_keyingset_exec (bContext *C, wmOperator *op){ Scene *scene= CTX_data_scene(C); short flag=0, keyingflag=0; /* validate flags * - absolute KeyingSets should be created by default */ flag |= KEYINGSET_ABSOLUTE; if (IS_AUTOKEY_FLAG(AUTOMATKEY)) keyingflag |= INSERTKEY_MATRIX; if (IS_AUTOKEY_FLAG(INSERTNEEDED)) keyingflag |= INSERTKEY_NEEDED; /* call the API func, and set the active keyingset index */ BKE_keyingset_add(&scene->keyingsets, NULL, flag, keyingflag); scene->active_keyingset= BLI_countlist(&scene->keyingsets); /* send notifiers */ WM_event_add_notifier(C, NC_SCENE|ND_KEYINGSET, NULL); return OPERATOR_FINISHED;}
开发者ID:jinjoh,项目名称:NOOR,代码行数:25,
示例6: set_constraint_nth_target/* helper function for add_constriant - sets the last target for the active constraint */static void set_constraint_nth_target (bConstraint *con, Object *target, char subtarget[], int index){ bConstraintTypeInfo *cti= constraint_get_typeinfo(con); ListBase targets = {NULL, NULL}; bConstraintTarget *ct; int num_targets, i; if (cti && cti->get_constraint_targets) { cti->get_constraint_targets(con, &targets); num_targets= BLI_countlist(&targets); if (index < 0) { if (abs(index) < num_targets) index= num_targets - abs(index); else index= num_targets - 1; } else if (index >= num_targets) { index= num_targets - 1; } for (ct=targets.first, i=0; ct; ct= ct->next, i++) { if (i == index) { ct->tar= target; strcpy(ct->subtarget, subtarget); break; } } if (cti->flush_constraint_targets) cti->flush_constraint_targets(con, &targets, 0); }}
开发者ID:jinjoh,项目名称:NOOR,代码行数:34,
示例7: ui_imageuser_layer_menustatic void ui_imageuser_layer_menu(bContext *UNUSED(C), uiLayout *layout, void *rnd_pt){ void **rnd_data = rnd_pt; uiBlock *block = uiLayoutGetBlock(layout); RenderResult *rr = rnd_data[0]; ImageUser *iuser = rnd_data[1]; RenderLayer *rl; RenderLayer rl_fake = {NULL}; const char *fake_name; int nr; uiBlockSetCurLayout(block, layout); uiLayoutColumn(layout, false); uiDefBut(block, LABEL, 0, IFACE_("Layer"), 0, 0, UI_UNIT_X * 5, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, ""); uiItemS(layout); nr = BLI_countlist(&rr->layers) - 1; fake_name = ui_imageuser_layer_fake_name(rr); if (fake_name) { BLI_strncpy(rl_fake.name, fake_name, sizeof(rl_fake.name)); nr += 1; } for (rl = rr->layers.last; rl; rl = rl->prev, nr--) {final: uiDefButS(block, BUTM, B_NOP, IFACE_(rl->name), 0, 0, UI_UNIT_X * 5, UI_UNIT_X, &iuser->layer, (float) nr, 0.0, 0, -1, ""); }
开发者ID:zedd4x,项目名称:bepuik,代码行数:31,
示例8: BLI_countlist/* rl==NULL means composite result */static char *pass_menu(RenderLayer *rl, short *curpass){ RenderPass *rpass; int len = 64 + 32 * (rl ? BLI_countlist(&rl->passes) : 1); short a, nr = 0; char *str = MEM_callocN(len, "menu layers"); strcpy(str, IFACE_("Pass %t")); a = strlen(str); /* rendered results don't have a Combined pass */ if (rl == NULL || rl->rectf) { a += sprintf(str + a, "|%s %%x0", IFACE_("Combined")); nr = 1; } if (rl) for (rpass = rl->passes.first; rpass; rpass = rpass->next, nr++) a += sprintf(str + a, "|%s %%x%d", IFACE_(rpass->name), nr); if (*curpass >= nr) *curpass = 0; return str;}
开发者ID:Eibriel,项目名称:kiriblender,代码行数:26,
示例9: BKE_rigidbody_rebuild_world/* NOTE: this needs to be called before frame update to work correctly */void BKE_rigidbody_rebuild_world(Scene *scene, float ctime){ RigidBodyWorld *rbw = scene->rigidbody_world; PointCache *cache; PTCacheID pid; int startframe, endframe; BKE_ptcache_id_from_rigidbody(&pid, NULL, rbw); BKE_ptcache_id_time(&pid, scene, ctime, &startframe, &endframe, NULL); cache = rbw->pointcache; /* flag cache as outdated if we don't have a world or number of objects in the simulation has changed */ if (rbw->physics_world == NULL || rbw->numbodies != BLI_countlist(&rbw->group->gobject)) { cache->flag |= PTCACHE_OUTDATED; } if (ctime == startframe + 1 && rbw->ltime == startframe) { if (cache->flag & PTCACHE_OUTDATED) { BKE_ptcache_id_reset(scene, &pid, PTCACHE_RESET_OUTDATED); rigidbody_update_simulation(scene, rbw, true); BKE_ptcache_validate(cache, (int)ctime); cache->last_exact = 0; cache->flag &= ~PTCACHE_REDO_NEEDED; } }}
开发者ID:benkahle,项目名称:blendertests,代码行数:27,
示例10: add_empty_ks_path_execstatic int add_empty_ks_path_exec(bContext *C, wmOperator *op){ Scene *scene = CTX_data_scene(C); KeyingSet *ks; KS_Path *ksp; /* verify the Keying Set to use: * - use the active one * - return error if it doesn't exist */ if (scene->active_keyingset == 0) { BKE_report(op->reports, RPT_ERROR, "No active keying set to add empty path to"); return OPERATOR_CANCELLED; } else ks = BLI_findlink(&scene->keyingsets, scene->active_keyingset - 1); /* don't use the API method for this, since that checks on values... */ ksp = MEM_callocN(sizeof(KS_Path), "KeyingSetPath Empty"); BLI_addtail(&ks->paths, ksp); ks->active_path = BLI_countlist(&ks->paths); ksp->groupmode = KSP_GROUP_KSNAME; // XXX? ksp->idtype = ID_OB; ksp->flag = KSP_FLAG_WHOLE_ARRAY; return OPERATOR_FINISHED;}
开发者ID:castlelore,项目名称:blender-git,代码行数:28,
示例11: rna_KeyingSet_active_ksPath_index_rangestatic void rna_KeyingSet_active_ksPath_index_range(PointerRNA *ptr, int *min, int *max, int *softmin, int *softmax){ KeyingSet *ks = (KeyingSet *)ptr->data; *min = 0; *max = max_ii(0, BLI_countlist(&ks->paths) - 1);}
开发者ID:244xiao,项目名称:blender,代码行数:7,
示例12: rna_Action_active_pose_marker_index_rangestatic void rna_Action_active_pose_marker_index_range(PointerRNA *ptr, int *min, int *max, int *UNUSED(softmin), int *UNUSED(softmax)){ bAction *act = (bAction *)ptr->data; *min = 0; *max = max_ii(0, BLI_countlist(&act->markers) - 1);}
开发者ID:Walid-Shouman,项目名称:Blender,代码行数:8,
示例13: ED_object_shape_key_addstatic void ED_object_shape_key_add(bContext *C, Scene *scene, Object *ob, int from_mix){ if(object_insert_shape_key(scene, ob, NULL, from_mix)) { Key *key= ob_get_key(ob); ob->shapenr= BLI_countlist(&key->block); WM_event_add_notifier(C, NC_OBJECT|ND_DRAW, ob); }}
开发者ID:OldBrunet,项目名称:BGERTPS,代码行数:9,
示例14: text_drawcache_initstatic void text_drawcache_init(SpaceText *st){ DrawCache *drawcache = MEM_callocN(sizeof(DrawCache), "text draw cache"); drawcache->winx = -1; drawcache->nlines = BLI_countlist(&st->text->lines); drawcache->text_id[0] = '/0'; st->drawcache = drawcache;}
开发者ID:Eibriel,项目名称:kiriblender,代码行数:10,
示例15: ctx_data_list_countint ctx_data_list_count(const bContext *C, int (*func)(const bContext*, ListBase*)){ ListBase list; if(func(C, &list)) { int tot= BLI_countlist(&list); BLI_freelistN(&list); return tot; } else return 0;}
开发者ID:BHCLL,项目名称:blendocv,代码行数:12,
示例16: vgroup_duplicatestatic void vgroup_duplicate(Object *ob){ bDeformGroup *dg, *cdg; char name[32], s[32]; MDeformWeight *org, *cpy; MDeformVert *dvert, *dvert_array=NULL; int i, idg, icdg, dvert_tot=0; dg = BLI_findlink(&ob->defbase, (ob->actdef-1)); if(!dg) return; if(strstr(dg->name, "_copy")) { BLI_strncpy(name, dg->name, 32); /* will be renamed _copy.001... etc */ } else { BLI_snprintf(name, 32, "%s_copy", dg->name); while(get_named_vertexgroup(ob, name)) { if((strlen(name) + 6) > 32) { printf("Internal error: the name for the new vertex group is > 32 characters"); return; } strcpy(s, name); BLI_snprintf(name, 32, "%s_copy", s); } } cdg = copy_defgroup(dg); strcpy(cdg->name, name); unique_vertexgroup_name(cdg, ob); BLI_addtail(&ob->defbase, cdg); idg = (ob->actdef-1); ob->actdef = BLI_countlist(&ob->defbase); icdg = (ob->actdef-1); ED_vgroup_give_array(ob->data, &dvert_array, &dvert_tot); if(!dvert_array) return; for(i = 0; i < dvert_tot; i++) { dvert = dvert_array+i; org = ED_vgroup_weight_get(dvert, idg); if(org) { float weight = org->weight; /* ED_vgroup_weight_verify re-allocs org so need to store the weight first */ cpy = ED_vgroup_weight_verify(dvert, icdg); cpy->weight = weight; } }}
开发者ID:jinjoh,项目名称:NOOR,代码行数:53,
注:本文中的BLI_countlist函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 C++ BLI_dynstr_append函数代码示例 C++ BLI_addtail函数代码示例 |