static PointerRNA rna_BoidSettings_active_boid_state_get(PointerRNA *ptr) { BoidSettings *boids = (BoidSettings *)ptr->data; BoidState *state = (BoidState *)boids->states.first; for (; state; state = state->next) { if (state->flag & BOIDSTATE_CURRENT) return rna_pointer_inherit_refine(ptr, &RNA_BoidState, state); } return rna_pointer_inherit_refine(ptr, &RNA_BoidState, NULL); }
static PointerRNA rna_BoidState_active_boid_rule_get(PointerRNA *ptr) { BoidState *state = (BoidState *)ptr->data; BoidRule *rule = (BoidRule *)state->rules.first; for (; rule; rule = rule->next) { if (rule->flag & BOIDRULE_CURRENT) return rna_pointer_inherit_refine(ptr, &RNA_BoidRule, rule); } return rna_pointer_inherit_refine(ptr, &RNA_BoidRule, NULL); }
static PointerRNA rna_RenderEngine_camera_override_get(PointerRNA *ptr) { RenderEngine *engine = (RenderEngine *)ptr->data; if (engine->re) { Object *cam = RE_GetCamera(engine->re); return rna_pointer_inherit_refine(ptr, &RNA_Object, cam); } else { return rna_pointer_inherit_refine(ptr, &RNA_Object, engine->camera_override); } }
static PointerRNA rna_Curve_active_nurb_get(PointerRNA *ptr) { Curve *cu= (Curve*)ptr->data; Nurb *nu= NULL; if(cu->editnurb) nu = BLI_findlink(cu->editnurb, cu->actnu); if(nu) return rna_pointer_inherit_refine(ptr, &RNA_Nurb, nu); return rna_pointer_inherit_refine(ptr, NULL, NULL); }
static PointerRNA rna_RenderEngine_render_get(PointerRNA *ptr) { RenderEngine *engine = (RenderEngine *)ptr->data; if (engine->re) { RenderData *r = RE_engine_get_render_data(engine->re); return rna_pointer_inherit_refine(ptr, &RNA_RenderSettings, r); } else { return rna_pointer_inherit_refine(ptr, &RNA_RenderSettings, NULL); } }
static PointerRNA rna_PaintSurface_active_get(PointerRNA *ptr) { DynamicPaintCanvasSettings *canvas = (DynamicPaintCanvasSettings *)ptr->data; DynamicPaintSurface *surface = canvas->surfaces.first; int id = 0; for (; surface; surface = surface->next) { if (id == canvas->active_sur) return rna_pointer_inherit_refine(ptr, &RNA_DynamicPaintSurface, surface); id++; } return rna_pointer_inherit_refine(ptr, &RNA_DynamicPaintSurface, NULL); }
static PointerRNA rna_IDPreview_get(PointerRNA *ptr) { ID *id = (ID *)ptr->data; PreviewImage *prv_img = BKE_previewimg_id_ensure(id); return rna_pointer_inherit_refine(ptr, &RNA_ImagePreview, prv_img); }
static PointerRNA rna_render_slots_active_get(PointerRNA *ptr) { Image *image = (Image *)ptr->id.data; RenderSlot *render_slot = BKE_image_get_renderslot(image, image->render_slot); return rna_pointer_inherit_refine(ptr, &RNA_RenderSlot, render_slot); }
static PointerRNA rna_Mask_layer_active_get(PointerRNA *ptr) { Mask *mask = (Mask *)ptr->id.data; MaskLayer *masklay = BKE_mask_layer_active(mask); return rna_pointer_inherit_refine(ptr, &RNA_MaskLayer, masklay); }
static PointerRNA rna_Group_objects_get(CollectionPropertyIterator *iter) { ListBaseIterator *internal = iter->internal; /* we are actually iterating a GroupObject list, so override get */ return rna_pointer_inherit_refine(&iter->parent, &RNA_Object, ((GroupObject *)internal->link)->ob); }
static PointerRNA rna_Struct_functions_get(CollectionPropertyIterator *iter) { ListBaseIterator *internal= iter->internal; /* we return either PropertyRNA* or IDProperty*, the rna_access.c * functions can handle both as PropertyRNA* with some tricks */ return rna_pointer_inherit_refine(&iter->parent, &RNA_Function, internal->link); }
static PointerRNA rna_Lamp_active_texture_get(PointerRNA *ptr) { Lamp *la = (Lamp *)ptr->data; Tex *tex; tex = give_current_lamp_texture(la); return rna_pointer_inherit_refine(ptr, &RNA_Texture, tex); }
static PointerRNA rna_World_active_texture_get(PointerRNA *ptr) { World *wo= (World*)ptr->data; Tex *tex; tex= give_current_world_texture(wo); return rna_pointer_inherit_refine(ptr, &RNA_Texture, tex); }
static PointerRNA rna_ViewLayer_objects_get(CollectionPropertyIterator *iter) { ListBaseIterator *internal = &iter->internal.listbase; /* we are actually iterating a ObjectBase list */ Base *base = (Base *)internal->link; return rna_pointer_inherit_refine(&iter->parent, &RNA_Object, base->object); }
static PointerRNA rna_ParticleEdit_brush_get(PointerRNA *ptr) { ParticleEditSettings *pset = (ParticleEditSettings *)ptr->data; ParticleBrushData *brush = NULL; if (pset->brushtype != PE_BRUSH_NONE) brush = &pset->brush[pset->brushtype]; return rna_pointer_inherit_refine(ptr, &RNA_ParticleBrush, brush); }
static PointerRNA rna_GPencilSculptSettings_brush_get(PointerRNA *ptr) { GP_BrushEdit_Settings *gset = (GP_BrushEdit_Settings *)ptr->data; GP_EditBrush_Data *brush = NULL; if ((gset->brushtype >= 0) && (gset->brushtype < TOT_GP_EDITBRUSH_TYPES)) brush = &gset->brush[gset->brushtype]; return rna_pointer_inherit_refine(ptr, &RNA_GPencilSculptBrush, brush); }
static PointerRNA rna_KeyingSet_typeinfo_get(PointerRNA *ptr) { KeyingSet *ks = (KeyingSet *)ptr->data; KeyingSetInfo *ksi = NULL; /* keying set info is only for builtin Keying Sets */ if ((ks->flag & KEYINGSET_ABSOLUTE) == 0) ksi = ANIM_keyingset_info_find_name(ks->typeinfo); return rna_pointer_inherit_refine(ptr, &RNA_KeyingSetInfo, ksi); }
static PointerRNA rna_GPencil_active_layer_get(PointerRNA *ptr) { bGPdata *gpd= ptr->id.data; if (GS(gpd->id.name) == ID_GD) { /* why would this ever be not GD */ bGPDlayer *gl; for (gl= gpd->layers.first; gl; gl= gl->next) { if(gl->flag & GP_LAYER_ACTIVE) { break; } } if(gl) { return rna_pointer_inherit_refine(ptr, &RNA_GPencilLayer, gl); } } return rna_pointer_inherit_refine(ptr, NULL, NULL); }
static PointerRNA rna_ViewLayer_depsgraph_get(PointerRNA *ptr) { ID *id = ptr->id.data; if (GS(id->name) == ID_SCE) { Scene *scene = (Scene *)id; ViewLayer *view_layer = (ViewLayer *)ptr->data; Depsgraph *depsgraph = BKE_scene_get_depsgraph(scene, view_layer, false); return rna_pointer_inherit_refine(ptr, &RNA_Depsgraph, depsgraph); } return PointerRNA_NULL; }
static PointerRNA rna_Image_packed_file_get(PointerRNA *ptr) { Image *ima = (Image *)ptr->id.data; if (BKE_image_has_packedfile(ima)) { ImagePackedFile *imapf = ima->packedfiles.first; return rna_pointer_inherit_refine(ptr, &RNA_PackedFile, imapf->packedfile); } else { return PointerRNA_NULL; } }
static PointerRNA rna_ShapeKey_data_get(CollectionPropertyIterator *iter) { Key *key = rna_ShapeKey_find_key(iter->parent.id.data); StructRNA *type; Curve *cu; Nurb *nu; if (GS(key->from->name) == ID_CU) { cu = (Curve *)key->from; nu = cu->nurb.first; if (nu->bezt) type = &RNA_ShapeKeyBezierPoint; else type = &RNA_ShapeKeyCurvePoint; } else type = &RNA_ShapeKeyPoint; return rna_pointer_inherit_refine(&iter->parent, type, rna_iterator_array_get(iter)); }
static PointerRNA rna_ParticleBrush_curve_get(PointerRNA *ptr) { return rna_pointer_inherit_refine(ptr, &RNA_CurveMapping, NULL); }
static PointerRNA rna_Lamp_sky_settings_get(PointerRNA *ptr) { return rna_pointer_inherit_refine(ptr, &RNA_LampSkySettings, ptr->id.data); }
static PointerRNA rna_World_ambient_occlusion_get(PointerRNA *ptr) { return rna_pointer_inherit_refine(ptr, &RNA_WorldAmbientOcclusion, ptr->id.data); }
static PointerRNA rna_World_mist_get(PointerRNA *ptr) { return rna_pointer_inherit_refine(ptr, &RNA_WorldMistSettings, ptr->id.data); }
PointerRNA Sound_packed_file_get(PointerRNA *ptr) { bSound *data= (bSound*)(ptr->data); return rna_pointer_inherit_refine(ptr, &RNA_PackedFile, data->packedfile); }
static PointerRNA rna_EditBone_parent_get(PointerRNA *ptr) { EditBone *data = (EditBone *)(ptr->data); return rna_pointer_inherit_refine(ptr, &RNA_EditBone, data->parent); }
static PointerRNA rna_MaskLayer_active_spline_point_get(PointerRNA *ptr) { MaskLayer *masklay = (MaskLayer *)ptr->data; return rna_pointer_inherit_refine(ptr, &RNA_MaskSplinePoint, masklay->act_point); }
static PointerRNA rna_World_lighting_get(PointerRNA *ptr) { return rna_pointer_inherit_refine(ptr, &RNA_WorldLighting, ptr->id.data); }
static PointerRNA MotionPath_points_get(CollectionPropertyIterator *iter) { return rna_pointer_inherit_refine(&iter->parent, &RNA_MotionPathVert, rna_iterator_array_get(iter)); }