CXFA_Node* CXFA_FFWidgetHandler::CreateDraw(XFA_ELEMENT eElement, CXFA_Node* pParent, CXFA_Node* pBefore) const { CXFA_Node* pDraw = CreateFormItem(XFA_ELEMENT_Draw, pParent, pBefore); CreateValueNode(eElement, pDraw); return pDraw; }
void MD32spr::WriteXMLMaterials(md3Model * model, csRef < iDocumentNode > &parent) { int i = 0, j = 0; for (i = 0; i < model->header->numMeshes; i++) for (j = 0; j < model->meshes[i].meshHeader->numSkins; j++) { csRef < iDocumentNode > child = parent->CreateNodeBefore(CS_NODE_ELEMENT, 0); child->SetValue("material"); char *name = new char[strlen(model->meshes[i].skins[j].name) + 1]; if(basename(model->meshes[i].skins[j].name, name) == 0) continue; child->SetAttribute("name", strcat(lowercase(name), ".mat")); char *tname = new char[strlen(model->meshes[i].skins[j].name) + 1]; if(basename(model->meshes[i].skins[j].name, tname) == 0) continue; CreateValueNode(child, "texture", lowercase(tname)); } }
CXFA_Node* CXFA_FFWidgetHandler::CreateDecimalField(CXFA_Node* pParent, CXFA_Node* pBefore) const { CXFA_Node* pField = CreateNumericField(pParent, pBefore); CreateValueNode(XFA_ELEMENT_Decimal, pField); return pField; }
CXFA_Node* CXFA_FFWidgetHandler::CreateDatetimeEdit(CXFA_Node* pParent, CXFA_Node* pBefore) const { CXFA_Node* pField = CreateField(XFA_ELEMENT_DateTimeEdit, pParent, pBefore); CreateValueNode(XFA_ELEMENT_Date, pField); return pField; }
void MD32spr::WriteGeneric(md3Model * model, csRef < iDocumentNode > &parent) { int i = 0, j = 0, k = 0; csRef < iDocumentNode > localParent; localParent = parent->CreateNodeBefore(CS_NODE_ELEMENT, 0); localParent->SetValue("textures"); if (model->header->numMeshes > 0) { WriteXMLTextures(model, localParent); localParent = parent->CreateNodeBefore(CS_NODE_ELEMENT, 0); localParent->SetValue("materials"); WriteXMLMaterials(model, localParent); for (i = 0; i < model->header->numMeshes; i++) { localParent = parent->CreateNodeBefore(CS_NODE_ELEMENT, 0); localParent->SetValue("meshfact"); localParent->SetAttribute("name", model->meshes[i].meshHeader->name); CreateValueNode(localParent, "plugin", "crystalspace.mesh.loader.factory.sprite.3d"); csRef < iDocumentNode > child = localParent->CreateNodeBefore(CS_NODE_ELEMENT, 0); child->SetValue("params"); for (j = 0; j < model->meshes[i].meshHeader->numSkins; j++) { char *matName = new char[strlen(model->meshes[i].skins[j].name) + 1]; if(basename(model->meshes[i].skins[j].name, matName) == 0) continue; CreateValueNode(child, "material", strcat(matName, ".mat")); } csRef < iDocumentNode > frame; for (j = 0; j < model->meshes[i].meshHeader->numMeshFrames; j++) { csString fNum; int numVertices = model->meshes[i].meshHeader->numVertices; frame = child->CreateNodeBefore(CS_NODE_ELEMENT, 0); frame->SetValue("frame"); fNum.Format ("f%d", j); frame->SetAttribute("name", fNum); for (k = 0; k < model->meshes[i].meshHeader->numVertices; k++) { float u, v, x, y, z; csRef < iDocumentNode > texel = frame->CreateNodeBefore(CS_NODE_ELEMENT, 0); texel->SetValue("v"); x = model->meshes[i].vertices[j * numVertices + k].vec[0]; y = model->meshes[i].vertices[j * numVertices + k].vec[1]; z = model->meshes[i].vertices[j * numVertices + k].vec[2]; u = model->meshes[i].texCoords[k].texCoord[0]; v = model->meshes[i].texCoords[k].texCoord[1]; texel->SetAttributeAsFloat("x", x / scaleFactor); texel->SetAttributeAsFloat("y", y / scaleFactor); texel->SetAttributeAsFloat("z", z / scaleFactor); texel->SetAttributeAsFloat("u", u); texel->SetAttributeAsFloat("v", v); } } if((stristr(model->fileName.GetData(), "head") || stristr(model->fileName.GetData(), "upper") || stristr(model->fileName.GetData(), "lower")) && player) { // Write all the actions. for(j = 0; j < model->numActions; j++) { if(model->numActions == 1) { csRef < iDocumentNode > action = child->CreateNodeBefore(CS_NODE_ELEMENT, 0); action->SetValue("action"); action->SetAttribute("name", "default"); for (k = 0; k < model->meshes[i].meshHeader->numMeshFrames; k++) { csString fNum; csRef < iDocumentNode > f = action->CreateNodeBefore(CS_NODE_ELEMENT, 0); fNum.Format ("f%d", k); f->SetValue("f"); f->SetAttribute("name", fNum); f->SetAttribute("delay", "1000"); /// 1000 is the default delay. } } else { csRef < iDocumentNode > action = child->CreateNodeBefore(CS_NODE_ELEMENT, 0); action->SetValue("action"); action->SetAttribute("name", model->animInfo[j].actionName); for(k = model->animInfo[j].startFrame; k < (model->animInfo[j].startFrame + model->animInfo[j].numFrames); k++) { csString fNum; csRef < iDocumentNode > f = action->CreateNodeBefore(CS_NODE_ELEMENT, 0); fNum.Format ("f%d", k); f->SetValue("f"); f->SetAttribute("name", fNum); float delay = (1.0f/(float)model->animInfo[j].fps) * 1000; f->SetAttributeAsFloat("delay", delay); } } } } else { csRef < iDocumentNode > action = child->CreateNodeBefore(CS_NODE_ELEMENT, 0); action->SetValue("action"); action->SetAttribute("name", "default"); for (j = 0; j < model->meshes[i].meshHeader->numMeshFrames; j++) { csString fNum; csRef < iDocumentNode > f = action->CreateNodeBefore(CS_NODE_ELEMENT, 0); fNum.Format ("f%d", j); f->SetValue("f"); f->SetAttribute("name", fNum); f->SetAttribute("delay", "1000"); /// 1000 is the default delay. } } for (j = 0; j < model->meshes[i].meshHeader->numTriangles; j++) { csRef < iDocumentNode > triangles = child->CreateNodeBefore(CS_NODE_ELEMENT, 0); triangles->SetValue("t"); triangles->SetAttributeAsInt("v1", model->meshes[i].triangles[j]. triangle[2]); triangles->SetAttributeAsInt("v2", model->meshes[i].triangles[j]. triangle[1]); triangles->SetAttributeAsInt("v3", model->meshes[i].triangles[j]. triangle[0]); } } for (i = 0; i < model->header->numMeshes; i++) { localParent = parent->CreateNodeBefore(CS_NODE_ELEMENT, 0); localParent->SetValue("meshobj"); char *name = new char[strlen(model->fileName.GetData()) + strlen(model->meshes[i].meshHeader->name) + 1]; basename(model->fileName.GetData(), name); localParent->SetAttribute("name", strcat(name, model->meshes[i].meshHeader->name)); CreateValueNode(localParent, "plugin", "crystalspace.mesh.loader.sprite.3d"); csRef < iDocumentNode > params = localParent->CreateNodeBefore(CS_NODE_ELEMENT, 0); params->SetValue("params"); CreateValueNode(params, "factory", model->meshes[i].meshHeader->name); CreateValueNode(params, "action", "default"); } } }