|
Katana Plug-in APIs 0.1
|
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_
1.7.3