⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 x3d_nodes.c

📁 一个用于智能手机的多媒体库适合S60 WinCE的跨平台开发库
💻 C
📖 第 1 页 / 共 5 页
字号:
	if (!strcmp("previous", name)) return 1;	if (!strcmp("set_fraction", name)) return 2;	if (!strcmp("key", name)) return 3;	if (!strcmp("keyValue", name)) return 4;	if (!strcmp("value_changed", name)) return 5;	if (!strcmp("metadata", name)) return 6;	return -1;	}static GF_Node *BooleanSequencer_Create(){	X_BooleanSequencer *p;	GF_SAFEALLOC(p, X_BooleanSequencer);	if(!p) return NULL;	gf_node_setup((GF_Node *)p, TAG_X3D_BooleanSequencer);#ifdef GF_NODE_USE_POINTERS	((GF_Node *)p)->sgprivate->name = "BooleanSequencer";	((GF_Node *)p)->sgprivate->node_del = BooleanSequencer_Del;	((GF_Node *)p)->sgprivate->get_field_count = BooleanSequencer_get_field_count;	((GF_Node *)p)->sgprivate->get_field = BooleanSequencer_get_field;#endif	/*default field values*/	return (GF_Node *)p;}/*	BooleanToggle Node deletion*/static void BooleanToggle_Del(GF_Node *node){	X_BooleanToggle *p = (X_BooleanToggle *) node;	gf_node_unregister((GF_Node *) p->metadata, node);		gf_node_free((GF_Node *)p);}static u32 BooleanToggle_get_field_count(GF_Node *node, u8 dummy){	return 3;}static GF_Err BooleanToggle_get_field(GF_Node *node, GF_FieldInfo *info){	switch (info->fieldIndex) {	case 0:		info->name = "set_boolean";		info->eventType = GF_SG_EVENT_IN;		info->on_event_in = ((X_BooleanToggle *)node)->on_set_boolean;		info->fieldType = GF_SG_VRML_SFBOOL;		info->far_ptr = & ((X_BooleanToggle *) node)->set_boolean;		return GF_OK;	case 1:		info->name = "toggle";		info->eventType = GF_SG_EVENT_EXPOSED_FIELD;		info->fieldType = GF_SG_VRML_SFBOOL;		info->far_ptr = & ((X_BooleanToggle *) node)->toggle;		return GF_OK;	case 2:		info->name = "metadata";		info->eventType = GF_SG_EVENT_EXPOSED_FIELD;		info->fieldType = GF_SG_VRML_SFNODE;		info->NDTtype = NDT_SFMetadataNode;		info->far_ptr = & ((X_BooleanToggle *)node)->metadata;		return GF_OK;	default:		return GF_BAD_PARAM;	}}static s32 BooleanToggle_get_field_index_by_name(char *name){	if (!strcmp("set_boolean", name)) return 0;	if (!strcmp("toggle", name)) return 1;	if (!strcmp("metadata", name)) return 2;	return -1;	}static GF_Node *BooleanToggle_Create(){	X_BooleanToggle *p;	GF_SAFEALLOC(p, X_BooleanToggle);	if(!p) return NULL;	gf_node_setup((GF_Node *)p, TAG_X3D_BooleanToggle);#ifdef GF_NODE_USE_POINTERS	((GF_Node *)p)->sgprivate->name = "BooleanToggle";	((GF_Node *)p)->sgprivate->node_del = BooleanToggle_Del;	((GF_Node *)p)->sgprivate->get_field_count = BooleanToggle_get_field_count;	((GF_Node *)p)->sgprivate->get_field = BooleanToggle_get_field;#endif	/*default field values*/	return (GF_Node *)p;}/*	BooleanTrigger Node deletion*/static void BooleanTrigger_Del(GF_Node *node){	X_BooleanTrigger *p = (X_BooleanTrigger *) node;	gf_node_unregister((GF_Node *) p->metadata, node);		gf_node_free((GF_Node *)p);}static u32 BooleanTrigger_get_field_count(GF_Node *node, u8 dummy){	return 3;}static GF_Err BooleanTrigger_get_field(GF_Node *node, GF_FieldInfo *info){	switch (info->fieldIndex) {	case 0:		info->name = "set_triggerTime";		info->eventType = GF_SG_EVENT_IN;		info->on_event_in = ((X_BooleanTrigger *)node)->on_set_triggerTime;		info->fieldType = GF_SG_VRML_SFTIME;		info->far_ptr = & ((X_BooleanTrigger *) node)->set_triggerTime;		return GF_OK;	case 1:		info->name = "triggerTrue";		info->eventType = GF_SG_EVENT_OUT;		info->fieldType = GF_SG_VRML_SFBOOL;		info->far_ptr = & ((X_BooleanTrigger *) node)->triggerTrue;		return GF_OK;	case 2:		info->name = "metadata";		info->eventType = GF_SG_EVENT_EXPOSED_FIELD;		info->fieldType = GF_SG_VRML_SFNODE;		info->NDTtype = NDT_SFMetadataNode;		info->far_ptr = & ((X_BooleanTrigger *)node)->metadata;		return GF_OK;	default:		return GF_BAD_PARAM;	}}static s32 BooleanTrigger_get_field_index_by_name(char *name){	if (!strcmp("set_triggerTime", name)) return 0;	if (!strcmp("triggerTrue", name)) return 1;	if (!strcmp("metadata", name)) return 2;	return -1;	}static GF_Node *BooleanTrigger_Create(){	X_BooleanTrigger *p;	GF_SAFEALLOC(p, X_BooleanTrigger);	if(!p) return NULL;	gf_node_setup((GF_Node *)p, TAG_X3D_BooleanTrigger);#ifdef GF_NODE_USE_POINTERS	((GF_Node *)p)->sgprivate->name = "BooleanTrigger";	((GF_Node *)p)->sgprivate->node_del = BooleanTrigger_Del;	((GF_Node *)p)->sgprivate->get_field_count = BooleanTrigger_get_field_count;	((GF_Node *)p)->sgprivate->get_field = BooleanTrigger_get_field;#endif	/*default field values*/	return (GF_Node *)p;}/*	Box Node deletion*/static void Box_Del(GF_Node *node){	X_Box *p = (X_Box *) node;	gf_node_unregister((GF_Node *) p->metadata, node);		gf_node_free((GF_Node *)p);}static u32 Box_get_field_count(GF_Node *node, u8 dummy){	return 2;}static GF_Err Box_get_field(GF_Node *node, GF_FieldInfo *info){	switch (info->fieldIndex) {	case 0:		info->name = "size";		info->eventType = GF_SG_EVENT_FIELD;		info->fieldType = GF_SG_VRML_SFVEC3F;		info->far_ptr = & ((X_Box *) node)->size;		return GF_OK;	case 1:		info->name = "metadata";		info->eventType = GF_SG_EVENT_EXPOSED_FIELD;		info->fieldType = GF_SG_VRML_SFNODE;		info->NDTtype = NDT_SFMetadataNode;		info->far_ptr = & ((X_Box *)node)->metadata;		return GF_OK;	default:		return GF_BAD_PARAM;	}}static s32 Box_get_field_index_by_name(char *name){	if (!strcmp("size", name)) return 0;	if (!strcmp("metadata", name)) return 1;	return -1;	}static GF_Node *Box_Create(){	X_Box *p;	GF_SAFEALLOC(p, X_Box);	if(!p) return NULL;	gf_node_setup((GF_Node *)p, TAG_X3D_Box);#ifdef GF_NODE_USE_POINTERS	((GF_Node *)p)->sgprivate->name = "Box";	((GF_Node *)p)->sgprivate->node_del = Box_Del;	((GF_Node *)p)->sgprivate->get_field_count = Box_get_field_count;	((GF_Node *)p)->sgprivate->get_field = Box_get_field;#endif	/*default field values*/	p->size.x = FLT2FIX(2);	p->size.y = FLT2FIX(2);	p->size.z = FLT2FIX(2);	return (GF_Node *)p;}/*	Circle2D Node deletion*/static void Circle2D_Del(GF_Node *node){	X_Circle2D *p = (X_Circle2D *) node;	gf_node_unregister((GF_Node *) p->metadata, node);		gf_node_free((GF_Node *)p);}static u32 Circle2D_get_field_count(GF_Node *node, u8 dummy){	return 2;}static GF_Err Circle2D_get_field(GF_Node *node, GF_FieldInfo *info){	switch (info->fieldIndex) {	case 0:		info->name = "radius";		info->eventType = GF_SG_EVENT_EXPOSED_FIELD;		info->fieldType = GF_SG_VRML_SFFLOAT;		info->far_ptr = & ((X_Circle2D *) node)->radius;		return GF_OK;	case 1:		info->name = "metadata";		info->eventType = GF_SG_EVENT_EXPOSED_FIELD;		info->fieldType = GF_SG_VRML_SFNODE;		info->NDTtype = NDT_SFMetadataNode;		info->far_ptr = & ((X_Circle2D *)node)->metadata;		return GF_OK;	default:		return GF_BAD_PARAM;	}}static s32 Circle2D_get_field_index_by_name(char *name){	if (!strcmp("radius", name)) return 0;	if (!strcmp("metadata", name)) return 1;	return -1;	}static GF_Node *Circle2D_Create(){	X_Circle2D *p;	GF_SAFEALLOC(p, X_Circle2D);	if(!p) return NULL;	gf_node_setup((GF_Node *)p, TAG_X3D_Circle2D);#ifdef GF_NODE_USE_POINTERS	((GF_Node *)p)->sgprivate->name = "Circle2D";	((GF_Node *)p)->sgprivate->node_del = Circle2D_Del;	((GF_Node *)p)->sgprivate->get_field_count = Circle2D_get_field_count;	((GF_Node *)p)->sgprivate->get_field = Circle2D_get_field;#endif	/*default field values*/	p->radius = FLT2FIX(1);	return (GF_Node *)p;}/*	Collision Node deletion*/static void Collision_Del(GF_Node *node){	X_Collision *p = (X_Collision *) node;	gf_sg_vrml_parent_destroy(node);		gf_node_unregister((GF_Node *) p->proxy, node);		gf_node_unregister((GF_Node *) p->metadata, node);		gf_node_free((GF_Node *)p);}static u32 Collision_get_field_count(GF_Node *node, u8 dummy){	return 8;}static GF_Err Collision_get_field(GF_Node *node, GF_FieldInfo *info){	switch (info->fieldIndex) {	case 0:		info->name = "addChildren";		info->eventType = GF_SG_EVENT_IN;		info->on_event_in = ((X_Collision *)node)->on_addChildren;		info->fieldType = GF_SG_VRML_MFNODE;		info->NDTtype = NDT_SF3DNode;		info->far_ptr = & ((X_Collision *)node)->addChildren;		return GF_OK;	case 1:		info->name = "removeChildren";		info->eventType = GF_SG_EVENT_IN;		info->on_event_in = ((X_Collision *)node)->on_removeChildren;		info->fieldType = GF_SG_VRML_MFNODE;		info->NDTtype = NDT_SF3DNode;		info->far_ptr = & ((X_Collision *)node)->removeChildren;		return GF_OK;	case 2:		info->name = "children";		info->eventType = GF_SG_EVENT_EXPOSED_FIELD;		info->fieldType = GF_SG_VRML_MFNODE;		info->NDTtype = NDT_SF3DNode;		info->far_ptr = & ((X_Collision *)node)->children;		return GF_OK;	case 3:		info->name = "enabled";		info->eventType = GF_SG_EVENT_EXPOSED_FIELD;		info->fieldType = GF_SG_VRML_SFBOOL;		info->far_ptr = & ((X_Collision *) node)->enabled;		return GF_OK;	case 4:		info->name = "proxy";		info->eventType = GF_SG_EVENT_FIELD;		info->fieldType = GF_SG_VRML_SFNODE;		info->NDTtype = NDT_SF3DNode;		info->far_ptr = & ((X_Collision *)node)->proxy;		return GF_OK;	case 5:		info->name = "collideTime";		info->eventType = GF_SG_EVENT_OUT;		info->fieldType = GF_SG_VRML_SFTIME;		info->far_ptr = & ((X_Collision *) node)->collideTime;		return GF_OK;	case 6:		info->name = "isActive";		info->eventType = GF_SG_EVENT_OUT;		info->fieldType = GF_SG_VRML_SFBOOL;		info->far_ptr = & ((X_Collision *) node)->isActive;		return GF_OK;	case 7:		info->name = "metadata";		info->eventType = GF_SG_EVENT_EXPOSED_FIELD;		info->fieldType = GF_SG_VRML_SFNODE;		info->NDTtype = NDT_SFMetadataNode;		info->far_ptr = & ((X_Collision *)node)->metadata;		return GF_OK;	default:		return GF_BAD_PARAM;	}}static s32 Collision_get_field_index_by_name(char *name){	if (!strcmp("addChildren", name)) return 0;	if (!strcmp("removeChildren", name)) return 1;	if (!strcmp("children", name)) return 2;	if (!strcmp("enabled", name)) return 3;	if (!strcmp("proxy", name)) return 4;	if (!strcmp("collideTime", name)) return 5;	if (!strcmp("isActive", name)) return 6;	if (!strcmp("metadata", name)) return 7;	return -1;	}static GF_Node *Collision_Create(){	X_Collision *p;	GF_SAFEALLOC(p, X_Collision);	if(!p) return NULL;	gf_node_setup((GF_Node *)p, TAG_X3D_Collision);	gf_sg_vrml_parent_setup((GF_Node *) p);#ifdef GF_NODE_USE_POINTERS	((GF_Node *)p)->sgprivate->name = "Collision";	((GF_Node *)p)->sgprivate->node_del = Collision_Del;	((GF_Node *)p)->sgprivate->get_field_count = Collision_get_field_count;	((GF_Node *)p)->sgprivate->get_field = Collision_get_field;#endif	/*default field values*/	p->enabled = 1;	return (GF_Node *)p;}/*	Color Node deletion*/static void Color_Del(GF_Node *node){	X_Color *p = (X_Color *) node;	gf_sg_mfcolor_del(p->color);	gf_node_unregister((GF_Node *) p->metadata, node);		gf_node_free((GF_Node *)p);}static u32 Color_get_field_count(GF_Node *node, u8 dummy){	return 2;}static GF_Err Color_get_field(GF_Node *node, GF_FieldInfo *info){	switch (info->fieldIndex) {	case 0:		info->name = "color";		info->eventType = GF_SG_EVENT_EXPOSED_FIELD;		info->fieldType = GF_SG_VRML_MFCOLOR;		info->far_ptr = & ((X_Color *) node)->color;		return GF_OK;	case 1:		info->name = "metadata";		info->eventType = GF_SG_EVENT_EXPOSED_FIELD;		info->fieldType = GF_SG_VRML_SFNODE;		info->NDTtype = NDT_SFMetadataNode;		info->far_ptr = & ((X_Color *)node)->metadata;		return GF_OK;	default:		return GF_BAD_PARAM;	}}static s32 Color_get_field_index_by_name(char *name){	if (!strcmp("color", name)) return 0;	if (!strcmp("metadata", name)) return 1;	return -1;	}static GF_Node *Color_Create(){	X_Color *p;	GF_SAFEALLOC(p, X_Color);	if(!p) return NULL;	gf_node_setup((GF_Node *)p, TAG_X3D_Color);#ifdef GF_NODE_USE_POINTERS	((GF_Node *)p)->sgprivate->name = "Color";	((GF_Node *)p)->sgprivate->node_del = Color_Del;	((GF_Node *)p)->sgprivate->get_field_count = Color_get_field_count;	((GF_Node *)p)->sgprivate->get_field = Color_get_field;#endif	/*default field values*/	return (GF_Node *)p;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -