{ "info" : { "source" : "include/imguizmo/ImGuizmo.h", "hash" : "e4cff3bc8014e2bccae881f1b0535298", "url" : "https://github.com/CedricGuillemet/ImGuizmo.git", "revision" : "f7bbbe39971d9d45816417a70e9b53a0f698c56e" }, "decls" : [ { "@type" : "AstNamespaceDecl", "name" : "ImGuizmo", "decls" : [ { "@type" : "AstFunctionDecl", "name" : "SetDrawlist", "resultType" : "void", "decls" : [ { "@type" : "AstParmVarDecl", "name" : "drawlist", "qualType" : "int *", "desugaredQualType" : "int *", "defaultValue" : "=" }, { "@type" : "AstFullComment", "decls" : [ { "@type" : "AstParagraphComment", "decls" : [ { "@type" : "AstTextComment", "text" : " call inside your own window and before Manipulate() in order to draw gizmo to that window." }, { "@type" : "AstTextComment", "text" : " Or pass a specific ImDrawList to draw to (e.g. ImGui::GetForegroundDrawList())." } ] } ] } ] }, { "@type" : "AstFunctionDecl", "name" : "BeginFrame", "resultType" : "void", "decls" : [ { "@type" : "AstFullComment", "decls" : [ { "@type" : "AstParagraphComment", "decls" : [ { "@type" : "AstTextComment", "text" : " call BeginFrame right after ImGui_XXXX_NewFrame();" } ] } ] } ] }, { "@type" : "AstFunctionDecl", "name" : "SetImGuiContext", "resultType" : "void", "decls" : [ { "@type" : "AstParmVarDecl", "name" : "ctx", "qualType" : "int *", "desugaredQualType" : "int *" }, { "@type" : "AstFullComment", "decls" : [ { "@type" : "AstParagraphComment", "decls" : [ { "@type" : "AstTextComment", "text" : " this is necessary because when imguizmo is compiled into a dll, and imgui into another" }, { "@type" : "AstTextComment", "text" : " globals are not shared between them." }, { "@type" : "AstTextComment", "text" : " More details at https://stackoverflow.com/questions/19373061/what-happens-to-global-and-static-variables-in-a-shared-library-when-it-is-dynam" }, { "@type" : "AstTextComment", "text" : " expose method to set imgui context" } ] } ] } ] }, { "@type" : "AstFunctionDecl", "name" : "IsOver", "resultType" : "bool", "decls" : [ { "@type" : "AstFullComment", "decls" : [ { "@type" : "AstParagraphComment", "decls" : [ { "@type" : "AstTextComment", "text" : " return true if mouse cursor is over any gizmo control (axis, plan or screen component)" } ] } ] } ] }, { "@type" : "AstFunctionDecl", "name" : "IsUsing", "resultType" : "bool", "decls" : [ { "@type" : "AstFullComment", "decls" : [ { "@type" : "AstParagraphComment", "decls" : [ { "@type" : "AstTextComment", "text" : " return true if mouse IsOver or if the gizmo is in moving state" } ] } ] } ] }, { "@type" : "AstFunctionDecl", "name" : "Enable", "resultType" : "void", "decls" : [ { "@type" : "AstParmVarDecl", "name" : "enable", "qualType" : "bool", "desugaredQualType" : "bool" }, { "@type" : "AstFullComment", "decls" : [ { "@type" : "AstParagraphComment", "decls" : [ { "@type" : "AstTextComment", "text" : " enable/disable the gizmo. Stay in the state until next call to Enable." }, { "@type" : "AstTextComment", "text" : " gizmo is rendered with gray half transparent color when disabled" } ] } ] } ] }, { "@type" : "AstFunctionDecl", "name" : "DecomposeMatrixToComponents", "resultType" : "void", "decls" : [ { "@type" : "AstParmVarDecl", "name" : "matrix", "qualType" : "const float *", "desugaredQualType" : "const float *" }, { "@type" : "AstParmVarDecl", "name" : "translation", "qualType" : "float *", "desugaredQualType" : "float *" }, { "@type" : "AstParmVarDecl", "name" : "rotation", "qualType" : "float *", "desugaredQualType" : "float *" }, { "@type" : "AstParmVarDecl", "name" : "scale", "qualType" : "float *", "desugaredQualType" : "float *" }, { "@type" : "AstFullComment", "decls" : [ { "@type" : "AstParagraphComment", "decls" : [ { "@type" : "AstTextComment", "text" : " helper functions for manualy editing translation/rotation/scale with an input float" }, { "@type" : "AstTextComment", "text" : " translation, rotation and scale float points to 3 floats each" }, { "@type" : "AstTextComment", "text" : " Angles are in degrees (more suitable for human editing)" }, { "@type" : "AstTextComment", "text" : " example:" }, { "@type" : "AstTextComment", "text" : " float matrixTranslation[3], matrixRotation[3], matrixScale[3];" }, { "@type" : "AstTextComment", "text" : " ImGuizmo::DecomposeMatrixToComponents(gizmoMatrix.m16, matrixTranslation, matrixRotation, matrixScale);" }, { "@type" : "AstTextComment", "text" : " ImGui::InputFloat3(\"Tr\", matrixTranslation, 3);" }, { "@type" : "AstTextComment", "text" : " ImGui::InputFloat3(\"Rt\", matrixRotation, 3);" }, { "@type" : "AstTextComment", "text" : " ImGui::InputFloat3(\"Sc\", matrixScale, 3);" }, { "@type" : "AstTextComment", "text" : " ImGuizmo::RecomposeMatrixFromComponents(matrixTranslation, matrixRotation, matrixScale, gizmoMatrix.m16);" } ] }, { "@type" : "AstParagraphComment", "decls" : [ { "@type" : "AstTextComment", "text" : " These functions have some numerical stability issues for now. Use with caution." } ] } ] } ] }, { "@type" : "AstFunctionDecl", "name" : "RecomposeMatrixFromComponents", "resultType" : "void", "decls" : [ { "@type" : "AstParmVarDecl", "name" : "translation", "qualType" : "const float *", "desugaredQualType" : "const float *" }, { "@type" : "AstParmVarDecl", "name" : "rotation", "qualType" : "const float *", "desugaredQualType" : "const float *" }, { "@type" : "AstParmVarDecl", "name" : "scale", "qualType" : "const float *", "desugaredQualType" : "const float *" }, { "@type" : "AstParmVarDecl", "name" : "matrix", "qualType" : "float *", "desugaredQualType" : "float *" } ] }, { "@type" : "AstFunctionDecl", "name" : "SetRect", "resultType" : "void", "decls" : [ { "@type" : "AstParmVarDecl", "name" : "x", "qualType" : "float", "desugaredQualType" : "float" }, { "@type" : "AstParmVarDecl", "name" : "y", "qualType" : "float", "desugaredQualType" : "float" }, { "@type" : "AstParmVarDecl", "name" : "width", "qualType" : "float", "desugaredQualType" : "float" }, { "@type" : "AstParmVarDecl", "name" : "height", "qualType" : "float", "desugaredQualType" : "float" } ] }, { "@type" : "AstFunctionDecl", "name" : "SetOrthographic", "resultType" : "void", "decls" : [ { "@type" : "AstParmVarDecl", "name" : "isOrthographic", "qualType" : "bool", "desugaredQualType" : "bool" }, { "@type" : "AstFullComment", "decls" : [ { "@type" : "AstParagraphComment", "decls" : [ { "@type" : "AstTextComment", "text" : " default is false" } ] } ] } ] }, { "@type" : "AstFunctionDecl", "name" : "DrawCubes", "resultType" : "void", "decls" : [ { "@type" : "AstParmVarDecl", "name" : "view", "qualType" : "const float *", "desugaredQualType" : "const float *" }, { "@type" : "AstParmVarDecl", "name" : "projection", "qualType" : "const float *", "desugaredQualType" : "const float *" }, { "@type" : "AstParmVarDecl", "name" : "matrices", "qualType" : "const float *", "desugaredQualType" : "const float *" }, { "@type" : "AstParmVarDecl", "name" : "matrixCount", "qualType" : "int", "desugaredQualType" : "int" }, { "@type" : "AstFullComment", "decls" : [ { "@type" : "AstParagraphComment", "decls" : [ { "@type" : "AstTextComment", "text" : " Render a cube with face color corresponding to face normal. Usefull for debug/tests" } ] } ] } ] }, { "@type" : "AstFunctionDecl", "name" : "DrawGrid", "resultType" : "void", "decls" : [ { "@type" : "AstParmVarDecl", "name" : "view", "qualType" : "const float *", "desugaredQualType" : "const float *" }, { "@type" : "AstParmVarDecl", "name" : "projection", "qualType" : "const float *", "desugaredQualType" : "const float *" }, { "@type" : "AstParmVarDecl", "name" : "matrix", "qualType" : "const float *", "desugaredQualType" : "const float *" }, { "@type" : "AstParmVarDecl", "name" : "gridSize", "qualType" : "const float", "desugaredQualType" : "const float" } ] }, { "@type" : "AstEnumDecl", "name" : "OPERATION", "decls" : [ { "@type" : "AstFullComment", "decls" : [ { "@type" : "AstParagraphComment", "decls" : [ { "@type" : "AstTextComment", "text" : " call it when you want a gizmo" }, { "@type" : "AstTextComment", "text" : " Needs view and projection matrices. " }, { "@type" : "AstTextComment", "text" : " matrix parameter is the source matrix (where will be gizmo be drawn) and might be transformed by the function. Return deltaMatrix is optional" }, { "@type" : "AstTextComment", "text" : " translation is applied in world space" } ] } ] }, { "@type" : "AstEnumConstantDecl", "name" : "TRANSLATE_X", "qualType" : "ImGuizmo::OPERATION", "order" : 0, "value" : "(1u << 0)", "evaluatedValue" : 1 }, { "@type" : "AstEnumConstantDecl", "name" : "TRANSLATE_Y", "qualType" : "ImGuizmo::OPERATION", "order" : 1, "value" : "(1u << 1)", "evaluatedValue" : 2 }, { "@type" : "AstEnumConstantDecl", "name" : "TRANSLATE_Z", "qualType" : "ImGuizmo::OPERATION", "order" : 2, "value" : "(1u << 2)", "evaluatedValue" : 4 }, { "@type" : "AstEnumConstantDecl", "name" : "ROTATE_X", "qualType" : "ImGuizmo::OPERATION", "order" : 3, "value" : "(1u << 3)", "evaluatedValue" : 8 }, { "@type" : "AstEnumConstantDecl", "name" : "ROTATE_Y", "qualType" : "ImGuizmo::OPERATION", "order" : 4, "value" : "(1u << 4)", "evaluatedValue" : 16 }, { "@type" : "AstEnumConstantDecl", "name" : "ROTATE_Z", "qualType" : "ImGuizmo::OPERATION", "order" : 5, "value" : "(1u << 5)", "evaluatedValue" : 32 }, { "@type" : "AstEnumConstantDecl", "name" : "ROTATE_SCREEN", "qualType" : "ImGuizmo::OPERATION", "order" : 6, "value" : "(1u << 6)", "evaluatedValue" : 64 }, { "@type" : "AstEnumConstantDecl", "name" : "SCALE_X", "qualType" : "ImGuizmo::OPERATION", "order" : 7, "value" : "(1u << 7)", "evaluatedValue" : 128 }, { "@type" : "AstEnumConstantDecl", "name" : "SCALE_Y", "qualType" : "ImGuizmo::OPERATION", "order" : 8, "value" : "(1u << 8)", "evaluatedValue" : 256 }, { "@type" : "AstEnumConstantDecl", "name" : "SCALE_Z", "qualType" : "ImGuizmo::OPERATION", "order" : 9, "value" : "(1u << 9)", "evaluatedValue" : 512 }, { "@type" : "AstEnumConstantDecl", "name" : "BOUNDS", "qualType" : "ImGuizmo::OPERATION", "order" : 10, "value" : "(1u << 10)", "evaluatedValue" : 1024 }, { "@type" : "AstEnumConstantDecl", "name" : "TRANSLATE", "qualType" : "ImGuizmo::OPERATION", "order" : 11, "value" : "TRANSLATE_X | TRANSLATE_Y | TRANSLATE_Z", "evaluatedValue" : 7 }, { "@type" : "AstEnumConstantDecl", "name" : "ROTATE", "qualType" : "ImGuizmo::OPERATION", "order" : 12, "value" : "ROTATE_X | ROTATE_Y | ROTATE_Z | ROTATE_SCREEN", "evaluatedValue" : 120 }, { "@type" : "AstEnumConstantDecl", "name" : "SCALE", "qualType" : "ImGuizmo::OPERATION", "order" : 13, "value" : "SCALE_X | SCALE_Y | SCALE_Z", "evaluatedValue" : 896 } ] }, { "@type" : "AstEnumDecl", "name" : "MODE", "decls" : [ { "@type" : "AstEnumConstantDecl", "name" : "LOCAL", "qualType" : "ImGuizmo::MODE", "order" : 0, "evaluatedValue" : 0 }, { "@type" : "AstEnumConstantDecl", "name" : "WORLD", "qualType" : "ImGuizmo::MODE", "order" : 1, "evaluatedValue" : 1 } ] }, { "@type" : "AstFunctionDecl", "name" : "Manipulate", "resultType" : "bool", "decls" : [ { "@type" : "AstParmVarDecl", "name" : "view", "qualType" : "const float *", "desugaredQualType" : "const float *" }, { "@type" : "AstParmVarDecl", "name" : "projection", "qualType" : "const float *", "desugaredQualType" : "const float *" }, { "@type" : "AstParmVarDecl", "name" : "operation", "qualType" : "OPERATION", "desugaredQualType" : "ImGuizmo::OPERATION" }, { "@type" : "AstParmVarDecl", "name" : "mode", "qualType" : "MODE", "desugaredQualType" : "ImGuizmo::MODE" }, { "@type" : "AstParmVarDecl", "name" : "matrix", "qualType" : "float *", "desugaredQualType" : "float *" }, { "@type" : "AstParmVarDecl", "name" : "deltaMatrix", "qualType" : "float *", "desugaredQualType" : "float *", "defaultValue" : "=" }, { "@type" : "AstParmVarDecl", "name" : "snap", "qualType" : "const float *", "desugaredQualType" : "const float *", "defaultValue" : "=" }, { "@type" : "AstParmVarDecl", "name" : "localBounds", "qualType" : "const float *", "desugaredQualType" : "const float *", "defaultValue" : "=" }, { "@type" : "AstParmVarDecl", "name" : "boundsSnap", "qualType" : "const float *", "desugaredQualType" : "const float *", "defaultValue" : "=" } ] }, { "@type" : "AstFunctionDecl", "name" : "ViewManipulate", "resultType" : "void", "decls" : [ { "@type" : "AstParmVarDecl", "name" : "view", "qualType" : "float *", "desugaredQualType" : "float *" }, { "@type" : "AstParmVarDecl", "name" : "length", "qualType" : "float", "desugaredQualType" : "float" }, { "@type" : "AstParmVarDecl", "name" : "position", "qualType" : "int", "desugaredQualType" : "int" }, { "@type" : "AstParmVarDecl", "name" : "size", "qualType" : "int", "desugaredQualType" : "int" }, { "@type" : "AstParmVarDecl", "name" : "backgroundColor", "qualType" : "int", "desugaredQualType" : "int" }, { "@type" : "AstFullComment", "decls" : [ { "@type" : "AstParagraphComment", "decls" : [ { "@type" : "AstTextComment", "text" : " Please note that this cubeview is patented by Autodesk : https://patents.google.com/patent/US7782319B2/en" }, { "@type" : "AstTextComment", "text" : " It seems to be a defensive patent in the US. I don't think it will bring troubles using it as" }, { "@type" : "AstTextComment", "text" : " other software are using the same mechanics. But just in case, you are now warned!" } ] } ] } ] }, { "@type" : "AstFunctionDecl", "name" : "SetID", "resultType" : "void", "decls" : [ { "@type" : "AstParmVarDecl", "name" : "id", "qualType" : "int", "desugaredQualType" : "int" } ] }, { "@type" : "AstFunctionDecl", "name" : "IsOver", "resultType" : "bool", "decls" : [ { "@type" : "AstParmVarDecl", "name" : "op", "qualType" : "OPERATION", "desugaredQualType" : "ImGuizmo::OPERATION" }, { "@type" : "AstFullComment", "decls" : [ { "@type" : "AstParagraphComment", "decls" : [ { "@type" : "AstTextComment", "text" : " return true if the cursor is over the operation's gizmo" } ] } ] } ] }, { "@type" : "AstFunctionDecl", "name" : "SetGizmoSizeClipSpace", "resultType" : "void", "decls" : [ { "@type" : "AstParmVarDecl", "name" : "value", "qualType" : "float", "desugaredQualType" : "float" } ] }, { "@type" : "AstFunctionDecl", "name" : "AllowAxisFlip", "resultType" : "void", "decls" : [ { "@type" : "AstParmVarDecl", "name" : "value", "qualType" : "bool", "desugaredQualType" : "bool" }, { "@type" : "AstFullComment", "decls" : [ { "@type" : "AstParagraphComment", "decls" : [ { "@type" : "AstTextComment", "text" : " Allow axis to flip" }, { "@type" : "AstTextComment", "text" : " When true (default), the guizmo axis flip for better visibility" }, { "@type" : "AstTextComment", "text" : " When false, they always stay along the positive world/local axis" } ] } ] } ] } ] } ] }