Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions include/commandLine.h
Original file line number Diff line number Diff line change
Expand Up @@ -394,6 +394,11 @@ struct CommandLine
*/
inline int lua_setOption(lua_State * lua)
{
if (lua_gettop(lua) >= 1 && lua_isstring(lua, 1) && std::string(lua_tostring(lua, 1)) == "help")
{
lua_writestring("setOption:\n Arguments:\n name [string],\n value\n Set option name to value.\n");
return 0;
};
int args = lua_gettop(lua);
if (args != 2)
{
Expand Down Expand Up @@ -502,6 +507,11 @@ struct CommandLine
*/
inline int lua_getOption(lua_State * lua)
{
if (lua_gettop(lua) >= 1 && lua_isstring(lua, 1) && std::string(lua_tostring(lua, 1)) == "help")
{
lua_writestring("getOption:\n Arguments:\n name [string]\n Get the value of option name.\n");
return 0;
};
int args = lua_gettop(lua);
if (args != 1)
{
Expand Down
44 changes: 44 additions & 0 deletions include/console.h
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,11 @@ int dispatchCommandLine(lua_State * lua)
*/
int lua_startRecord(lua_State * lua)
{
if (lua_gettop(lua) >= 1 && lua_isstring(lua, 1) && std::string(lua_tostring(lua, 1)) == "help")
{
lua_writestring("startRecord:\n Arguments: none\n Start video recording.\n");
return 0;
};
LuaExtraSpace * extraSpace = *static_cast<LuaExtraSpace**>(lua_getextraspace(lua));
if (!extraSpace->visualisationState->recording)
{
Expand All @@ -122,6 +127,11 @@ int lua_startRecord(lua_State * lua)
*/
int lua_stopRecord(lua_State * lua)
{
if (lua_gettop(lua) >= 1 && lua_isstring(lua, 1) && std::string(lua_tostring(lua, 1)) == "help")
{
lua_writestring("stopRecord:\n Arguments: none\n Stop video recording.\n");
return 0;
};
LuaExtraSpace * extraSpace = *static_cast<LuaExtraSpace**>(lua_getextraspace(lua));
if (extraSpace->visualisationState->recording)
{
Expand All @@ -138,6 +148,11 @@ int lua_stopRecord(lua_State * lua)
*/
int lua_play(lua_State * lua)
{
if (lua_gettop(lua) >= 1 && lua_isstring(lua, 1) && std::string(lua_tostring(lua, 1)) == "help")
{
lua_writestring("play:\n Arguments: none\n Play the trajectory.\n");
return 0;
};
LuaExtraSpace * extraSpace = *static_cast<LuaExtraSpace**>(lua_getextraspace(lua));
extraSpace->options->play.value = true;
return 0;
Expand All @@ -151,6 +166,11 @@ int lua_play(lua_State * lua)
*/
int lua_exit(lua_State * lua)
{
if (lua_gettop(lua) >= 1 && lua_isstring(lua, 1) && std::string(lua_tostring(lua, 1)) == "help")
{
lua_writestring("exit:\n Arguments: none\n Quit sfoav.\n");
return 0;
};
LuaExtraSpace * extraSpace = *static_cast<LuaExtraSpace**>(lua_getextraspace(lua));
*(extraSpace->exit) = true;
return 0;
Expand All @@ -164,6 +184,11 @@ int lua_exit(lua_State * lua)
*/
int lua_pause(lua_State * lua)
{
if (lua_gettop(lua) >= 1 && lua_isstring(lua, 1) && std::string(lua_tostring(lua, 1)) == "help")
{
lua_writestring("pause:\n Arguments: none\n Pause the trajectory.\n");
return 0;
};
LuaExtraSpace * extraSpace = *static_cast<LuaExtraSpace**>(lua_getextraspace(lua));
extraSpace->options->play.value = false;
return 0;
Expand Down Expand Up @@ -207,6 +232,25 @@ class Console
end
use(sfoav))";
runString(init);

const char * help = R"(
function help(func)
if func == sfoav or func == nil then
for k,v in pairs(sfoav) do
v("help")
print("\n")
end
return
end
for k,v in pairs(sfoav) do
if v == func then
func("help")
print("\n")
return
end
end
end)";
runString(help);
}

~Console(){ lua_close(lua); }
Expand Down
12 changes: 2 additions & 10 deletions include/consoleWindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,6 @@ This is free software, and you are welcome to redistribute it under certain cond
memset(InputBuf, 0, sizeof(InputBuf));
HistoryPos = -1;

Commands.push_back("HELP");
Commands.push_back("HISTORY");
Commands.push_back("CLEAR");
AutoScroll = true;
Expand Down Expand Up @@ -166,7 +165,8 @@ This is free software, and you are welcome to redistribute it under certain cond

focussed = ImGui::IsWindowFocused();

ImGui::TextWrapped("Enter 'HELP' for help.");
ImGui::TextWrapped("Enter 'help()' for a list of functions.");
ImGui::TextWrapped("For help with each function: 'help(zoomCamera)'.");

if (ImGui::SmallButton("Clear")) { clearLog(); }

Expand Down Expand Up @@ -260,14 +260,6 @@ This is free software, and you are welcome to redistribute it under certain cond
{
clearLog();
}
else if (Stricmp(command_line, "HELP") == 0)
{
addLog("Commands:");
for (int i = 0; i < Commands.Size; i++)
{
addLog("- %s", Commands[i]);
}
}
else if (Stricmp(command_line, "HISTORY") == 0)
{
int first = History.Size - 10;
Expand Down
37 changes: 36 additions & 1 deletion include/luaBindings/camera.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@
*/
inline int Camera::lua_cameraPosition(lua_State * lua)
{
if (lua_gettop(lua) >= 1 && lua_isstring(lua, 1) && std::string(lua_tostring(lua, 1)) == "help")
{
lua_writestring("cameraPosition:\n Arguments:\n spherical [bool, optional]\n Get the position of the camera.\n By default in cartesian form.\n");
return 0;
};
int args = lua_gettop(lua);
bool spherical = false;
if (args == 1)
Expand Down Expand Up @@ -41,6 +46,11 @@ inline int Camera::lua_cameraPosition(lua_State * lua)
*/
inline int Camera::lua_setCameraPosition(lua_State * lua)
{
if (lua_gettop(lua) >= 1 && lua_isstring(lua, 1) && std::string(lua_tostring(lua, 1)) == "help")
{
lua_writestring("setCameraPosition:\n Arguments:\n x [number],\b y [number],\n z[number]\n Set the position of the camera.\n");
return 0;
};
int args = lua_gettop(lua);
if (args != 3)
{
Expand Down Expand Up @@ -68,6 +78,11 @@ inline int Camera::lua_setCameraPosition(lua_State * lua)
*/
inline int Camera::lua_rotateCamera(lua_State * lua)
{
if (lua_gettop(lua) >= 1 && lua_isstring(lua, 1) && std::string(lua_tostring(lua, 1)) == "help")
{
lua_writestring("rotateCamera:\n Arguments:\n phi [number]\n Rotate the camera by phi radians.\n");
return 0;
};
int args = lua_gettop(lua);
if (args != 1)
{
Expand All @@ -93,6 +108,11 @@ inline int Camera::lua_rotateCamera(lua_State * lua)
*/
inline int Camera::lua_zoomCamera(lua_State * lua)
{
if (lua_gettop(lua) >= 1 && lua_isstring(lua, 1) && std::string(lua_tostring(lua, 1)) == "help")
{
lua_writestring("zoomCamera:\n Arguments:\n r [number]\n Zoom the camera.\n");
return 0;
};
int args = lua_gettop(lua);
if (args != 1)
{
Expand All @@ -118,6 +138,11 @@ inline int Camera::lua_zoomCamera(lua_State * lua)
*/
inline int Camera::lua_inclineCamera(lua_State * lua)
{
if (lua_gettop(lua) >= 1 && lua_isstring(lua, 1) && std::string(lua_tostring(lua, 1)) == "help")
{
lua_writestring("inclineCamera:\n Arguments:\n theta [number]\n Incline the camera by theta radians.\n");
return 0;
};
int args = lua_gettop(lua);
if (args != 1)
{
Expand All @@ -143,6 +168,11 @@ inline int Camera::lua_inclineCamera(lua_State * lua)
*/
inline int Camera::lua_setCameraFieldOfView(lua_State * lua)
{
if (lua_gettop(lua) >= 1 && lua_isstring(lua, 1) && std::string(lua_tostring(lua, 1)) == "help")
{
lua_writestring("setCameraFieldOfView:\n Arguments:\n fov [number]\n Set the camera's fov in degrees.\n");
return 0;
};
int args = lua_gettop(lua);
if (args != 1)
{
Expand All @@ -160,14 +190,19 @@ inline int Camera::lua_setCameraFieldOfView(lua_State * lua)
}

/**
* @brief Set the field of view.
* @brief Get the field of view.
*
* @remark Lua arguments are:
* @param lua the Lua context.
* @return int the return code.
*/
inline int Camera::lua_getCameraFieldOfView(lua_State * lua)
{
if (lua_gettop(lua) >= 1 && lua_isstring(lua, 1) && std::string(lua_tostring(lua, 1)) == "help")
{
lua_writestring("getCameraFieldOfView:\n Arguments: none\n Get the camera's fov in degrees.\n");
return 0;
};
lua_pushnumber(lua, fieldOfView);
return 1;
}
Expand Down
30 changes: 30 additions & 0 deletions include/luaBindings/visualisationState/atoms.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,11 @@
inline int VisualisationState::lua_setAtomColour(lua_State * lua)
{
int args = lua_gettop(lua);
if (lua_gettop(lua) >= 1 && lua_isstring(lua, 1) && std::string(lua_tostring(lua, 1)) == "help")
{
lua_writestring("setAtomColour:\n Arguments:\n i [number]\n r [number]\n g [nummber]\n b [number]\n a [number]\n Set atom i's colour.\n");
return 0;
};
if (args < 4 || args > 5)
{
const std::string msg = "setAtomColour expects an atom index and RGB or RGBA arguments.\n";
Expand Down Expand Up @@ -72,6 +77,11 @@ inline int VisualisationState::lua_setAtomColour(lua_State * lua)
inline int VisualisationState::lua_getAtomColour(lua_State * lua)
{
int args = lua_gettop(lua);
if (lua_gettop(lua) >= 1 && lua_isstring(lua, 1) && std::string(lua_tostring(lua, 1)) == "help")
{
lua_writestring("setAtomColour:\n Arguments: none\n Get atom i's colour.\n");
return 0;
};
if (args != 1)
{
const std::string msg = "getAtomColour expects an atom index as argument.\n";
Expand Down Expand Up @@ -114,6 +124,11 @@ inline int VisualisationState::lua_getAtomColour(lua_State * lua)
*/
inline int VisualisationState::lua_atomCount(lua_State * lua)
{
if (lua_gettop(lua) >= 1 && lua_isstring(lua, 1) && std::string(lua_tostring(lua, 1)) == "help")
{
lua_writestring("atomCount:\n Arguments: none\n Get number of atoms.\n");
return 0;
};
lua_pushinteger(lua, atomCount);
return 1;
}
Expand All @@ -131,6 +146,11 @@ inline int VisualisationState::lua_atomCount(lua_State * lua)
inline int VisualisationState::lua_getAtomsNeighbours(lua_State * lua)
{
int args = lua_gettop(lua);
if (lua_gettop(lua) >= 1 && lua_isstring(lua, 1) && std::string(lua_tostring(lua, 1)) == "help")
{
lua_writestring("setAtomColour:\n Arguments:\n i [number]\n cutoff [number]\n Get atom i's neighbours within cutoff.\n");
return 0;
};
if (args < 2)
{
const std::string msg = "getAtomsNeighbours expects an atom index and cutoff distance as argument.\n";
Expand Down Expand Up @@ -187,6 +207,11 @@ inline int VisualisationState::lua_getAtomsNeighbours(lua_State * lua)
inline int VisualisationState::lua_getAtom(lua_State * lua)
{
int args = lua_gettop(lua);
if (lua_gettop(lua) >= 1 && lua_isstring(lua, 1) && std::string(lua_tostring(lua, 1)) == "help")
{
lua_writestring("getAtom:\n Arguments: \n i [number]\n Get atom i's state.\n");
return 0;
};
if (args != 1)
{
const std::string msg = "getAtom expects an atom index as argument.\n";
Expand Down Expand Up @@ -264,6 +289,11 @@ inline int VisualisationState::lua_getAtom(lua_State * lua)
inline int VisualisationState::lua_getAtomsBonds(lua_State * lua)
{
int args = lua_gettop(lua);
if (lua_gettop(lua) >= 1 && lua_isstring(lua, 1) && std::string(lua_tostring(lua, 1)) == "help")
{
lua_writestring("getAtomsBonds:\n Arguments:\n i [number]\n Get atom i's bonds.\n");
return 0;
};
if (args != 1)
{
const std::string msg = "getAtomsBonds expects an atom index as argument.\n";
Expand Down
10 changes: 10 additions & 0 deletions include/luaBindings/visualisationState/bonds.h
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,11 @@
*/
inline int VisualisationState::lua_bond(lua_State * lua)
{
if (lua_gettop(lua) >= 1 && lua_isstring(lua, 1) && std::string(lua_tostring(lua, 1)) == "help")
{
lua_writestring("bond:\n Arguments:\n i [number]\n j [number]\n Bond i and j.\n");
return 0;
};
int args = lua_gettop(lua);
if (args != 2)
{
Expand Down Expand Up @@ -56,6 +61,11 @@ inline int VisualisationState::lua_bond(lua_State * lua)
*/
inline int VisualisationState::lua_unbond(lua_State * lua)
{
if (lua_gettop(lua) >= 1 && lua_isstring(lua, 1) && std::string(lua_tostring(lua, 1)) == "help")
{
lua_writestring("unbond:\n Arguments:\n i [number]\n j [number]\n Unbond i and j.\n");
return 0;
};
int args = lua_gettop(lua);
if (args != 2)
{
Expand Down
10 changes: 10 additions & 0 deletions include/luaBindings/visualisationState/utils.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,11 @@
*/
inline int VisualisationState::lua_setText(lua_State * lua)
{
if (lua_gettop(lua) >= 1 && lua_isstring(lua, 1) && std::string(lua_tostring(lua, 1)) == "help")
{
lua_writestring("setText:\n Arguments:\n message [string]\n Set the info message.\n");
return 0;
};
int args = lua_gettop(lua);
if (args != 1)
{
Expand All @@ -35,6 +40,11 @@ inline int VisualisationState::lua_setText(lua_State * lua)
*/
inline int VisualisationState::lua_getFrame(lua_State * lua)
{
if (lua_gettop(lua) >= 1 && lua_isstring(lua, 1) && std::string(lua_tostring(lua, 1)) == "help")
{
lua_writestring("getFrame:\n Arguments: none\n Get the current frame number.");
return 0;
};
lua_pushinteger(lua, frame);
return 1;
}
Expand Down
2 changes: 1 addition & 1 deletion include/vendored/lua/src/lauxlib.h
Original file line number Diff line number Diff line change
Expand Up @@ -258,7 +258,7 @@ typedef struct luaL_Stream {

/* print a string */
#if !defined(lua_writestring)
#define lua_writestring(s,l) (std::cout << s)
#define lua_writestring(s) (std::cout << s)
#endif

/* print a newline and flush the output */
Expand Down
4 changes: 2 additions & 2 deletions include/vendored/lua/src/lbaselib.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ static int luaB_print (lua_State *L) {
size_t l;
const char *s = luaL_tolstring(L, i, &l); /* convert it to string */
if (i > 1) /* not the first element? */
lua_writestring("\t", 1); /* add a tab before it */
lua_writestring(s, l); /* print it */
lua_writestring("\t"); /* add a tab before it */
lua_writestring(s); /* print it */
lua_pop(L, 1); /* pop result */
}
lua_writeline();
Expand Down