GF_SensorHandler *compositor_mpeg4_get_sensor_handler(GF_Node *n) { GF_SensorHandler *hs; switch (gf_node_get_tag(n)) { /*anchor is not considered as a child sensor node when picking sensors*/ case TAG_MPEG4_Anchor: hs = gf_sc_anchor_get_handler(n); break; #ifndef GPAC_DISABLE_X3D case TAG_X3D_Anchor: hs = gf_sc_anchor_get_handler(n); break; #endif case TAG_MPEG4_DiscSensor: hs = disc_sensor_get_handler(n); break; case TAG_MPEG4_PlaneSensor2D: hs = plane_sensor2d_get_handler(n); break; case TAG_MPEG4_ProximitySensor2D: hs = proximity_sensor2d_get_handler(n); break; case TAG_MPEG4_TouchSensor: hs = touch_sensor_get_handler(n); break; #ifndef GPAC_DISABLE_X3D case TAG_X3D_TouchSensor: hs = touch_sensor_get_handler(n); break; #endif #ifndef GPAC_DISABLE_3D case TAG_MPEG4_CylinderSensor: hs = cylinder_sensor_get_handler(n); break; case TAG_MPEG4_PlaneSensor: hs = plane_sensor_get_handler(n); break; case TAG_MPEG4_SphereSensor: hs = sphere_get_handler(n); break; #ifndef GPAC_DISABLE_X3D case TAG_X3D_CylinderSensor: hs = cylinder_sensor_get_handler(n); break; case TAG_X3D_PlaneSensor: hs = plane_sensor_get_handler(n); break; case TAG_X3D_SphereSensor: hs = sphere_get_handler(n); break; #endif #endif /*GPAC_DISABLE_3D*/ default: return NULL; } if (hs && hs->IsEnabled(n)) return hs; return NULL; }
Bool compositor_mpeg4_is_sensor_node(GF_Node *node) { GF_SensorHandler *sh = compositor_mpeg4_get_sensor_handler(node); if (sh && sh->IsEnabled(node)) return 1; return 0; }