Katana Plug-in APIs 0.1

FnGLRotateManipulator.h

00001 // Copyright (c) 2016 The Foundry Visionmongers Ltd. All Rights Reserved.
00002 
00003 #ifndef GLROTATEMANIPULATOR_H_
00004 #define GLROTATEMANIPULATOR_H_
00005 
00006 #include "FnGLTransformManipulator.h"
00007 
00008 #include <FnAttribute/FnGroupBuilder.h>
00009 #include <FnViewer/plugin/FnMathTypes.h>
00010 
00011 using Foundry::Katana::ViewerUtils::GLTransformManipulator;
00012 
00025 class GLRotateManipulator : public GLTransformManipulator
00026 {
00027 
00028 public:
00029 
00031     GLRotateManipulator();
00032 
00034     virtual ~GLRotateManipulator();
00035 
00037     static Manipulator* create()
00038     {
00039         return new GLRotateManipulator();
00040     }
00041 
00043     static void flush(){}
00044 
00049     static bool matches(FnAttribute::GroupAttribute locationAttrs)
00050     {
00051         return locationAttrs.getChildByName("xform.interactive.rotateX").isValid()
00052             || locationAttrs.getChildByName("xform.interactive.rotateY").isValid()
00053             || locationAttrs.getChildByName("xform.interactive.rotateZ").isValid();
00054     }
00055 
00062     static FnAttribute::GroupAttribute getTags()
00063     {
00064         FnAttribute::GroupBuilder gb;
00065         gb.set(kTagName, FnAttribute::StringAttribute("Rotate"));
00066         gb.set(kTagShortcut, FnAttribute::StringAttribute("E"));
00067         gb.set(kTagGroup, FnAttribute::StringAttribute(kTagGroup_TRANSFORM));
00068         gb.set(kTagTechnology, FnAttribute::StringAttribute(
00069             GLTransformManipulator::kTechnology));
00070         gb.set(kTagAlwaysAvailable, FnAttribute::IntAttribute(1));
00071         gb.set(kTagExclusiveInGroup, FnAttribute::IntAttribute(1));
00072         gb.set(kTagPriorityInGroup, FnAttribute::IntAttribute(900));
00073 
00074         return gb.build();
00075     }
00076 
00078     void setup();
00079 };
00080 
00081 
00082 #endif  // GLROTATEMANIPULATOR_H_
 All Classes Functions Variables Typedefs Enumerations Enumerator