Exemplo n.º 1
0
shared_ptr <GLTF::JSONObject> serializeEffect(GLTFEffect* effect, void *context)
{
    shared_ptr <GLTF::JSONObject> effectObject(new GLTF::JSONObject());
    shared_ptr <GLTF::JSONObject> instanceTechnique(new GLTF::JSONObject());
    shared_ptr <JSONObject> techniqueGenerator = effect->getTechniqueGenerator();

    GLTF::GLTFConverterContext *converterContext= (GLTF::GLTFConverterContext*)context;

    std::string techniqueID = GLTF::getReferenceTechniqueID(techniqueGenerator, *converterContext);

    effectObject->setString("name", effect->getName());
    effectObject->setValue("instanceTechnique", instanceTechnique);
    instanceTechnique->setString("technique", techniqueID);
    shared_ptr<JSONObject> outputs(new JSONObject());
    shared_ptr <JSONObject> values = effect->getValues();
    std::vector <std::string> keys = values->getAllKeys();
    for (size_t i = 0 ; i < keys.size() ; i++) {
        shared_ptr <JSONObject> parameter = static_pointer_cast <JSONObject> (values->getValue(keys[i]));
        shared_ptr <JSONObject> parameterValue = static_pointer_cast <JSONObject> (parameter->getValue("value"));
        shared_ptr<JSONObject> output(new JSONObject());
        if (parameterValue) {
            outputs->setValue(keys[i], parameterValue);
        }
    }
    instanceTechnique->setValue("values", outputs);

    return effectObject;
}
Exemplo n.º 2
0
    shared_ptr <GLTF::JSONObject> serializeEffect(GLTFEffect* effect, void *context)
    {
        shared_ptr <GLTF::JSONObject> effectObject(new GLTF::JSONObject());
        
        shared_ptr <GLTF::JSONObject> instanceTechnique(new GLTF::JSONObject());
        
        std::string techniqueID = effect->getTechniqueID();

        effectObject->setString("name", effect->getName());
        effectObject->setValue("instanceTechnique", instanceTechnique);
        instanceTechnique->setString("technique", techniqueID);
        shared_ptr<JSONArray> outputs(new JSONArray());
        shared_ptr <JSONObject> values = effect->getValues();
        std::vector <std::string> keys = values->getAllKeys();
        for (size_t i = 0 ; i < keys.size() ; i++) {
            shared_ptr <JSONObject> parameter = static_pointer_cast <JSONObject> (values->getValue(keys[i]));
            shared_ptr <JSONObject> parameterValue = static_pointer_cast <JSONObject> (parameter->getValue("value"));
            shared_ptr<JSONObject> output(new JSONObject());
            if (parameterValue) {
                output->setValue("value", parameterValue);
                output->setString("parameter", keys[i]);
                outputs->appendValue(output);
            }
        }
        instanceTechnique->setValue("values", outputs);
    
        return effectObject;
    }
Exemplo n.º 3
0
 shared_ptr <JSONExport::JSONObject> serializeEffect(JSONEffect* effect, void *context)
 {
     shared_ptr <JSONExport::JSONObject> effectObject(new JSONExport::JSONObject());
     shared_ptr <JSONExport::JSONArray> colorObject(new JSONExport::JSONArray());
     
     effectObject->setString("technique", effect->getTechniqueID());
     effectObject->setString("name", effect->getName());
     effectObject->setValue("techniques", effect->getTechniques());
     
     return effectObject;
 }
Exemplo n.º 4
0
    shared_ptr <GLTF::JSONObject> serializeEffect(GLTFEffect* effect, void *context)
    {
        shared_ptr <GLTF::JSONObject> effectObject(new GLTF::JSONObject());
        
        shared_ptr <GLTF::JSONObject> techniques(new GLTF::JSONObject());
        
        std::string techniqueID = effect->getTechniqueID();
        
        effectObject->setString("technique", techniqueID);
        effectObject->setString("name", effect->getName());

        shared_ptr <GLTF::JSONObject> technique = effect->getTechnique();
        techniques->setValue(techniqueID, technique);
        effectObject->setValue("techniques", techniques);
        
        return effectObject;
    }