Blender
V3.3
|
conversion and adaptation of different datablocks to a common struct. More...
#include "RE_engine.h"
Go to the source code of this file.
Classes | |
struct | TransConvertTypeInfo |
struct | TransIslandData |
struct | MirrorDataVert |
struct | TransMirrorData |
struct | TransMeshDataCrazySpace |
Typedefs | |
typedef struct TransConvertTypeInfo | TransConvertTypeInfo |
conversion and adaptation of different datablocks to a common struct.
Definition in file transform_convert.h.
typedef struct TransConvertTypeInfo TransConvertTypeInfo |
For the realtime animation recording feature, handle overlapping data.
Definition at line 1298 of file transform_convert.c.
References AnimData::act_blendmode, AnimData::act_extendmode, AnimData::act_influence, AnimData::action, ADT_NLA_EDIT_ON, ANIMPLAY_FLAG_JUMPED, ANIMRECORD_FLAG_WITHNLA, ToolSettings::autokey_flag, BKE_animdata_from_id(), BKE_nlastack_add_strip(), BKE_nlastrip_validate_fcurves(), NlaStrip::blendmode, calc_action_range(), wmTimer::customdata, ELEM, NlaStrip::extendmode, ListBase::first, ScreenAnimData::flag, NlaStrip::flag, AnimData::flag, bAction::id, ID_IS_OVERRIDE_LIBRARY, id_us_min(), if(), NlaStrip::influence, IS_AUTOKEY_FLAG, AnimData::nla_tracks, NLASTRIP_EXTEND_NOTHING, NLASTRIP_FLAG_ACTIVE, NLASTRIP_FLAG_AUTO_BLENDS, NLASTRIP_FLAG_SELECT, NLASTRIP_FLAG_USR_INFLUENCE, NULL, scene, t, and Scene::toolsettings.
Referenced by recalcData_objects(), recalcData_pose(), and recalcData_sequencer_image().
Definition at line 405 of file transform_convert.c.
References BLI_LINKSTACK_DECLARE, BLI_LINKSTACK_FREE, BLI_LINKSTACK_INIT, BLI_LINKSTACK_POP, BLI_LINKSTACK_PUSH, TransData::dist, len_v3(), TransData::mtx, mul_m3_v3(), NULL, queue, sub_v3_v3v3(), TD_NOTCONNECTED, and TD_SELECTED.
Referenced by createTransCurveVerts(), createTransGPencil_curves(), createTransGPencil_strokes(), and createTransParticleVerts().
Definition at line 485 of file transform_convert.c.
References Freestyle::a, FOREACH_TRANS_DATA_CONTAINER, max_ff(), min_ff(), t, and TD_SKIP.
Referenced by applyResize(), and applyTranslation().
Little helper function for ObjectToTransData used to give certain constraints (ChildOf, FollowPath, and others that may be added) inverse corrections for transform, so that they aren't in CrazySpace. These particular constraints benefit from this, but others don't, hence this semi-hack ;-) - Aligorith
Definition at line 681 of file transform_convert.c.
References ACTCON_MIX_BEFORE, ACTCON_MIX_BEFORE_FULL, ACTCON_MIX_BEFORE_SPLIT, CHILDOF_LOCX, CHILDOF_LOCY, CHILDOF_LOCZ, CONSTRAINT_DISABLE, CONSTRAINT_OFF, CONSTRAINT_TYPE_ACTION, CONSTRAINT_TYPE_ARMATURE, CONSTRAINT_TYPE_CHILDOF, CONSTRAINT_TYPE_CLAMPTO, CONSTRAINT_TYPE_FOLLOWPATH, CONSTRAINT_TYPE_FOLLOWTRACK, CONSTRAINT_TYPE_OBJECTSOLVER, CONSTRAINT_TYPE_ROTLIKE, CONSTRAINT_TYPE_TRANSFORM, CONSTRAINT_TYPE_TRANSLIKE, data, bConstraint::data, ELEM, bConstraint::enforce, ListBase::first, bConstraint::flag, if(), bConstraint::next, ROTLIKE_MIX_BEFORE, ROTLIKE_MIX_OFFSET, t, TFM_ROTATION, TFM_TRANSLATION, TRANS_MIXROT_BEFORE, TRANS_ROTATION, TRANSLIKE_MIX_BEFORE, TRANSLIKE_MIX_BEFORE_FULL, TRANSLIKE_MIX_BEFORE_SPLIT, and bConstraint::type.
Referenced by add_pose_transdata(), and ObjectToTransData().
Definition at line 1130 of file transform_convert.c.
References BKE_scene_graph_evaluated_ensure(), BLI_assert, C, View3D::camera, convert_type_get(), countAndCleanTransDataContainer(), TransConvertTypeInfo::createTransData, CTX_CAMERA, CTX_data_main(), CTX_OBJECT, CTX_OBMODE_XFORM_OBDATA, CTX_OBMODE_XFORM_SKIP_CHILDREN, CTX_POSE_BONE, Object::id, init_proportional_edit(), init_TransDataContainers(), LIB_TAG_DOIT, NULL, NUM_NO_FRACTION, View3D::ob_center, OBACT, RegionView3D::persp, RGN_TYPE_WINDOW, RV3D_CAMOB, SCE_XFORM_DATA_ORIGIN, SCE_XFORM_SKIP_CHILDREN, SPACE_VIEW3D, t, ID::tag, TransConvertType_Object, TransConvertType_Pose, TransConvertType_Sequencer, and TransConvertType_SequencerImage.
Referenced by calculateTransformCenter(), and initTransform().
This function tests if a point is on the "mouse" side of the cursor/frame-marking.
Definition at line 528 of file transform_convert.c.
Referenced by ActionFCurveToTransData(), count_fcurve_keys(), count_gplayer_frames(), count_masklayer_frames(), createTransNlaData(), GPLayerToTransData(), graph_key_shortest_dist(), and MaskLayerToTransData().
struct TransDataCurveHandleFlags* initTransDataCurveHandles | ( | TransData * | td, |
struct BezTriple * | bezt | ||
) |
Utility function for getting the handle data from bezier's.
Definition at line 467 of file transform_convert.c.
References TransDataCurveHandleFlags::h1, BezTriple::h1, TransDataCurveHandleFlags::h2, BezTriple::h2, TransData::hdata, TransDataCurveHandleFlags::ih1, TransDataCurveHandleFlags::ih2, MEM_mallocN, and TD_BEZTRIPLE.
Referenced by createTransCurveVerts(), and createTransGPencil_curves().
Called during special_aftertrans_update to make sure selected keyframes replace any other keyframes which may reside on that frame (that is not selected).
sel_flag | The flag (bezt.f1/2/3) value to use to determine selection. Usually SELECT , but may want to use a different one at times (if caller does not operate on selection). |
Definition at line 558 of file transform_convert.c.
References FCurve::bezt, BEZT_BINARYSEARCH_THRESH, BEZT_ISSEL_ANY, BKE_fcurve_delete_key(), BLI_addtail(), BLI_freelistN(), BLI_listbase_is_empty(), FCURVE_DISCRETE_VALUES, FCURVE_INT_VALUES, FCurve::flag, float(), tRetainedKeyframe::frame, G, G_DEBUG, IS_EQT, ListBase::last, LISTBASE_FOREACH, MEM_callocN, NULL, FCurve::rna_path, testhandles_fcurve(), tRetainedKeyframe::tot_count, FCurve::totvert, tRetainedKeyframe::val, and BezTriple::vec.
Referenced by posttrans_action_clean(), special_aftertrans_update__actedit(), and special_aftertrans_update__graph().
Called for updating while transform acts, once per redraw.
Definition at line 1395 of file transform_convert.c.
References t.
Referenced by applyAlign(), applyBakeTime(), applyBevelWeight(), applyBoneEnvelope(), applyBoneRoll(), applyBoneSize(), applyCrease(), applyCurveShrinkFatten(), applyEdgeSlide(), applyGPOpacity(), applyGPShrinkFatten(), applyMaskShrinkFatten(), applyMirror(), applyNormalRotation(), applyPushPull(), applyResize(), applyRotation(), applySeqSlide(), applyShear(), applyShrinkFatten(), applySkinResize(), applyTilt(), applyTimeScale(), applyTimeSlide(), applyTimeTranslate(), applyToSphere(), applyTrackball(), applyTranslation(), applyTransObjects(), applyVertSlide(), Bend(), and restoreTransObjects().
Definition at line 128 of file transform_convert.c.
References FOREACH_TRANS_DATA_CONTAINER, sort_trans_data_dist_container(), and t.
Referenced by init_proportional_edit(), and transformEvent().
Inserting keys, point-cache, redraw events.
Definition at line 771 of file transform_convert.c.
References BLI_assert, C, CTX_data_main(), t, and TFM_DUMMY.
Referenced by calculateTransformCenter(), and transformEnd().
int special_transform_moving | ( | TransInfo * | t | ) |
Definition at line 790 of file transform_convert.c.
References CTX_CURSOR, CTX_OBJECT, CTX_POSE_BONE, CTX_TEXTURE_SPACE, G_TRANSFORM_CURSOR, G_TRANSFORM_EDIT, G_TRANSFORM_FCURVES, G_TRANSFORM_OBJ, G_TRANSFORM_SEQ, SPACE_GRAPH, SPACE_SEQ, t, and T_EDIT.
Referenced by transformops_data().
Definition at line 73 of file transform_convert.c.
References t, and transform_around_single_fallback_ex().
Referenced by createTransArmatureVerts().
Transforming around ourselves is no use, fallback to individual origins, useful for curve/armatures.
Definition at line 55 of file transform_convert.c.
References ELEM, t, T_OVERRIDE_CENTER, transform_mode_use_local_origins(), V3D_AROUND_ACTIVE, V3D_AROUND_CENTER_BOUNDS, V3D_AROUND_CENTER_MEDIAN, and V3D_AROUND_LOCAL_ORIGINS.
Referenced by createTransCurveVerts(), createTransGPencil_curves(), and transform_around_single_fallback().
Change the chain-length of auto-IK.
Definition at line 355 of file transform_convert.c.
References CTX_data_main(), DEG_relations_tag_update(), ELEM, FOREACH_TRANS_DATA_CONTAINER, bPoseChannel::next, NULL, pchan_autoik_adjust(), and t.
Referenced by createTransPose(), and transformEvent().
void transform_convert_clip_mirror_modifier_apply | ( | TransDataContainer * | tc | ) |
Definition at line 1207 of file transform_convert.c.
References copy_v3_v3(), TransDataContainer::data, TransDataContainer::data_len, eModifierMode_Realtime, eModifierType_Mirror, fabsf, ListBase::first, MirrorModifierData::flag, invert_m4_m4(), MirrorModifierData::mirror_ob, MOD_MIR_AXIS_X, MOD_MIR_AXIS_Y, MOD_MIR_AXIS_Z, MOD_MIR_CLIPPING, ModifierData::mode, Object::modifiers, mul_m4_m4m4(), mul_m4_v3(), ModifierData::next, NULL, TransDataContainer::obedit, Object::obmat, TD_SKIP, MirrorModifierData::tolerance, and ModifierData::type.
Referenced by recalcData_curve(), and recalcData_mesh().
void transform_convert_flush_handle2D | ( | TransData * | td, |
TransData2D * | td2d, | ||
float | y_fac | ||
) |
Definition at line 1375 of file transform_convert.c.
References TransData2D::h1, TransData2D::h2, TransData2D::ih1, TransData2D::ih2, TD_MOVEHANDLE1, and TD_MOVEHANDLE2.
Referenced by flushTransGraphData().
Used for TFM_TIME_EXTEND
.
Definition at line 506 of file transform_convert.c.
References center, t, T_MODAL, T_NO_MIRROR, and UI_view2d_region_to_view().
Referenced by createTransActionData(), createTransNlaData(), and createTransSeqData().
void transform_convert_mesh_connectivity_distance | ( | struct BMesh * | bm, |
const float | mtx[3][3], | ||
float * | dists, | ||
int * | index | ||
) |
mtx | Measure distance in this space. |
dists | Store the closest connected distance to selected vertices. |
index | Optionally store the original index we're measuring the distance to (can be NULL). |
Definition at line 987 of file transform_convert_mesh.c.
References BLI_assert, BLI_LINKSTACK_DECLARE, BLI_LINKSTACK_FREE, BLI_LINKSTACK_INIT, BLI_LINKSTACK_POP, BLI_LINKSTACK_PUSH, BLI_LINKSTACK_SIZE, BLI_LINKSTACK_SWAP, bm, BM_edge_other_vert(), BM_EDGES_OF_MESH, BM_EDGES_OF_VERT, BM_elem_flag_disable, BM_elem_flag_enable, BM_elem_flag_set, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_elem_index_get, BM_elem_index_set, BM_ELEM_SELECT, BM_ELEM_TAG, BM_ELEM_TAG_ALT, BM_ITER_ELEM, BM_ITER_MESH, BM_iter_mesh_count_flag(), BM_ITER_MESH_INDEX, BM_LOOPS_OF_EDGE, BM_VERT, BM_VERTS_OF_MESH, bmesh_test_dist_add(), bmesh_test_loose_edge(), e, ELEM, BMesh::elem_index_dirty, BMLoop::f, i1, l, LinkNode::next, BMLoop::next, NULL, queue, SWAP, v, v1, and v2.
Referenced by createTransEditVerts(), createTransMeshSkin(), and createTransMeshVertCData().
void transform_convert_mesh_crazyspace_detect | ( | TransInfo * | t, |
struct TransDataContainer * | tc, | ||
struct BMEditMesh * | em, | ||
struct TransMeshDataCrazySpace * | r_crazyspace_data | ||
) |
Detect CrazySpace [tm]. Vertices with space affected by quats are marked with BM_ELEM_TAG.
Definition at line 1289 of file transform_convert_mesh.c.
References BKE_crazyspace_get_first_deform_matrices_editbmesh(), BKE_crazyspace_get_mapped_editverts(), BKE_crazyspace_set_quats_editmesh(), BKE_editmesh_from_object(), BKE_modifiers_get_cage_index(), BKE_modifiers_is_correctable_deformed(), BKE_scene_graph_evaluated_ensure(), BMEditMesh::bm, CTX_data_main(), TransMeshDataCrazySpace::defmats, DEG_get_evaluated_id(), float(), Object::id, MEM_freeN, MEM_mallocN, NULL, TransDataContainer::obedit, TransMeshDataCrazySpace::quats, t, T_PROP_EDIT, T_PROP_EDIT_ALL, and BMesh::totvert.
Referenced by createTransEditVerts(), createTransMeshSkin(), and createTransMeshVertCData().
void transform_convert_mesh_crazyspace_free | ( | struct TransMeshDataCrazySpace * | r_crazyspace_data | ) |
Definition at line 1376 of file transform_convert_mesh.c.
References TransMeshDataCrazySpace::defmats, MEM_freeN, and TransMeshDataCrazySpace::quats.
Referenced by createTransEditVerts(), createTransMeshSkin(), and createTransMeshVertCData().
void transform_convert_mesh_crazyspace_transdata_set | ( | const float | mtx[3][3], |
const float | smtx[3][3], | ||
const float | defmat[3][3], | ||
const float | quat[4], | ||
struct TransData * | r_td | ||
) |
Definition at line 1340 of file transform_convert_mesh.c.
References copy_m3_m3(), invert_m3_m3(), TransData::mtx, mul_m3_m3m3(), mul_m3_series, quat_to_mat3(), and TransData::smtx.
Referenced by createTransEditVerts(), createTransMeshSkin(), and createTransMeshVertCData().
Definition at line 439 of file transform_convert_mesh.c.
References TransCustomDataMesh::cd_layer_correct, ELEM, FOREACH_TRANS_DATA_CONTAINER, NULL, t, tc_mesh_customdatacorrect_create(), tc_mesh_customdatacorrect_free(), TFM_ALIGN, TFM_BEND, TFM_EDGE_SLIDE, TFM_PUSHPULL, TFM_RESIZE, TFM_ROTATION, TFM_SHEAR, TFM_SHRINKFATTEN, TFM_TOSPHERE, TFM_TRACKBALL, TFM_TRANSLATION, TFM_VERT_SLIDE, UVCALC_TRANSFORM_CORRECT, UVCALC_TRANSFORM_CORRECT_KEEP_CONNECTED, and UVCALC_TRANSFORM_CORRECT_SLIDE.
Referenced by transform_mode_init().
void transform_convert_mesh_islanddata_free | ( | struct TransIslandData * | island_data | ) |
Definition at line 893 of file transform_convert_mesh.c.
References TransIslandData::axismtx, TransIslandData::center, TransIslandData::island_vert_map, and MEM_freeN.
Referenced by createTransEditVerts(), createTransMeshSkin(), and createTransMeshVertCData().
void transform_convert_mesh_islands_calc | ( | struct BMEditMesh * | em, |
bool | calc_single_islands, | ||
bool | calc_island_center, | ||
bool | calc_island_axismtx, | ||
struct TransIslandData * | r_island_data | ||
) |
Definition at line 712 of file transform_convert_mesh.c.
References add_v3_v3(), axis_dominant_v3_to_m3(), BLI_assert, BMEditMesh::bm, bm, BM_EDGE, BM_editselection_center(), BM_editselection_normal(), BM_editselection_plane(), BM_elem_flag_test, BM_elem_index_get, BM_ELEM_SELECT, BM_FACE, BM_ITER_ELEM, BM_ITER_MESH_INDEX, BM_mesh_calc_edge_groups(), BM_mesh_calc_face_groups(), BM_mesh_elem_index_ensure(), BM_mesh_elem_table_ensure(), BM_VERT, BM_VERTS_OF_EDGE, BM_VERTS_OF_FACE, BM_VERTS_OF_MESH, BMVert::co, copy_v3_v3(), copy_vn_i(), createSpaceNormalTangent(), data, BMEditSelection::ele, BMesh::etable, BMesh::ftable, BMEditSelection::htype, invert_m3(), is_zero_v3(), itype, MEM_freeN, MEM_mallocN, MEM_reallocN, mul_v3_v3fl(), BMVert::no, normalize_v3(), NULL, SCE_SELECT_EDGE, SCE_SELECT_VERTEX, BMEditMesh::selectmode, BMesh::totedgesel, BMesh::totfacesel, BMesh::totvert, unit_m3(), v, and zero_v3().
Referenced by createTransEditVerts(), createTransMeshSkin(), and createTransMeshVertCData().
void transform_convert_mesh_mirrordata_calc | ( | struct BMEditMesh * | em, |
bool | use_select, | ||
bool | use_topology, | ||
const bool | mirror_axis[3], | ||
struct TransMirrorData * | r_mirror_data | ||
) |
Definition at line 1164 of file transform_convert_mesh.c.
References Freestyle::a, add_v3_v3(), BMEditMesh::bm, bm, BM_elem_flag_test, BM_ELEM_HIDDEN, BM_ELEM_SELECT, BM_ITER_MESH_INDEX, BM_VERTS_OF_MESH, BMVert::co, EDBM_verts_mirror_cache_begin_ex(), MirrorDataVert::flag, MirrorDataVert::index, is_in_quadrant_v3(), MEM_callocN, MEM_freeN, MEM_mallocN, MEM_SAFE_FREE, TransMirrorData::mirror_elem_len, NULL, TD_MIRROR_X, BMesh::totvert, TRANSFORM_MAXDIST_MIRROR, and TransMirrorData::vert_map.
Referenced by createTransEditVerts(), createTransMeshSkin(), and createTransMeshVertCData().
void transform_convert_mesh_mirrordata_free | ( | struct TransMirrorData * | mirror_data | ) |
Definition at line 1276 of file transform_convert_mesh.c.
References MEM_freeN, and TransMirrorData::vert_map.
Referenced by createTransEditVerts(), createTransMeshSkin(), and createTransMeshVertCData().
Sets transform flags in the bones. Returns total number of bones with BONE_TRANSFORM.
Definition at line 1521 of file transform_convert_armature.c.
References bPoseChannel::bone, bone_children_clear_transflag(), BONE_HINGE_CHILD_TRANSFORM, BONE_SELECTED, BONE_TRANSFORM, BONE_TRANSFORM_CHILD, bPose::chanbase, Bone::childbase, Object::data, ELEM, ListBase::first, Bone::flag, bPoseChannel::next, PBONE_VISIBLE, Object::pose, TFM_BONE_ENVELOPE_DIST, and TFM_BONESIZE.
Referenced by createTransPose(), ED_transform_calc_gizmo_stats(), and special_aftertrans_update__pose().
Definition at line 721 of file transform_convert_sequencer.c.
References MAXSEQ, round_fl_to_int(), TransSeq::selection_channel_range_max, TransSeq::selection_channel_range_min, t, and TRANS_DATA_CONTAINER_FIRST_SINGLE.
Referenced by applySeqSlide().
Definition at line 50 of file transform_convert.c.
References ELEM, t, TFM_RESIZE, TFM_ROTATION, and TFM_TRACKBALL.
Referenced by createTransCurveVerts(), createTransGPencil_curves(), and transform_around_single_fallback_ex().
|
extern |
Definition at line 930 of file transform_convert_action.c.
Referenced by convert_type_get(), and init_proportional_edit().
|
extern |
Definition at line 202 of file transform_convert_cursor.c.
Referenced by convert_type_get(), and snap_target_grid_ensure().
|
extern |
Definition at line 188 of file transform_convert_cursor.c.
Referenced by convert_type_get().
|
extern |
Definition at line 195 of file transform_convert_cursor.c.
Referenced by convert_type_get().
|
extern |
Definition at line 450 of file transform_convert_curve.c.
Referenced by convert_type_get(), init_proportional_edit(), and init_TransDataContainers().
|
extern |
Definition at line 1772 of file transform_convert_armature.c.
Referenced by convert_type_get(), and init_TransDataContainers().
|
extern |
Definition at line 766 of file transform_convert_gpencil.c.
Referenced by convert_type_get(), init_proportional_edit(), and init_TransDataContainers().
|
extern |
Definition at line 1034 of file transform_convert_graph.c.
Referenced by convert_type_get(), and init_proportional_edit().
|
extern |
Definition at line 118 of file transform_convert_lattice.c.
Referenced by convert_type_get(), init_proportional_edit(), and init_TransDataContainers().
|
extern |
Definition at line 467 of file transform_convert_mask.c.
Referenced by convert_type_get(), and init_proportional_edit().
|
extern |
Definition at line 136 of file transform_convert_mball.c.
Referenced by convert_type_get(), init_proportional_edit(), and init_TransDataContainers().
|
extern |
Definition at line 2133 of file transform_convert_mesh.c.
Referenced by convert_type_get(), init_proportional_edit(), init_TransDataContainers(), initSnappingMode(), transform_mode_init(), and viewRedrawPost().
|
extern |
Definition at line 120 of file transform_convert_mesh_edge.c.
Referenced by convert_type_get(), init_proportional_edit(), and init_TransDataContainers().
|
extern |
Definition at line 293 of file transform_convert_mesh_skin.c.
Referenced by convert_type_get(), init_proportional_edit(), and init_TransDataContainers().
|
extern |
Definition at line 474 of file transform_convert_mesh_uv.c.
Referenced by convert_type_get(), init_proportional_edit(), and init_TransDataContainers().
|
extern |
Definition at line 291 of file transform_convert_mesh_vert_cdata.c.
Referenced by convert_type_get(), init_proportional_edit(), and init_TransDataContainers().
|
extern |
Definition at line 513 of file transform_convert_nla.c.
Referenced by convert_type_get().
|
extern |
Definition at line 265 of file transform_convert_node.c.
Referenced by convert_type_get(), and init_proportional_edit().
|
extern |
Definition at line 995 of file transform_convert_object.c.
Referenced by convert_type_get(), createTransData(), ElementResize(), and init_proportional_edit().
|
extern |
Definition at line 110 of file transform_convert_object_texspace.c.
Referenced by convert_type_get(), and ElementResize().
|
extern |
Definition at line 208 of file transform_convert_paintcurve.c.
Referenced by convert_type_get().
|
extern |
Definition at line 248 of file transform_convert_particle.c.
Referenced by convert_type_get(), and init_proportional_edit().
|
extern |
Definition at line 1779 of file transform_convert_armature.c.
Referenced by convert_type_get(), createTransData(), ElementResize(), and init_TransDataContainers().
|
extern |
Definition at line 118 of file transform_convert_sculpt.c.
Referenced by convert_type_get(), and ElementResize().
|
extern |
Definition at line 738 of file transform_convert_sequencer.c.
Referenced by convert_type_get(), createTransData(), and ED_transform_snap_sequencer_to_closest_strip_calc().
|
extern |
Definition at line 275 of file transform_convert_sequencer_image.c.
Referenced by convert_type_get(), createTransData(), transform_event_modal_constraint(), and transform_snap_sequencer_data_alloc().
|
extern |
Definition at line 794 of file transform_convert_tracking.c.
Referenced by convert_type_get().