ImageTextureNode *SceneGraph::findImageTextureNode(char *name) { if (!name || strlen(name) <= 0) return NULL; for (ImageTextureNode *node = findImageTextureNode(); node; node = node->nextTraversal()) { const char *nodeName = node->getName(); if (nodeName && strlen(nodeName)) { if (!strcmp(name, nodeName)) return node; } } return NULL; }
BOOL DialogImageTextureName::OnInitDialog() { CDialog::OnInitDialog(); // TODO: この位置に初期化の補足処理を追加してください ImageTextureNode *imgTex; char *selectString = NULL; SendDlgItemMessage(IDC_IMAGETEXTURE_NAME, CB_RESETCONTENT, (WPARAM)0, (LPARAM)0L); for (imgTex = GetWorld()->getSceneGraph()->findImageTextureNode(); imgTex; imgTex=imgTex->nextTraversal()) { if (imgTex && StringLength(imgTex->getName()) && StringNCompare(imgTex->getName(), CTB_NODE_NAME, strlen(CTB_NODE_NAME))) SendDlgItemMessage(IDC_IMAGETEXTURE_NAME, CB_ADDSTRING, 0, (LONG)(LPSTR)imgTex->getName()); if (!selectString) selectString = imgTex->getName(); } Node *node = getNode(); if (node) SendDlgItemMessage(IDC_IMAGETEXTURE_NAME, CB_SELECTSTRING,(WPARAM)-1, (LPARAM)(LPCSTR)node->getName()); else if (selectString) SendDlgItemMessage(IDC_IMAGETEXTURE_NAME, CB_SELECTSTRING,(WPARAM)-1, (LPARAM)(LPCSTR)selectString); return TRUE; // コントロールにフォーカスを設定しないとき、戻り値は TRUE となります // 例外: OCX プロパティ ページの戻り値は FALSE となります }
void AddSFString(char *string) { switch (GetCurrentNodeType()) { case VRML_NODETYPE_ANCHOR_PARAMETER: { ((AnchorNode *)GetCurrentNodeObject())->addParameter(string); } break; case VRML_NODETYPE_ANCHOR_URL: { ((AnchorNode *)GetCurrentNodeObject())->addUrl(string); } break; case VRML_NODETYPE_INLINE_URL: { ((InlineNode *)GetCurrentNodeObject())->addUrl(string); } break; case VRML_NODETYPE_AUDIOCLIP_URL: { AudioClipNode *aclip = (AudioClipNode *)GetCurrentNodeObject(); aclip->addUrl(string); } break; case VRML_NODETYPE_BACKGROUND_BACKURL: { BackgroundNode *bg = (BackgroundNode *)GetCurrentNodeObject(); bg->addBackUrl(string); } break; case VRML_NODETYPE_BACKGROUND_BOTTOMURL: { BackgroundNode *bg = (BackgroundNode *)GetCurrentNodeObject(); bg->addBottomUrl(string); } break; case VRML_NODETYPE_BACKGROUND_FRONTURL: { BackgroundNode *bg = (BackgroundNode *)GetCurrentNodeObject(); bg->addFrontUrl(string); } break; case VRML_NODETYPE_BACKGROUND_LEFTURL: { BackgroundNode *bg = (BackgroundNode *)GetCurrentNodeObject(); bg->addLeftUrl(string); } break; case VRML_NODETYPE_BACKGROUND_RIGHTURL: { BackgroundNode *bg = (BackgroundNode *)GetCurrentNodeObject(); bg->addRightUrl(string); } break; case VRML_NODETYPE_BACKGROUND_TOPURL: { BackgroundNode *bg = (BackgroundNode *)GetCurrentNodeObject(); bg->addTopUrl(string); } break; case VRML_NODETYPE_FONTSTYLE_JUSTIFY: { FontStyleNode *fs = (FontStyleNode *)GetCurrentNodeObject(); fs->addJustify(string); } break; case VRML_NODETYPE_IMAGETEXTURE_URL: { ImageTextureNode *image = (ImageTextureNode *)GetCurrentNodeObject(); image->addUrl(string); } break; case VRML_NODETYPE_MOVIETEXTURE_URL: { MovieTextureNode *image = (MovieTextureNode *)GetCurrentNodeObject(); image->addUrl(string); } break; case VRML_NODETYPE_NAVIGATIONINFO_TYPE: { NavigationInfoNode *navInfo = (NavigationInfoNode *)GetCurrentNodeObject(); navInfo->addType(string); } break; case VRML_NODETYPE_SCRIPT_URL: { ScriptNode *script = (ScriptNode *)GetCurrentNodeObject(); script->addUrl(string); } break; case VRML_NODETYPE_TEXT_STRING: { TextNode *text = (TextNode *)GetCurrentNodeObject(); text->addString(string); } break; case VRML_NODETYPE_WORLDINFO_INFO: { WorldInfoNode *worldInfo = (WorldInfoNode *)GetCurrentNodeObject(); worldInfo->addInfo(string); } break; } }