您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ BLI_findindex函数代码示例

51自学网 2021-06-01 19:51:04
  C++
这篇教程C++ BLI_findindex函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中BLI_findindex函数的典型用法代码示例。如果您正苦于以下问题:C++ BLI_findindex函数的具体用法?C++ BLI_findindex怎么用?C++ BLI_findindex使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了BLI_findindex函数的27个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: rna_Action_fcurve_remove

static void rna_Action_fcurve_remove(bAction *act, ReportList *reports, PointerRNA *fcu_ptr){    FCurve *fcu = fcu_ptr->data;    if (fcu->grp) {        if (BLI_findindex(&act->groups, fcu->grp) == -1) {            BKE_reportf(reports, RPT_ERROR, "F-Curve's action group '%s' not found in action '%s'",                        fcu->grp->name, act->id.name + 2);            return;        }        action_groups_remove_channel(act, fcu);        free_fcurve(fcu);        RNA_POINTER_INVALIDATE(fcu_ptr);    }    else {        if (BLI_findindex(&act->curves, fcu) == -1) {            BKE_reportf(reports, RPT_ERROR, "F-Curve not found in action '%s'", act->id.name + 2);            return;        }        BLI_remlink(&act->curves, fcu);        free_fcurve(fcu);        RNA_POINTER_INVALIDATE(fcu_ptr);    }}
开发者ID:Walid-Shouman,项目名称:Blender,代码行数:25,


示例2: ANIM_scene_get_keyingset_index

/* Get the index of the Keying Set provided, for the given Scene */int ANIM_scene_get_keyingset_index(Scene *scene, KeyingSet *ks){	int index;		/* if no KeyingSet provided, have none */	if (ks == NULL)		return 0;		/* check if the KeyingSet exists in scene list */	if (scene) {		/* get index and if valid, return 		 *	- (absolute) Scene KeyingSets are from (>= 1)		 */		index = BLI_findindex(&scene->keyingsets, ks);		if (index != -1)			return (index + 1);	}		/* still here, so try builtins list too 	 *	- builtins are from (<= -1)	 *	- none/invalid is (= 0)	 */	index = BLI_findindex(&builtin_keyingsets, ks);	if (index != -1)		return -(index + 1);	else		return 0;}
开发者ID:castlelore,项目名称:blender-git,代码行数:29,


示例3: BLI_findindex

static char *rna_MetaElement_path(PointerRNA *ptr){	MetaBall *mb = ptr->id.data;	MetaElem *ml = ptr->data;	int index = -1;	if (mb->editelems)		index = BLI_findindex(mb->editelems, ml);	if (index == -1)		index = BLI_findindex(&mb->elems, ml);	if (index == -1)		return NULL;	return BLI_sprintfN("elements[%d]", index);}
开发者ID:YasirArafath,项目名称:blender-git,代码行数:15,


示例4: BKE_linestyle_color_modifier_remove

int BKE_linestyle_color_modifier_remove(FreestyleLineStyle *linestyle, LineStyleModifier *m){	if (BLI_findindex(&linestyle->color_modifiers, m) == -1)		return -1;	switch (m->type) {		case LS_MODIFIER_ALONG_STROKE:			MEM_freeN(((LineStyleColorModifier_AlongStroke *)m)->color_ramp);			break;		case LS_MODIFIER_DISTANCE_FROM_CAMERA:			MEM_freeN(((LineStyleColorModifier_DistanceFromCamera *)m)->color_ramp);			break;		case LS_MODIFIER_DISTANCE_FROM_OBJECT:			MEM_freeN(((LineStyleColorModifier_DistanceFromObject *)m)->color_ramp);			break;		case LS_MODIFIER_MATERIAL:			MEM_freeN(((LineStyleColorModifier_Material *)m)->color_ramp);			break;		case LS_MODIFIER_TANGENT:			MEM_freeN(((LineStyleColorModifier_Tangent *)m)->color_ramp);			break;		case LS_MODIFIER_NOISE:			MEM_freeN(((LineStyleColorModifier_Noise *)m)->color_ramp);			break;		case LS_MODIFIER_CREASE_ANGLE:			MEM_freeN(((LineStyleColorModifier_CreaseAngle *)m)->color_ramp);			break;		case LS_MODIFIER_CURVATURE_3D:			MEM_freeN(((LineStyleColorModifier_Curvature_3D *)m)->color_ramp);			break;	}	BLI_freelinkN(&linestyle->color_modifiers, m);	return 0;}
开发者ID:rav66,项目名称:blender,代码行数:33,


示例5: BKE_linestyle_thickness_modifier_remove

int BKE_linestyle_thickness_modifier_remove(FreestyleLineStyle *linestyle, LineStyleModifier *m){	if (BLI_findindex(&linestyle->thickness_modifiers, m) == -1)		return -1;	switch (m->type) {		case LS_MODIFIER_ALONG_STROKE:			curvemapping_free(((LineStyleThicknessModifier_AlongStroke *)m)->curve);			break;		case LS_MODIFIER_DISTANCE_FROM_CAMERA:			curvemapping_free(((LineStyleThicknessModifier_DistanceFromCamera *)m)->curve);			break;		case LS_MODIFIER_DISTANCE_FROM_OBJECT:			curvemapping_free(((LineStyleThicknessModifier_DistanceFromObject *)m)->curve);			break;		case LS_MODIFIER_MATERIAL:			curvemapping_free(((LineStyleThicknessModifier_Material *)m)->curve);			break;		case LS_MODIFIER_CALLIGRAPHY:			break;		case LS_MODIFIER_TANGENT:			curvemapping_free(((LineStyleThicknessModifier_Tangent *)m)->curve);			break;		case LS_MODIFIER_NOISE:			break;		case LS_MODIFIER_CREASE_ANGLE:			break;		case LS_MODIFIER_CURVATURE_3D:			break;	}	BLI_freelinkN(&linestyle->thickness_modifiers, m);	return 0;}
开发者ID:rav66,项目名称:blender,代码行数:32,


示例6: set_vertex_channel

static void set_vertex_channel(float *channel, float time, struct Scene *scene, struct FluidObject *fobj, int i){	Object *ob = fobj->object;	FluidsimModifierData *fluidmd = (FluidsimModifierData *)modifiers_findByType(ob, eModifierType_Fluidsim);	float *verts;	int *tris=NULL, numVerts=0, numTris=0;	int modifierIndex = BLI_findindex(&ob->modifiers, fluidmd);	int framesize = (3*fobj->numVerts) + 1;	int j;		if (channel == NULL)		return;		initElbeemMesh(scene, ob, &numVerts, &verts, &numTris, &tris, 1, modifierIndex);		/* don't allow mesh to change number of verts in anim sequence */	if (numVerts != fobj->numVerts) {		MEM_freeN(channel);		channel = NULL;		return;	}		/* fill frame of channel with vertex locations */	for (j=0; j < (3*numVerts); j++) {		channel[i*framesize + j] = verts[j];	}	channel[i*framesize + framesize-1] = time;		MEM_freeN(verts);	MEM_freeN(tris);}
开发者ID:Bforartists,项目名称:Bforartists,代码行数:31,


示例7: nodeAddSocket

bNodeSocket *ntreeCompositOutputFileAddSocket(bNodeTree *ntree, bNode *node, const char *name, ImageFormatData *im_format){	NodeImageMultiFile *nimf = node->storage;	bNodeSocket *sock = nodeAddSocket(ntree, node, SOCK_IN, "", SOCK_RGBA);		/* create format data for the input socket */	NodeImageMultiFileSocket *sockdata = MEM_callocN(sizeof(NodeImageMultiFileSocket), "socket image format");	sock->storage = sockdata;		BLI_strncpy_utf8(sockdata->path, name, sizeof(sockdata->path));	ntreeCompositOutputFileUniquePath(&node->inputs, sock, name, '_');	BLI_strncpy_utf8(sockdata->layer, name, sizeof(sockdata->layer));	ntreeCompositOutputFileUniqueLayer(&node->inputs, sock, name, '_');		if (im_format) {		sockdata->format= *im_format;		if (BKE_imtype_is_movie(sockdata->format.imtype)) {			sockdata->format.imtype= R_IMF_IMTYPE_OPENEXR;		}	}	else		BKE_imformat_defaults(&sockdata->format);	/* use node data format by default */	sockdata->use_node_format = TRUE;		nimf->active_input = BLI_findindex(&node->inputs, sock);		return sock;}
开发者ID:vanangamudi,项目名称:blender-main,代码行数:29,


示例8: BKE_pose_remove_group

/* Remove the given bone-group (expects 'virtual' index (+1 one, used by active_group etc.)) * index might be invalid ( < 1), in which case it will be find from grp. */void BKE_pose_remove_group(bPose *pose, bActionGroup *grp, const int index){	bPoseChannel *pchan;	int idx = index;		if (idx < 1) {		idx = BLI_findindex(&pose->agroups, grp) + 1;	}		BLI_assert(idx > 0);		/* adjust group references (the trouble of using indices!):	 *  - firstly, make sure nothing references it	 *  - also, make sure that those after this item get corrected	 */	for (pchan = pose->chanbase.first; pchan; pchan = pchan->next) {		if (pchan->agrp_index == idx)			pchan->agrp_index = 0;		else if (pchan->agrp_index > idx)			pchan->agrp_index--;	}	/* now, remove it from the pose */	BLI_freelinkN(&pose->agroups, grp);	if (pose->active_group >= idx) {		const bool has_groups = !BLI_listbase_is_empty(&pose->agroups);		pose->active_group--;		if (pose->active_group == 0 && has_groups) {			pose->active_group = 1;		}		else if (pose->active_group < 0 || !has_groups) {			pose->active_group = 0;		}	}}
开发者ID:UPBGE,项目名称:blender,代码行数:37,


示例9: rna_GPencil_active_layer_index_get

static int rna_GPencil_active_layer_index_get(PointerRNA *ptr){	bGPdata *gpd = (bGPdata *)ptr->id.data;	bGPDlayer *gpl = gpencil_layer_getactive(gpd);		return BLI_findindex(&gpd->layers, gpl);}
开发者ID:Andrewson3D,项目名称:blender-for-vray,代码行数:7,


示例10: tree_element_active_sequence

static int tree_element_active_sequence(bContext *C, Scene *scene, TreeElement *te, TreeStoreElem *UNUSED(tselem), int set){	Sequence *seq = (Sequence *) te->directdata;	Editing *ed = BKE_sequencer_editing_get(scene, FALSE);	if (set) {		/* only check on setting */		if (BLI_findindex(ed->seqbasep, seq) != -1) {			if (set == 2) {				BKE_sequencer_active_set(scene, NULL);			}			ED_sequencer_deselect_all(scene);			if (set == 2 && seq->flag & SELECT) {				seq->flag &= ~SELECT;			}			else {				seq->flag |= SELECT;				BKE_sequencer_active_set(scene, seq);			}		}		WM_event_add_notifier(C, NC_SCENE | ND_SEQUENCER | NA_SELECTED, scene);	}	else {		if (ed->act_seq == seq && seq->flag & SELECT) {			return 1;		}	}	return(0);}
开发者ID:danielmarg,项目名称:blender-main,代码行数:31,


示例11:

static uiBlock *ui_block_func_PIE(bContext *UNUSED(C), uiPopupBlockHandle *handle, void *arg_pie){	uiBlock *block;	uiPieMenu *pie = arg_pie;	int minwidth, width, height;	minwidth = 50;	block = pie->block_radial;	/* in some cases we create the block before the region,	 * so we set it delayed here if necessary */	if (BLI_findindex(&handle->region->uiblocks, block) == -1)		UI_block_region_set(block, handle->region);	UI_block_layout_resolve(block, &width, &height);	UI_block_flag_enable(block, UI_BLOCK_LOOP | UI_BLOCK_NUMSELECT);	block->minbounds = minwidth;	block->bounds = 1;	block->mx = 0;	block->my = 0;	block->bounds_type = UI_BLOCK_BOUNDS_PIE_CENTER;	block->pie_data.pie_center_spawned[0] = pie->mx;	block->pie_data.pie_center_spawned[1] = pie->my;	return pie->block_radial;}
开发者ID:wisaac407,项目名称:blender,代码行数:29,


示例12: BKE_linestyle_geometry_modifier_remove

int BKE_linestyle_geometry_modifier_remove(FreestyleLineStyle *linestyle, LineStyleModifier *m){	if (BLI_findindex(&linestyle->geometry_modifiers, m) == -1)		return -1;	BLI_freelinkN(&linestyle->geometry_modifiers, m);	return 0;}
开发者ID:rav66,项目名称:blender,代码行数:7,


示例13: buttons_texture_context_compute

void buttons_texture_context_compute(const bContext *C, SpaceProperties *sbuts){  /* gather available texture users in context. runs on every draw of   * properties editor, before the buttons are created. */  ButsContextTexture *ct = sbuts->texuser;  ID *pinid = sbuts->pinid;  if (!ct) {    ct = MEM_callocN(sizeof(ButsContextTexture), "ButsContextTexture");    sbuts->texuser = ct;  }  else {    BLI_freelistN(&ct->users);  }  buttons_texture_users_from_context(&ct->users, C, sbuts);  if (pinid && GS(pinid->name) == ID_TE) {    ct->user = NULL;    ct->texture = (Tex *)pinid;  }  else {    /* set one user as active based on active index */    if (ct->index >= BLI_listbase_count_at_most(&ct->users, ct->index + 1)) {      ct->index = 0;    }    ct->user = BLI_findlink(&ct->users, ct->index);    ct->texture = NULL;    if (ct->user) {      if (ct->user->ptr.data) {        PointerRNA texptr;        Tex *tex;        /* get texture datablock pointer if it's a property */        texptr = RNA_property_pointer_get(&ct->user->ptr, ct->user->prop);        tex = (RNA_struct_is_a(texptr.type, &RNA_Texture)) ? texptr.data : NULL;        ct->texture = tex;      }      else if (ct->user->node && !(ct->user->node->flag & NODE_ACTIVE_TEXTURE)) {        ButsTextureUser *user;        /* detect change of active texture node in same node tree, in that         * case we also automatically switch to the other node */        for (user = ct->users.first; user; user = user->next) {          if (user->ntree == ct->user->ntree && user->node != ct->user->node) {            if (user->node->flag & NODE_ACTIVE_TEXTURE) {              ct->user = user;              ct->index = BLI_findindex(&ct->users, user);              break;            }          }        }      }    }  }}
开发者ID:dfelinto,项目名称:blender,代码行数:59,


示例14: rna_RenderSlot_clear

static void rna_RenderSlot_clear(ID *id, RenderSlot *slot, ImageUser *iuser){  Image *image = (Image *)id;  int index = BLI_findindex(&image->renderslots, slot);  BKE_image_clear_renderslot(image, iuser, index);  WM_main_add_notifier(NC_IMAGE | ND_DISPLAY, image);}
开发者ID:dfelinto,项目名称:blender,代码行数:8,


示例15: BLI_remlink_safe

/** * Checks that /a vlink is linked into listbase, removing it from there if so. */bool BLI_remlink_safe(ListBase *listbase, void *vlink){	if (BLI_findindex(listbase, vlink) != -1) {		BLI_remlink(listbase, vlink);		return true;	}	else {		return false;	}}
开发者ID:floored,项目名称:blender,代码行数:13,


示例16: BKE_sequence_modifier_remove

int BKE_sequence_modifier_remove(Sequence *seq, SequenceModifierData *smd){	if (BLI_findindex(&seq->modifiers, smd) == -1)		return FALSE;	BLI_remlink(&seq->modifiers, smd);	BKE_sequence_modifier_free(smd);	return TRUE;}
开发者ID:danielmarg,项目名称:blender-main,代码行数:10,


示例17: text_drawcache_tag_update

void text_drawcache_tag_update(SpaceText *st, int full){	/* this happens if text editor ops are caled from python */	if (st == NULL)		return;			if (st->drawcache) {		DrawCache *drawcache = (DrawCache *)st->drawcache;		Text *txt = st->text;		if (drawcache->update_flag) {			/* happens when tagging update from space listener */			/* should do nothing to prevent locally tagged cache be fully recalculated */			return;		}		if (!full) {			int sellno = BLI_findindex(&txt->lines, txt->sell);			int curlno = BLI_findindex(&txt->lines, txt->curl);			if (curlno < sellno) {				drawcache->valid_head = curlno;				drawcache->valid_tail = drawcache->nlines - sellno - 1;			}			else {				drawcache->valid_head = sellno;				drawcache->valid_tail = drawcache->nlines - curlno - 1;			}			/* quick cache recalculation is also used in delete operator,			 * which could merge lines which are adjacent to current selection lines			 * expand recalculate area to this lines */			if (drawcache->valid_head > 0) drawcache->valid_head--;			if (drawcache->valid_tail > 0) drawcache->valid_tail--;		}		else {			drawcache->valid_head = 0;			drawcache->valid_tail = 0;		}		drawcache->update_flag = 1;	}}
开发者ID:Eibriel,项目名称:kiriblender,代码行数:43,


示例18: BKE_sequence_modifier_remove

bool BKE_sequence_modifier_remove(Sequence *seq, SequenceModifierData *smd){	if (BLI_findindex(&seq->modifiers, smd) == -1)		return false;	BLI_remlink(&seq->modifiers, smd);	BKE_sequence_modifier_free(smd);	return true;}
开发者ID:mgschwan,项目名称:blensor,代码行数:10,


示例19: BLI_remlink_safe

int BLI_remlink_safe(ListBase *listbase, void *vlink){	if (BLI_findindex(listbase, vlink) != -1) {		BLI_remlink(listbase, vlink);		return 1;	}	else {		return 0;	}}
开发者ID:nttputus,项目名称:blensor,代码行数:10,


示例20: rna_MaskLayer_active_spline_set

static void rna_MaskLayer_active_spline_set(PointerRNA *ptr, PointerRNA value){	MaskLayer *masklay = (MaskLayer *)ptr->data;	MaskSpline *spline = (MaskSpline *)value.data;	int index = BLI_findindex(&masklay->splines, spline);	if (index >= 0)		masklay->act_spline = spline;	else		masklay->act_spline = NULL;}
开发者ID:ilent2,项目名称:Blender-Billboard-Modifier,代码行数:11,


示例21: ED_object_shape_key_add

static void ED_object_shape_key_add(bContext *C, Object *ob, const bool from_mix){	KeyBlock *kb;	if ((kb = BKE_object_shapekey_insert(ob, NULL, from_mix))) {		Key *key = BKE_key_from_object(ob);		/* for absolute shape keys, new keys may not be added last */		ob->shapenr = BLI_findindex(&key->block, kb) + 1;		WM_event_add_notifier(C, NC_OBJECT | ND_DRAW, ob);	}}
开发者ID:Bforartists,项目名称:Bforartists,代码行数:11,


示例22: rna_object_shapekey_index_set

int rna_object_shapekey_index_set(ID *id, PointerRNA value, int current){	Key *key = rna_ShapeKey_find_key(id);	if (key) {		int a = BLI_findindex(&key->block, value.data);		if (a != -1) return a;	}		return current;}
开发者ID:Walid-Shouman,项目名称:Blender,代码行数:11,


示例23: WM_keymap_remove_item

void WM_keymap_remove_item(wmKeyMap *keymap, wmKeyMapItem *kmi){	if(BLI_findindex(&keymap->items, kmi) != -1) {		if(kmi->ptr) {			WM_operator_properties_free(kmi->ptr);			MEM_freeN(kmi->ptr);		}		BLI_freelinkN(&keymap->items, kmi);		WM_keyconfig_update_tag(keymap, kmi);	}}
开发者ID:OldBrunet,项目名称:BGERTPS,代码行数:12,


示例24:

/** * /note, ideally we can get the area from the context, * there are a few places however where this isn't practical. */ScrArea *BKE_screen_find_area_from_space(struct bScreen *sc, SpaceLink *sl){	ScrArea *sa;	for (sa = sc->areabase.first; sa; sa = sa->next) {		if (BLI_findindex(&sa->spacedata, sl) != -1) {			break;		}	}	return sa;}
开发者ID:Andrewson3D,项目名称:blender-for-vray,代码行数:16,


示例25: rna_render_slots_active_set

static void rna_render_slots_active_set(PointerRNA *ptr,                                        PointerRNA value,                                        struct ReportList *UNUSED(reports)){  Image *image = (Image *)ptr->id.data;  if (value.id.data == image) {    RenderSlot *slot = (RenderSlot *)value.data;    int index = BLI_findindex(&image->renderslots, slot);    if (index != -1)      image->render_slot = index;  }}
开发者ID:dfelinto,项目名称:blender,代码行数:12,


示例26: sequence_cb

static void sequence_cb(int event, TreeElement *te, TreeStoreElem *tselem, void *scene_ptr){	Sequence *seq = (Sequence *)te->directdata;	if (event == 1) {		Scene *scene = (Scene *)scene_ptr;		Editing *ed = BKE_sequencer_editing_get(scene, false);		if (BLI_findindex(ed->seqbasep, seq) != -1) {			ED_sequencer_select_sequence_single(scene, seq, true);		}	}	(void)tselem;}
开发者ID:244xiao,项目名称:blender,代码行数:13,


示例27: rna_Mask_layers_remove

static void rna_Mask_layers_remove(Mask *mask, ReportList *reports, PointerRNA *masklay_ptr){	MaskLayer *masklay = masklay_ptr->data;	if (BLI_findindex(&mask->masklayers, masklay) == -1) {		BKE_reportf(reports, RPT_ERROR, "Mask layer '%s' not found in mask '%s'", masklay->name, mask->id.name + 2);		return;	}	BKE_mask_layer_remove(mask, masklay);	RNA_POINTER_INVALIDATE(masklay_ptr);	WM_main_add_notifier(NC_MASK | NA_EDITED, mask);}
开发者ID:ilent2,项目名称:Blender-Billboard-Modifier,代码行数:13,



注:本文中的BLI_findindex函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ BLI_findlink函数代码示例
C++ BLI_exists函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。