Adding new Command to set the hardware layertype during scene creation
authorMichael Schuldt <michael.schuldt@bmw-carit.de>
Wed, 28 Sep 2011 09:38:45 +0000 (11:38 +0200)
committerMichael Schuldt <michael.schuldt@bmw-carit.de>
Thu, 20 Oct 2011 07:50:13 +0000 (09:50 +0200)
LayerManagerCommands/include/SetLayerTypeCommand.h [new file with mode: 0644]
LayerManagerCommands/src/SetLayerTypeCommand.cpp [new file with mode: 0644]

diff --git a/LayerManagerCommands/include/SetLayerTypeCommand.h b/LayerManagerCommands/include/SetLayerTypeCommand.h
new file mode 100644 (file)
index 0000000..9767886
--- /dev/null
@@ -0,0 +1,40 @@
+/***************************************************************************
+*
+* Copyright 2010,2011 BMW Car IT GmbH
+*
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*        http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+****************************************************************************/
+
+#ifndef _SETLAYERTYPECOMMAND_H_
+#define _SETLAYERTYPECOMMAND_H_
+
+#include "BaseCommandAsynchronous.h"
+#include "LayerType.h"
+
+class SetLayerTypeCommand : public BaseCommandAsynchronous
+{
+public:
+    SetLayerTypeCommand(const unsigned int givenid, LayerType layertype);
+
+    virtual ExecutionResult execute(ICommandExecutor* executor);
+    virtual const std::string getString();
+
+private:
+    const unsigned int m_idtoSet;
+    const LayerType m_layerType;
+};
+
+
+#endif /* _SETLAYERTYPECOMMAND_H_ */
diff --git a/LayerManagerCommands/src/SetLayerTypeCommand.cpp b/LayerManagerCommands/src/SetLayerTypeCommand.cpp
new file mode 100644 (file)
index 0000000..d56f8b1
--- /dev/null
@@ -0,0 +1,58 @@
+/***************************************************************************
+*
+* Copyright 2010,2011 BMW Car IT GmbH
+*
+*
+* Licensed under the Apache License, Version 2.0 (the "License");
+* you may not use this file except in compliance with the License.
+* You may obtain a copy of the License at
+*
+*        http://www.apache.org/licenses/LICENSE-2.0
+*
+* Unless required by applicable law or agreed to in writing, software
+* distributed under the License is distributed on an "AS IS" BASIS,
+* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+* See the License for the specific language governing permissions and
+* limitations under the License.
+*
+****************************************************************************/
+#include "SetLayerTypeCommand.h"
+#include "ICommandExecutor.h"
+#include "Scene.h"
+#include "Log.h"
+
+SetLayerTypeCommand::SetLayerTypeCommand(const uint givenid, LayerType layerType)
+: m_idtoSet(givenid)
+, m_layerType(layerType)
+{
+}
+
+ExecutionResult SetLayerTypeCommand::execute(ICommandExecutor* executor)
+{
+    Scene& scene = *(executor->getScene());
+
+    ExecutionResult result = ExecutionFailed;
+
+    Layer* layer = NULL;
+
+    layer = scene.getLayer(m_idtoSet);
+
+    if (layer)
+    {
+        LOG_DEBUG("SetLayerTypeCommand", "setting type: " << m_layerType << " of id " << m_idtoSet);
+        layer->setLayerType(m_layerType);
+        result = ExecutionSuccessRedraw;
+    }
+
+    return result;
+}
+
+const std::string SetLayerTypeCommand::getString()
+{
+    std::stringstream description;
+    description << "SetLayerTypeCommand("
+                << "idtoSet=" << m_idtoSet
+                << ", layertype=" << m_layerType
+                << ")";
+    return description.str();
+}