Katana Plug-in APIs 0.1

FnGLTranslateManipulator.h

00001 // Copyright (c) 2017 The Foundry Visionmongers Ltd. All Rights Reserved.
00002 
00003 #ifndef GLTRANSLATEMANIPULATOR_H_
00004 #define GLTRANSLATEMANIPULATOR_H_
00005 
00006 #include "FnGLTransformManipulator.h"
00007 #include "FnViewer/utils/FnGLManipulator.h"
00008 
00009 #include <FnAttribute/FnGroupBuilder.h>
00010 
00011 using Foundry::Katana::ViewerUtils::GLTransformManipulator;
00012 
00022 class GLTranslateManipulator : public GLTransformManipulator
00023 {
00024     using OpId = Foundry::Katana::ViewerAPI::OptionIdGenerator;
00025 
00026 public:
00027 
00029     GLTranslateManipulator();
00030 
00032     virtual ~GLTranslateManipulator();
00033 
00040     static const bool kAlwaysAtLocationOrigin;
00041 
00043     static Manipulator* create()
00044     {
00045         return new GLTranslateManipulator();
00046     }
00047 
00049     static void flush(){}
00050 
00055     static bool matches(FnAttribute::GroupAttribute locationAttrs)
00056     {
00057         return locationAttrs.getChildByName("xform.interactive.translate").isValid();
00058     }
00059 
00066     static FnAttribute::GroupAttribute getTags()
00067     {
00068         FnAttribute::GroupBuilder gb;
00069         gb.set(kTagName, FnAttribute::StringAttribute("Translate"));
00070         gb.set(kTagShortcut, FnAttribute::StringAttribute("W"));
00071         gb.set(kTagGroup, FnAttribute::StringAttribute(kTagGroup_TRANSFORM));
00072         gb.set(kTagTechnology, FnAttribute::StringAttribute(
00073             GLTransformManipulator::kTechnology));
00074         gb.set(kTagAlwaysAvailable, FnAttribute::IntAttribute(1));
00075         gb.set(kTagExclusiveInGroup, FnAttribute::IntAttribute(1));
00076         gb.set(kTagPriorityInGroup, FnAttribute::IntAttribute(1000));
00077 
00078         return gb.build();
00079     }
00080 
00082     void setup();
00083 
00084     void setOption(OpId::value_type optionId,
00085                    FnAttribute::Attribute attr) override;
00086 
00087     Foundry::Katana::ViewerUtils::GLManipulatorHandle* m_cHandle{nullptr};
00088 };
00089 
00090 #endif  // GLTRANSLATEMANIPULATOR_H_
 All Classes Functions Variables Typedefs Enumerations Enumerator