📄 x3d_nodes.c
字号:
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 + -