mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-03 17:56:21 +03:00
0030592: Draw Harness, ViewerTest - provide vbackground command unifying vsetbg, vsetbgmode, vsetgradientbg, vsetgrbgmode, vsetcolorbg
A new command vbackground is created. Old background commands are made aliases for the newly created command (including vsetdefaultbg). Tests are modified using newly added command vbackground.
This commit is contained in:
parent
1bbd7c793c
commit
293211aee0
@ -276,7 +276,7 @@ blend result _model 2 _model_161
|
||||
# Show result
|
||||
pload VISUALIZATION
|
||||
vinit Driver1/Viewer1/View1
|
||||
vsetcolorbg 200 200 255
|
||||
vbackground -color 0.784314 0.784314 1
|
||||
vdisplay -dispMode 1 result
|
||||
vfit
|
||||
vaspects result -setFaceBoundaryDraw 1 -mostContinuity c2
|
||||
|
@ -262,7 +262,7 @@ unifysamedom result p_1
|
||||
# Show result
|
||||
pload VISUALIZATION
|
||||
vinit Driver1/Viewer1/View1
|
||||
vsetcolorbg 200 200 255
|
||||
vbackground -color 0.784314 0.784314 1
|
||||
vdisplay -dispMode 1 result
|
||||
vfit
|
||||
vaspects result -setFaceBoundaryDraw 1
|
||||
|
@ -53,7 +53,7 @@ for {set i 1} {$i <= 1} {incr i} {
|
||||
|
||||
# prepare a view
|
||||
vinit Penrose w=1024 h=512
|
||||
vsetcolorbg 255 255 255
|
||||
vbackground -color WHITE
|
||||
vrenderparams -rayTrace -fsaa on -reflections off -shadows off
|
||||
|
||||
# set camera position and adjust lights
|
||||
|
@ -19,7 +19,7 @@ restore $aBotLoc b
|
||||
vinit View1 w=768 h=768
|
||||
vclear
|
||||
vsetdispmode 0
|
||||
vsetcolorbg 255 255 255
|
||||
vbackground -color WHITE
|
||||
vbottom
|
||||
|
||||
puts "Getting cut projection..."
|
||||
|
@ -69,7 +69,7 @@ vclose ALL
|
||||
vinit View1 w=768 h=768
|
||||
vtop
|
||||
vglinfo
|
||||
vsetgradientbg 180 200 255 180 180 180 2
|
||||
vbackground -gradient 0.705882 0.784314 1 0.705882 0.705882 0.705882 -gradientMode VERTICAL
|
||||
|
||||
vlight -change 0 -dir 0.577 -0.577 -0.577
|
||||
vrenderparams -msaa 8
|
||||
|
@ -59,7 +59,7 @@ XShow D
|
||||
vfit
|
||||
vsetdispmode 1
|
||||
vrenderparams -msaa 8
|
||||
vsetcolorbg 255 255 255
|
||||
vbackground -color WHITE
|
||||
|
||||
#param write.iges.brep.mode 1
|
||||
#WriteIges D d:/pencil3.igs
|
||||
|
@ -30,7 +30,7 @@ vsettransparency glass 0.6
|
||||
vlight new spot pos -100 -100 300
|
||||
|
||||
# set white background and fit view
|
||||
vsetcolorbg 255 255 255
|
||||
vbackground -color WHITE
|
||||
vfit
|
||||
|
||||
# set ray tracing
|
||||
|
@ -129,7 +129,7 @@ vrenderparams -msaa 8
|
||||
vsetcolor snowflake 0 0 0
|
||||
vsetcolor lines 0 0 0
|
||||
vsetcolor text 0 0 0
|
||||
vsetcolorbg 255 255 255
|
||||
vbackground -color WHITE
|
||||
vtop
|
||||
vfit
|
||||
|
||||
|
@ -5965,7 +5965,7 @@ static int VBsdf (Draw_Interpretor& theDI,
|
||||
|
||||
ViewerTest_CmdParser aCmd;
|
||||
|
||||
aCmd.AddDescription ("Adjusts parameters of material BSDF:");
|
||||
aCmd.SetDescription ("Adjusts parameters of material BSDF:");
|
||||
|
||||
aCmd.AddOption ("print|echo|p", "Prints BSDF");
|
||||
|
||||
@ -6007,7 +6007,7 @@ static int VBsdf (Draw_Interpretor& theDI,
|
||||
}
|
||||
|
||||
// find object
|
||||
TCollection_AsciiString aName (aCmd.Arg ("", 0).c_str());
|
||||
TCollection_AsciiString aName (aCmd.Arg (ViewerTest_CmdParser::THE_UNNAMED_COMMAND_OPTION_KEY, 0).c_str());
|
||||
Handle(AIS_InteractiveObject) anIObj;
|
||||
if (!GetMapOfAIS().Find2 (aName, anIObj))
|
||||
{
|
||||
|
@ -16,237 +16,593 @@
|
||||
#include <ViewerTest_CmdParser.hxx>
|
||||
|
||||
#include <Draw.hxx>
|
||||
#include <ViewerTest.hxx>
|
||||
|
||||
#include <algorithm>
|
||||
#include <iostream>
|
||||
#include <sstream>
|
||||
#include <string>
|
||||
|
||||
|
||||
//===============================================================================================
|
||||
//function : ViewerTest_CmdParser
|
||||
//purpose :
|
||||
//===============================================================================================
|
||||
ViewerTest_CmdParser::ViewerTest_CmdParser()
|
||||
namespace
|
||||
{
|
||||
ViewerTest_CmdOption aDefaultOption;
|
||||
myArgumentStorage.push_back (aDefaultOption);
|
||||
myArgumentLists[""] = 0;
|
||||
myArgumentLists["help"] = 0;
|
||||
|
||||
//! Converts the given string to lowercase
|
||||
//! @param theString the string to be converted
|
||||
//! @return a converted string (a string in lowercase)
|
||||
static std::string toLowerCase (std::string theString)
|
||||
{
|
||||
std::transform (theString.begin(), theString.end(), theString.begin(), ::LowerCase);
|
||||
return theString;
|
||||
}
|
||||
|
||||
//! Converts the vector of std::strings to a vector of pointers to its data
|
||||
//! @param theStringList the vector of strings to be converted
|
||||
//! @return a vector of pointers to the data of given strings
|
||||
static std::vector<const char*> convertToRawStringList (const std::vector<std::string>& theStringList)
|
||||
{
|
||||
const std::size_t aListSize = theStringList.size();
|
||||
std::vector<const char*> aRawStringList (aListSize);
|
||||
for (std::size_t anIndex = 0; anIndex < aListSize; ++anIndex)
|
||||
{
|
||||
aRawStringList[anIndex] = theStringList[anIndex].c_str();
|
||||
}
|
||||
return aRawStringList;
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
const std::size_t ViewerTest_CmdParser::THE_UNNAMED_COMMAND_OPTION_KEY = (std::numeric_limits<std::size_t>::max)();
|
||||
|
||||
const std::size_t ViewerTest_CmdParser::THE_HELP_COMMAND_OPTION_KEY = 0;
|
||||
|
||||
//===============================================================================================
|
||||
// function : ViewerTest_CmdParser
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
ViewerTest_CmdParser::ViewerTest_CmdParser (const std::string& theDescription) : myDescription (theDescription)
|
||||
{
|
||||
AddOption ("help|h", "Prints a short description of the command and its options.");
|
||||
}
|
||||
|
||||
//===============================================================================================
|
||||
//function : AddOption
|
||||
//purpose :
|
||||
// function : AddOption
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
void ViewerTest_CmdParser::AddOption (const std::string& theOptionNames, const std::string& theOptionDescription)
|
||||
ViewerTest_CommandOptionKey ViewerTest_CmdParser::AddOption (const std::string& theOptionNames,
|
||||
const std::string& theOptionDescription)
|
||||
{
|
||||
ViewerTest_CmdOption aNewOption;
|
||||
CommandOption aNewOption;
|
||||
|
||||
// extract option names
|
||||
std::vector<std::string> aNames;
|
||||
std::stringstream aStream (theOptionNames);
|
||||
std::string anItem;
|
||||
std::stringstream aStream (theOptionNames);
|
||||
std::string anItem;
|
||||
while (std::getline (aStream, anItem, '|'))
|
||||
{
|
||||
std::transform (anItem.begin(), anItem.end(), anItem.begin(), ::LowerCase);
|
||||
if (!anItem.empty())
|
||||
{
|
||||
aNames.push_back (anItem);
|
||||
}
|
||||
}
|
||||
|
||||
aNewOption.Name = aNames.front();
|
||||
aNewOption.Description = theOptionDescription;
|
||||
aNewOption.IsSet = Standard_False;
|
||||
aNewOption.Name = aNames.front();
|
||||
if (aNames.size() > 1)
|
||||
{
|
||||
const std::size_t aNumberOfAliases = aNames.size() - 1;
|
||||
|
||||
myArgumentStorage.push_back (aNewOption);
|
||||
aNewOption.Aliases.reserve (aNumberOfAliases);
|
||||
std::copy (aNames.begin() + 1, aNames.end(), std::back_inserter (aNewOption.Aliases));
|
||||
}
|
||||
aNewOption.Description = theOptionDescription;
|
||||
|
||||
const ViewerTest_CommandOptionKey aNewOptionKey = myOptionStorage.size();
|
||||
|
||||
myOptionStorage.push_back (aNewOption);
|
||||
|
||||
std::vector<std::string>::const_iterator anIt = aNames.begin();
|
||||
for (; anIt != aNames.end(); ++anIt)
|
||||
{
|
||||
myArgumentLists[*anIt] = (Standard_Integer) myArgumentStorage.size() - 1;
|
||||
const std::string aNameInLowerCase = toLowerCase (*anIt);
|
||||
|
||||
myOptionMap[aNameInLowerCase] = aNewOptionKey;
|
||||
}
|
||||
|
||||
return aNewOptionKey;
|
||||
}
|
||||
|
||||
//===============================================================================================
|
||||
//function : Help
|
||||
//purpose :
|
||||
// function : PrintHelp
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
void ViewerTest_CmdParser::Help()
|
||||
void ViewerTest_CmdParser::PrintHelp() const
|
||||
{
|
||||
std::cout << myDescription << std::endl;
|
||||
|
||||
std::vector<ViewerTest_CmdOption>::const_iterator anIt = myArgumentStorage.begin();
|
||||
for (++anIt; anIt != myArgumentStorage.end(); ++anIt)
|
||||
std::vector<CommandOption>::const_iterator anIt = myOptionStorage.begin();
|
||||
for (++anIt; anIt != myOptionStorage.end(); ++anIt)
|
||||
{
|
||||
std::cout << "\n -" << (*anIt).Name << " : " << (*anIt).Description;
|
||||
const CommandOption& aCommandOption = *anIt;
|
||||
std::cout << "\n\t-" << aCommandOption.Name;
|
||||
const OptionAliases& anAliases = aCommandOption.Aliases;
|
||||
if (!anAliases.empty())
|
||||
{
|
||||
std::cout << " (-" << anAliases.front();
|
||||
for (OptionAliases::const_iterator anAliasIterator = anAliases.begin() + 1; anAliasIterator != anAliases.end();
|
||||
++anAliasIterator)
|
||||
{
|
||||
std::cout << ", -" << *anAliasIterator;
|
||||
}
|
||||
std::cout << ")";
|
||||
}
|
||||
std::cout << " : " << aCommandOption.Description;
|
||||
}
|
||||
|
||||
std::cout << std::endl;
|
||||
}
|
||||
|
||||
//===============================================================================================
|
||||
//function : Parse
|
||||
//purpose :
|
||||
// function : Parse
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
void ViewerTest_CmdParser::Parse (Standard_Integer theArgsNb, const char** theArgVec)
|
||||
void ViewerTest_CmdParser::Parse (const Standard_Integer theArgsNb, const char* const* const theArgVec)
|
||||
{
|
||||
Standard_Integer aCurrentOption = 0;
|
||||
|
||||
std::size_t aCurrentUsedOptionIndex = 0;
|
||||
for (Standard_Integer anIter = 1; anIter < theArgsNb; ++anIter)
|
||||
{
|
||||
if (theArgVec[anIter][0] == '-' && !std::isdigit (theArgVec[anIter][1]))
|
||||
const char* const anArgument = theArgVec[anIter];
|
||||
if (anArgument[0] == '-' && !std::isdigit (anArgument[1]))
|
||||
{
|
||||
std::string anOptionName (&theArgVec[anIter][1]);
|
||||
std::transform (anOptionName.begin(), anOptionName.end(), anOptionName.begin(), ::LowerCase);
|
||||
|
||||
std::map<std::string, Standard_Integer>::iterator aMapIter = myArgumentLists.find (anOptionName);
|
||||
if (aMapIter != myArgumentLists.end())
|
||||
const std::string anOptionName = toLowerCase (anArgument + 1);
|
||||
OptionMap::iterator aMapIter = myOptionMap.find (anOptionName);
|
||||
if (aMapIter != myOptionMap.end())
|
||||
{
|
||||
aCurrentOption = aMapIter->second;
|
||||
myArgumentStorage[aCurrentOption].IsSet = true;
|
||||
myArgumentStorage[aCurrentOption].Arguments.clear();
|
||||
const ViewerTest_CommandOptionKey aCurrentUsedOptionKey = aMapIter->second;
|
||||
aCurrentUsedOptionIndex = addUsedOption (aCurrentUsedOptionKey);
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cerr << "Error: unknown argument '" << theArgVec[anIter] << "'\n";
|
||||
std::cerr << "Error: unknown argument '" << anOptionName << "'\n";
|
||||
return;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
myArgumentStorage[aCurrentOption].Arguments.push_back (theArgVec[anIter]);
|
||||
if (anIter == 1)
|
||||
{
|
||||
aCurrentUsedOptionIndex = addUsedOption (THE_UNNAMED_COMMAND_OPTION_KEY);
|
||||
}
|
||||
myOptionArgumentStorage[aCurrentUsedOptionIndex].push_back (anArgument);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//===============================================================================================
|
||||
//function : HasOption
|
||||
//purpose :
|
||||
// function : GetOptionNameByKey
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
Standard_Boolean ViewerTest_CmdParser::HasOption (const std::string& theOptionName, Standard_Integer theMandatoryArgsNb /*= 0*/, Standard_Boolean isFatal /*= Standard_False*/)
|
||||
std::string ViewerTest_CmdParser::GetOptionNameByKey (const ViewerTest_CommandOptionKey theOptionKey) const
|
||||
{
|
||||
std::string aLowerName = theOptionName;
|
||||
std::transform (aLowerName.begin(), aLowerName.end(), aLowerName.begin(), ::LowerCase);
|
||||
|
||||
Standard_Boolean aResult = Standard_False;
|
||||
std::map<std::string, Standard_Integer>::iterator aMapIter = myArgumentLists.find (aLowerName);
|
||||
if (aMapIter != myArgumentLists.end())
|
||||
if (theOptionKey == THE_UNNAMED_COMMAND_OPTION_KEY)
|
||||
{
|
||||
Standard_Integer anOption = aMapIter->second;
|
||||
aResult = myArgumentStorage[anOption].Arguments.size() >= static_cast<size_t> (theMandatoryArgsNb);
|
||||
if (isFatal && !aResult && myArgumentStorage[anOption].IsSet)
|
||||
{
|
||||
std::cerr << "Error: wrong syntax at argument '" << theOptionName << "'\n";
|
||||
}
|
||||
|
||||
aResult &= myArgumentStorage[anOption].IsSet;
|
||||
return "Unnamed";
|
||||
}
|
||||
return myOptionStorage[theOptionKey].Name;
|
||||
}
|
||||
|
||||
//===============================================================================================
|
||||
// function : GetUsedOptions
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
ViewerTest_CommandOptionKeySet ViewerTest_CmdParser::GetUsedOptions() const
|
||||
{
|
||||
ViewerTest_CommandOptionKeySet aUsedOptions;
|
||||
for (UsedOptionMap::const_iterator aUsedOptionMapIterator = myUsedOptionMap.begin();
|
||||
aUsedOptionMapIterator != myUsedOptionMap.end();
|
||||
++aUsedOptionMapIterator)
|
||||
{
|
||||
aUsedOptions.insert (aUsedOptionMapIterator->first);
|
||||
}
|
||||
return aUsedOptions;
|
||||
}
|
||||
|
||||
//===============================================================================================
|
||||
// function : HasNoOption
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
bool ViewerTest_CmdParser::HasNoOption() const
|
||||
{
|
||||
return myUsedOptionMap.empty();
|
||||
}
|
||||
|
||||
//===============================================================================================
|
||||
// function : HasUnnamedOption
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
bool ViewerTest_CmdParser::HasUnnamedOption() const
|
||||
{
|
||||
return myUsedOptionMap.find (THE_UNNAMED_COMMAND_OPTION_KEY) != myUsedOptionMap.end();
|
||||
}
|
||||
|
||||
//===============================================================================================
|
||||
// function : HasNoUnnamedOption
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
bool ViewerTest_CmdParser::HasOnlyUnnamedOption() const
|
||||
{
|
||||
return HasUnnamedOption() && (myUsedOptionMap.size() == 1);
|
||||
}
|
||||
|
||||
//===============================================================================================
|
||||
// function : HasOption
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
bool ViewerTest_CmdParser::HasOption (const std::string& theOptionName,
|
||||
const std::size_t theMandatoryArgsNb /* = 0 */,
|
||||
const bool isFatal /* = false */) const
|
||||
{
|
||||
ViewerTest_CommandOptionKey anOptionKey;
|
||||
if (!findOptionKey (theOptionName, anOptionKey))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return HasOption (anOptionKey, theMandatoryArgsNb, isFatal);
|
||||
}
|
||||
|
||||
//===============================================================================================
|
||||
// function : HasOption
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
bool ViewerTest_CmdParser::HasOption (const ViewerTest_CommandOptionKey theOptionKey,
|
||||
const std::size_t theMandatoryArgsNb /* = 0 */,
|
||||
const bool isFatal /* = false */) const
|
||||
{
|
||||
std::size_t aUsedOptionIndex = 0;
|
||||
if (!findUsedOptionIndex (theOptionKey, aUsedOptionIndex))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
const OptionArguments& anOptionArguments = myOptionArgumentStorage[aUsedOptionIndex];
|
||||
const bool aResult = (anOptionArguments.size() >= theMandatoryArgsNb);
|
||||
if (isFatal && !aResult)
|
||||
{
|
||||
std::cerr << "Error: wrong syntax at option '" << myOptionStorage[theOptionKey].Name << "'\n"
|
||||
<< "At least " << theMandatoryArgsNb << "expected, but only " << anOptionArguments.size()
|
||||
<< "provided.\n";
|
||||
}
|
||||
return aResult;
|
||||
}
|
||||
|
||||
//===============================================================================================
|
||||
//function : Arg
|
||||
//purpose :
|
||||
// function : GetNumberOfOptionArguments
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
std::string ViewerTest_CmdParser::Arg (const std::string& theOptionName, Standard_Integer theArgumentIndex)
|
||||
Standard_Integer ViewerTest_CmdParser::GetNumberOfOptionArguments (const std::string& theOptionName) const
|
||||
{
|
||||
std::string aLowerName = theOptionName;
|
||||
std::transform (aLowerName.begin(), aLowerName.end(), aLowerName.begin(), ::LowerCase);
|
||||
|
||||
std::map<std::string, Standard_Integer>::iterator aMapIter = myArgumentLists.find (aLowerName);
|
||||
if (aMapIter != myArgumentLists.end())
|
||||
ViewerTest_CommandOptionKey anOptionKey = THE_UNNAMED_COMMAND_OPTION_KEY;
|
||||
if (!findOptionKey (theOptionName, anOptionKey))
|
||||
{
|
||||
Standard_Integer anOption = aMapIter->second;
|
||||
if (myArgumentStorage[anOption].Arguments.size() > static_cast<size_t> (theArgumentIndex))
|
||||
{
|
||||
return myArgumentStorage[anOption].Arguments[theArgumentIndex];
|
||||
}
|
||||
else
|
||||
{
|
||||
std::cerr << "Error: wrong syntax at argument '" << aLowerName << "'\n";
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
return "";
|
||||
return GetNumberOfOptionArguments (anOptionKey);
|
||||
}
|
||||
|
||||
//===============================================================================================
|
||||
//function : ArgVec3f
|
||||
//purpose :
|
||||
// function : GetNumberOfOptionArguments
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
Graphic3d_Vec3 ViewerTest_CmdParser::ArgVec3f (const std::string& theOptionName, Standard_Integer theArgumentIndex)
|
||||
Standard_Integer ViewerTest_CmdParser::GetNumberOfOptionArguments (const ViewerTest_CommandOptionKey theOptionKey) const
|
||||
{
|
||||
return Graphic3d_Vec3 (static_cast<Standard_ShortReal> (Draw::Atof (Arg (theOptionName, theArgumentIndex ).c_str())),
|
||||
static_cast<Standard_ShortReal> (Draw::Atof (Arg (theOptionName, theArgumentIndex + 1).c_str())),
|
||||
static_cast<Standard_ShortReal> (Draw::Atof (Arg (theOptionName, theArgumentIndex + 2).c_str())));
|
||||
std::size_t aUsedOptionIndex = 0;
|
||||
if (!findUsedOptionIndex (theOptionKey, aUsedOptionIndex))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return static_cast<Standard_Integer> (myOptionArgumentStorage[aUsedOptionIndex].size());
|
||||
}
|
||||
|
||||
//===============================================================================================
|
||||
//function : ArgVec3d
|
||||
//purpose :
|
||||
// function : Arg
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
Graphic3d_Vec3d ViewerTest_CmdParser::ArgVec3d (const std::string& theOptionName, Standard_Integer theArgumentIndex)
|
||||
bool ViewerTest_CmdParser::Arg (const std::string& theOptionName,
|
||||
const Standard_Integer theArgumentIndex,
|
||||
std::string& theOptionArgument) const
|
||||
{
|
||||
return Graphic3d_Vec3d ( Draw::Atof (Arg (theOptionName, theArgumentIndex ).c_str()),
|
||||
Draw::Atof (Arg (theOptionName, theArgumentIndex + 1).c_str()),
|
||||
Draw::Atof (Arg (theOptionName, theArgumentIndex + 2).c_str()));
|
||||
Standard_ASSERT_RETURN (theArgumentIndex >= 0,
|
||||
__FUNCTION__ ": 'theArgumentIndex' must be greater than or equal to zero.",
|
||||
false);
|
||||
ViewerTest_CommandOptionKey anOptionKey = THE_UNNAMED_COMMAND_OPTION_KEY;
|
||||
if (!theOptionName.empty() && !findOptionKey (theOptionName, anOptionKey))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return Arg (anOptionKey, theArgumentIndex, theOptionArgument);
|
||||
}
|
||||
|
||||
//===============================================================================================
|
||||
//function : ArgVec
|
||||
//purpose :
|
||||
// function : Arg
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
gp_Vec ViewerTest_CmdParser::ArgVec (const std::string& theOptionName, Standard_Integer theArgumentIndex)
|
||||
bool ViewerTest_CmdParser::Arg (const ViewerTest_CommandOptionKey theOptionKey,
|
||||
const Standard_Integer theArgumentIndex,
|
||||
std::string& theOptionArgument) const
|
||||
{
|
||||
return gp_Vec ( Draw::Atof (Arg (theOptionName, theArgumentIndex ).c_str()),
|
||||
Draw::Atof (Arg (theOptionName, theArgumentIndex + 1).c_str()),
|
||||
Draw::Atof (Arg (theOptionName, theArgumentIndex + 2).c_str()));
|
||||
Standard_ASSERT_RETURN (theArgumentIndex >= 0,
|
||||
__FUNCTION__ ": 'theArgumentIndex' must be greater than or equal to zero.",
|
||||
false);
|
||||
std::size_t aUsedOptionIndex = 0;
|
||||
if (!findUsedOptionIndex (theOptionKey, aUsedOptionIndex))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
const OptionArguments& anOptionArguments = myOptionArgumentStorage[aUsedOptionIndex];
|
||||
if (static_cast<std::size_t> (theArgumentIndex) >= anOptionArguments.size())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
theOptionArgument = anOptionArguments[theArgumentIndex];
|
||||
return true;
|
||||
}
|
||||
|
||||
//===============================================================================================
|
||||
//function : ArgPnt
|
||||
//purpose :
|
||||
// function : Arg
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
gp_Pnt ViewerTest_CmdParser::ArgPnt (const std::string& theOptionName, Standard_Integer theArgumentIndex)
|
||||
std::string ViewerTest_CmdParser::Arg (const std::string& theOptionName, const Standard_Integer theArgumentIndex) const
|
||||
{
|
||||
return gp_Pnt ( Draw::Atof (Arg (theOptionName, theArgumentIndex ).c_str()),
|
||||
Draw::Atof (Arg (theOptionName, theArgumentIndex + 1).c_str()),
|
||||
Draw::Atof (Arg (theOptionName, theArgumentIndex + 2).c_str()));
|
||||
Standard_ASSERT_RETURN (theArgumentIndex >= 0,
|
||||
__FUNCTION__ ": 'theArgumentIndex' must be greater than or equal to zero.",
|
||||
std::string());
|
||||
std::string anOptionArgument;
|
||||
if (!Arg (theOptionName, theArgumentIndex, anOptionArgument))
|
||||
{
|
||||
return std::string();
|
||||
}
|
||||
return anOptionArgument;
|
||||
}
|
||||
|
||||
//===============================================================================================
|
||||
//function : ArgDouble
|
||||
//purpose :
|
||||
// function : Arg
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
Standard_Real ViewerTest_CmdParser::ArgDouble (const std::string& theOptionName, Standard_Integer theArgumentIndex)
|
||||
std::string ViewerTest_CmdParser::Arg (const ViewerTest_CommandOptionKey theOptionKey,
|
||||
const Standard_Integer theArgumentIndex) const
|
||||
{
|
||||
std::string anOptionArgument;
|
||||
if (!Arg (theOptionKey, theArgumentIndex, anOptionArgument))
|
||||
{
|
||||
return std::string();
|
||||
}
|
||||
return anOptionArgument;
|
||||
}
|
||||
|
||||
//===============================================================================================
|
||||
// function : ArgVec3f
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
Graphic3d_Vec3 ViewerTest_CmdParser::ArgVec3f (const std::string& theOptionName,
|
||||
Standard_Integer theArgumentIndex) const
|
||||
{
|
||||
return Graphic3d_Vec3 (
|
||||
static_cast<Standard_ShortReal> (Draw::Atof (Arg (theOptionName, theArgumentIndex).c_str())),
|
||||
static_cast<Standard_ShortReal> (Draw::Atof (Arg (theOptionName, theArgumentIndex + 1).c_str())),
|
||||
static_cast<Standard_ShortReal> (Draw::Atof (Arg (theOptionName, theArgumentIndex + 2).c_str())));
|
||||
}
|
||||
|
||||
//===============================================================================================
|
||||
// function : ArgVec3d
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
Graphic3d_Vec3d ViewerTest_CmdParser::ArgVec3d (const std::string& theOptionName,
|
||||
Standard_Integer theArgumentIndex) const
|
||||
{
|
||||
return Graphic3d_Vec3d (Draw::Atof (Arg (theOptionName, theArgumentIndex).c_str()),
|
||||
Draw::Atof (Arg (theOptionName, theArgumentIndex + 1).c_str()),
|
||||
Draw::Atof (Arg (theOptionName, theArgumentIndex + 2).c_str()));
|
||||
}
|
||||
|
||||
//===============================================================================================
|
||||
// function : ArgVec
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
gp_Vec ViewerTest_CmdParser::ArgVec (const std::string& theOptionName, Standard_Integer theArgumentIndex) const
|
||||
{
|
||||
return gp_Vec (Draw::Atof (Arg (theOptionName, theArgumentIndex).c_str()),
|
||||
Draw::Atof (Arg (theOptionName, theArgumentIndex + 1).c_str()),
|
||||
Draw::Atof (Arg (theOptionName, theArgumentIndex + 2).c_str()));
|
||||
}
|
||||
|
||||
//===============================================================================================
|
||||
// function : ArgPnt
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
gp_Pnt ViewerTest_CmdParser::ArgPnt (const std::string& theOptionName, Standard_Integer theArgumentIndex) const
|
||||
{
|
||||
return gp_Pnt (Draw::Atof (Arg (theOptionName, theArgumentIndex).c_str()),
|
||||
Draw::Atof (Arg (theOptionName, theArgumentIndex + 1).c_str()),
|
||||
Draw::Atof (Arg (theOptionName, theArgumentIndex + 2).c_str()));
|
||||
}
|
||||
|
||||
//===============================================================================================
|
||||
// function : ArgDouble
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
Standard_Real ViewerTest_CmdParser::ArgDouble (const std::string& theOptionName,
|
||||
Standard_Integer theArgumentIndex) const
|
||||
{
|
||||
return Draw::Atof (Arg (theOptionName, theArgumentIndex).c_str());
|
||||
}
|
||||
|
||||
//===============================================================================================
|
||||
//function : ArgFloat
|
||||
//purpose :
|
||||
// function : ArgFloat
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
Standard_ShortReal ViewerTest_CmdParser::ArgFloat (const std::string& theOptionName, Standard_Integer theArgumentIndex)
|
||||
Standard_ShortReal ViewerTest_CmdParser::ArgFloat (const std::string& theOptionName,
|
||||
Standard_Integer theArgumentIndex) const
|
||||
{
|
||||
return static_cast<Standard_ShortReal> (Draw::Atof (Arg (theOptionName, theArgumentIndex).c_str()));
|
||||
}
|
||||
|
||||
//===============================================================================================
|
||||
//function : ArgInt
|
||||
//purpose :
|
||||
// function : ArgInt
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
Standard_Integer ViewerTest_CmdParser::ArgInt (const std::string& theOptionName, const Standard_Integer theArgumentIndex)
|
||||
Standard_Integer ViewerTest_CmdParser::ArgInt (const std::string& theOptionName,
|
||||
const Standard_Integer theArgumentIndex) const
|
||||
{
|
||||
return static_cast<Standard_Integer> (Draw::Atoi (Arg (theOptionName, theArgumentIndex).c_str()));
|
||||
}
|
||||
|
||||
//===============================================================================================
|
||||
//function : ArgBool
|
||||
//purpose :
|
||||
// function : ArgBool
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
Standard_Boolean ViewerTest_CmdParser::ArgBool (const std::string& theOptionName, const Standard_Integer theArgumentIndex)
|
||||
bool ViewerTest_CmdParser::ArgBool (const std::string& theOptionName, const Standard_Integer theArgumentIndex) const
|
||||
{
|
||||
return Draw::Atoi (Arg (theOptionName, theArgumentIndex).c_str()) != 0;
|
||||
}
|
||||
|
||||
//===============================================================================================
|
||||
// function : ArgColor
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
template <typename TheColor>
|
||||
bool ViewerTest_CmdParser::ArgColor (const std::string& theOptionName,
|
||||
Standard_Integer& theArgumentIndex,
|
||||
TheColor& theColor) const
|
||||
{
|
||||
ViewerTest_CommandOptionKey anOptionKey;
|
||||
if (!findOptionKey (theOptionName, anOptionKey))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return ArgColor (anOptionKey, theArgumentIndex, theColor);
|
||||
}
|
||||
|
||||
//! ViewerTest_CmdParser::ArgColor() explicit template instantiation definitions
|
||||
template bool ViewerTest_CmdParser::ArgColor (const std::string& theOptionName,
|
||||
Standard_Integer& theArgumentIndex,
|
||||
Quantity_Color& theColor) const;
|
||||
|
||||
template bool ViewerTest_CmdParser::ArgColor (const std::string& theOptionName,
|
||||
Standard_Integer& theArgumentIndex,
|
||||
Quantity_ColorRGBA& theColor) const;
|
||||
|
||||
//===============================================================================================
|
||||
// function : ArgColor
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
template <typename TheColor>
|
||||
bool ViewerTest_CmdParser::ArgColor (const ViewerTest_CommandOptionKey theOptionKey,
|
||||
Standard_Integer& theArgumentIndex,
|
||||
TheColor& theColor) const
|
||||
{
|
||||
std::size_t aUsedOptionIndex = 0;
|
||||
if (!findUsedOptionIndex (theOptionKey, aUsedOptionIndex))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
const RawStringArguments aRawStringArguments = getRawStringArguments (aUsedOptionIndex);
|
||||
const Standard_Integer aNumberOfArguments = static_cast<Standard_Integer> (aRawStringArguments.size());
|
||||
Standard_ASSERT_RETURN (theArgumentIndex < aNumberOfArguments,
|
||||
__FUNCTION__ ": 'theArgumentIndex' must be less than the number of command-line arguments "
|
||||
"passed with the option which access key is 'theOptionKey'.",
|
||||
false);
|
||||
const Standard_Integer aNumberOfAvailableArguments = aNumberOfArguments - theArgumentIndex;
|
||||
TheColor aColor;
|
||||
const Standard_Integer aNumberOfParsedArguments = ViewerTest::ParseColor (aNumberOfAvailableArguments,
|
||||
&aRawStringArguments[theArgumentIndex],
|
||||
aColor);
|
||||
if (aNumberOfParsedArguments == 0)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
theArgumentIndex += aNumberOfParsedArguments;
|
||||
theColor = aColor;
|
||||
return true;
|
||||
}
|
||||
|
||||
//! ViewerTest_CmdParser::ArgColor() explicit template instantiation definitions
|
||||
template bool ViewerTest_CmdParser::ArgColor (ViewerTest_CommandOptionKey theOptionKey,
|
||||
Standard_Integer& theArgumentIndex,
|
||||
Quantity_Color& theColor) const;
|
||||
|
||||
template bool ViewerTest_CmdParser::ArgColor (ViewerTest_CommandOptionKey theOptionKey,
|
||||
Standard_Integer& theArgumentIndex,
|
||||
Quantity_ColorRGBA& theColor) const;
|
||||
|
||||
//===============================================================================================
|
||||
// function : findUsedOptionKey
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
bool ViewerTest_CmdParser::findOptionKey (const std::string& theOptionName,
|
||||
ViewerTest_CommandOptionKey& theOptionKey) const
|
||||
{
|
||||
const std::string anOptionNameInLowercase = toLowerCase (theOptionName);
|
||||
const OptionMap::const_iterator aMapIter = myOptionMap.find (anOptionNameInLowercase);
|
||||
if (aMapIter == myOptionMap.end())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
theOptionKey = aMapIter->second;
|
||||
return true;
|
||||
}
|
||||
|
||||
//===============================================================================================
|
||||
// function : findUsedOptionKey
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
bool ViewerTest_CmdParser::findUsedOptionIndex (const ViewerTest_CommandOptionKey theOptionKey,
|
||||
std::size_t& theUsedOptionIndex) const
|
||||
{
|
||||
const UsedOptionMap::const_iterator aUsedOptionIterator = myUsedOptionMap.find (theOptionKey);
|
||||
if (aUsedOptionIterator == myUsedOptionMap.end())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
theUsedOptionIndex = aUsedOptionIterator->second;
|
||||
return true;
|
||||
}
|
||||
|
||||
//===============================================================================================
|
||||
// function : findUsedOptionIndex
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
bool ViewerTest_CmdParser::findUsedOptionIndex (const std::string& theOptionName, std::size_t& theUsedOptionIndex) const
|
||||
{
|
||||
ViewerTest_CommandOptionKey anOptionKey = THE_UNNAMED_COMMAND_OPTION_KEY;
|
||||
if (!findOptionKey (theOptionName, anOptionKey))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
std::size_t aUsedOptionIndex = 0;
|
||||
if (!findUsedOptionIndex (anOptionKey, aUsedOptionIndex))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
theUsedOptionIndex = aUsedOptionIndex;
|
||||
return true;
|
||||
}
|
||||
|
||||
//===============================================================================================
|
||||
// function : addUsedOption
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
std::size_t ViewerTest_CmdParser::addUsedOption (const ViewerTest_CommandOptionKey theNewUsedOptionKey)
|
||||
{
|
||||
const std::size_t aNewUsedOptionIndex = myOptionArgumentStorage.size();
|
||||
myOptionArgumentStorage.push_back (OptionArguments());
|
||||
myUsedOptionMap[theNewUsedOptionKey] = aNewUsedOptionIndex;
|
||||
return aNewUsedOptionIndex;
|
||||
}
|
||||
|
||||
//===============================================================================================
|
||||
// function : getRawStringArguments
|
||||
// purpose :
|
||||
//===============================================================================================
|
||||
ViewerTest_CmdParser::RawStringArguments ViewerTest_CmdParser::getRawStringArguments (
|
||||
const std::size_t theUsedOptionIndex) const
|
||||
{
|
||||
Standard_ASSERT_RETURN (
|
||||
theUsedOptionIndex < myOptionArgumentStorage.size(),
|
||||
__FUNCTION__ ": 'theUsedOptionIndex' must be less than the size of 'myOptionArgumentStorage'.",
|
||||
RawStringArguments());
|
||||
const OptionArguments& anOptionArguments = myOptionArgumentStorage[theUsedOptionIndex];
|
||||
return convertToRawStringList (anOptionArguments);
|
||||
}
|
||||
|
@ -16,93 +16,257 @@
|
||||
#ifndef _ViewerTest_CmdParser_HeaderFile
|
||||
#define _ViewerTest_CmdParser_HeaderFile
|
||||
|
||||
#include <Graphic3d_Vec3.hxx>
|
||||
|
||||
#include <limits>
|
||||
#include <map>
|
||||
#include <vector>
|
||||
#include <set>
|
||||
#include <string>
|
||||
#include <algorithm>
|
||||
|
||||
#include <Standard.hxx>
|
||||
#include <Graphic3d_Vec.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
class Quantity_Color;
|
||||
class Quantity_ColorRGBA;
|
||||
class gp_Vec;
|
||||
class gp_Pnt;
|
||||
|
||||
//! A key for a command line option used for a ViewerTest_CmdParser work
|
||||
typedef std::size_t ViewerTest_CommandOptionKey;
|
||||
|
||||
//! A set of keys for command-line options
|
||||
typedef std::set<ViewerTest_CommandOptionKey> ViewerTest_CommandOptionKeySet;
|
||||
|
||||
//! Command parser.
|
||||
class ViewerTest_CmdParser
|
||||
{
|
||||
public:
|
||||
//! The key of the unnamed command option
|
||||
static const std::size_t THE_UNNAMED_COMMAND_OPTION_KEY;
|
||||
|
||||
//! Initializes default option.
|
||||
ViewerTest_CmdParser();
|
||||
//! The key of the help command option
|
||||
static const std::size_t THE_HELP_COMMAND_OPTION_KEY;
|
||||
|
||||
//! Initializes help option.
|
||||
//! @param theDescription the description of the command
|
||||
ViewerTest_CmdParser (const std::string& theDescription = std::string());
|
||||
|
||||
//! Sets description for command.
|
||||
void AddDescription (const std::string& theDescription)
|
||||
void SetDescription (const std::string& theDescription)
|
||||
{
|
||||
myDescription = theDescription;
|
||||
}
|
||||
|
||||
//! Adds option to available option list. Several names may be provided if separated with '|'.
|
||||
void AddOption (const std::string& theOptionNames, const std::string& theOptionDescription = "");
|
||||
//! @param theOptionNames the list of possible option names separated with '|'
|
||||
//! (the first name is main, the other names are aliases)
|
||||
//! @param theOptionDescription the description of the option
|
||||
//! @return an access key of the newly added option
|
||||
ViewerTest_CommandOptionKey AddOption (const std::string& theOptionNames,
|
||||
const std::string& theOptionDescription = std::string());
|
||||
|
||||
//! Prints help message based on provided command and options descriptions.
|
||||
void Help();
|
||||
void PrintHelp() const;
|
||||
|
||||
//! Parses argument list; assignes local arguments to each option.
|
||||
void Parse (Standard_Integer theArgsNb,
|
||||
const char** theArgVec);
|
||||
//! Parses argument list (skips the command name); assigns local arguments to each option.
|
||||
void Parse (Standard_Integer theArgsNb, const char* const* theArgVec);
|
||||
|
||||
//! Checks if option was set with given minimal argument number.
|
||||
//! Gets an option name by its access key
|
||||
//! @param theOptionKey the access key of the option which name is to be found
|
||||
//! @retuan a name of the option with the given access key
|
||||
std::string GetOptionNameByKey (ViewerTest_CommandOptionKey theOptionKey) const;
|
||||
|
||||
//! Gets a set of used options
|
||||
//! @return a set of used options
|
||||
ViewerTest_CommandOptionKeySet GetUsedOptions() const;
|
||||
|
||||
//! Tests if there were no command line options provided
|
||||
//! @return true if no command line options were provided, or false otherwise
|
||||
bool HasNoOption() const;
|
||||
|
||||
//! Tests if the unnamed command line option was provided
|
||||
//! @return true if the unnamed command line option was provided, or false otherwise
|
||||
bool HasUnnamedOption() const;
|
||||
|
||||
//! Tests if only unnamed command line option was provided
|
||||
//! @return true if only unnamed command line option was provided, or false otherwise
|
||||
bool HasOnlyUnnamedOption() const;
|
||||
|
||||
//! Checks if option was used with given minimal number of arguments.
|
||||
//! Prints error message if isFatal flag was set.
|
||||
Standard_Boolean HasOption (const std::string& theOptionName,
|
||||
Standard_Integer theMandatoryArgsNb = 0,
|
||||
Standard_Boolean isFatal = Standard_False);
|
||||
//! @param theOptionName the name of the option to be checked
|
||||
//! @param theMandatoryArgsNb the number of mandatory arguments
|
||||
//! @param isFatal the flag that controls printing of an error message
|
||||
//! @return true if an option was set, or false otherwise
|
||||
bool HasOption (const std::string& theOptionName,
|
||||
std::size_t theMandatoryArgsNb = 0,
|
||||
bool isFatal = Standard_False) const;
|
||||
|
||||
//! Checks if option was used with given minimal number of arguments.
|
||||
//! Prints error message if isFatal flag was set.
|
||||
//! @param theOptionKey the access key of the option to be checked
|
||||
//! @param theMandatoryArgsNb the number of mandatory arguments
|
||||
//! @param isFatal the flag that controls printing of an error message
|
||||
//! @return true if an option was set, or false otherwise
|
||||
bool HasOption (ViewerTest_CommandOptionKey theOptionKey,
|
||||
std::size_t theMandatoryArgsNb = 0,
|
||||
bool isFatal = Standard_False) const;
|
||||
|
||||
//! Gets a number of option arguments
|
||||
//! @param theOptionName the name of the option
|
||||
//! @return a number of option arguments, or 0 if option was not used
|
||||
Standard_Integer GetNumberOfOptionArguments (const std::string& theOptionName) const;
|
||||
|
||||
//! Gets a number of option arguments
|
||||
//! @param theOptionKey the access key of the option
|
||||
//! @return a number of option arguments, or 0 if option was not used
|
||||
Standard_Integer GetNumberOfOptionArguments (ViewerTest_CommandOptionKey theOptionKey) const;
|
||||
|
||||
//! Accesses local argument of option 'theOptionName' with index 'theArgumentIndex'.
|
||||
std::string Arg (const std::string& theOptionName, Standard_Integer theArgumentIndex);
|
||||
//! @param theOptionName the name of the option which argument is to be accessed
|
||||
//! @param theArgumentIndex the index of an accessed argument
|
||||
//! @param theOptionArgument an argument of the option with the given name
|
||||
//! @return true if an access was successful, or false otherwise
|
||||
bool Arg (const std::string& theOptionName, Standard_Integer theArgumentIndex, std::string& theOptionArgument) const;
|
||||
|
||||
//! Accesses a local argument with the index 'theArgumentIndex' of the option with the key 'theOptionKey'.
|
||||
//! @param theOptionKey the access key of the option which argument is to be accessed
|
||||
//! @param theArgumentIndex the index of an accessed argument
|
||||
//! @param theOptionArgument an argument of the option with the given key
|
||||
//! @return true if an access was successful, or false otherwise
|
||||
bool Arg (ViewerTest_CommandOptionKey theOptionKey,
|
||||
Standard_Integer theArgumentIndex,
|
||||
std::string& theOptionArgument) const;
|
||||
|
||||
//! Accesses local argument of option 'theOptionName' with index 'theArgumentIndex'.
|
||||
//! @param theOptionName the name of the option which argument is to be accessed
|
||||
//! @param theArgumentIndex the index of an accessed argument
|
||||
//! @return an argument of the option with the given name
|
||||
std::string Arg (const std::string& theOptionName, Standard_Integer theArgumentIndex) const;
|
||||
|
||||
//! Accesses a local argument with the index 'theArgumentIndex' of the option with the key 'theOptionKey'.
|
||||
//! @param theOptionKey the access key of the option which argument is to be accessed
|
||||
//! @param theArgumentIndex the index of an accessed argument
|
||||
//! @return an argument of the option with the given key
|
||||
std::string Arg (ViewerTest_CommandOptionKey theOptionKey, Standard_Integer theArgumentIndex) const;
|
||||
|
||||
// Interprets arguments of option 'theOptionName' as float vector starting with index 'theArgumentIndex'.
|
||||
Graphic3d_Vec3 ArgVec3f (const std::string& theOptionName, const Standard_Integer theArgumentIndex = 0);
|
||||
Graphic3d_Vec3 ArgVec3f (const std::string& theOptionName, const Standard_Integer theArgumentIndex = 0) const;
|
||||
|
||||
// Interprets arguments of option 'theOptionName' as double vector starting with index 'theArgumentIndex'.
|
||||
Graphic3d_Vec3d ArgVec3d (const std::string& theOptionName, const Standard_Integer theArgumentIndex = 0);
|
||||
Graphic3d_Vec3d ArgVec3d (const std::string& theOptionName, const Standard_Integer theArgumentIndex = 0) const;
|
||||
|
||||
// Interprets arguments of option 'theOptionName' as gp vector starting with index 'theArgumentIndex'.
|
||||
gp_Vec ArgVec (const std::string& theOptionName, const Standard_Integer theArgumentIndex = 0);
|
||||
gp_Vec ArgVec (const std::string& theOptionName, const Standard_Integer theArgumentIndex = 0) const;
|
||||
|
||||
// Interprets arguments of option 'theOptionName' as gp vector starting with index 'theArgumentIndex'.
|
||||
gp_Pnt ArgPnt (const std::string& theOptionName, const Standard_Integer theArgumentIndex = 0);
|
||||
gp_Pnt ArgPnt (const std::string& theOptionName, const Standard_Integer theArgumentIndex = 0) const;
|
||||
|
||||
// Interprets arguments of option 'theOptionName' as double at index 'theArgumentIndex'.
|
||||
Standard_Real ArgDouble (const std::string& theOptionName, const Standard_Integer theArgumentIndex = 0);
|
||||
Standard_Real ArgDouble (const std::string& theOptionName, const Standard_Integer theArgumentIndex = 0) const;
|
||||
|
||||
// Interprets arguments of option 'theOptionName' as float at index 'theArgumentIndex'.
|
||||
Standard_ShortReal ArgFloat (const std::string& theOptionName, const Standard_Integer theArgumentIndex = 0);
|
||||
Standard_ShortReal ArgFloat (const std::string& theOptionName, const Standard_Integer theArgumentIndex = 0) const;
|
||||
|
||||
// Interprets arguments of option 'theOptionName' as integer at index 'theArgumentIndex'.
|
||||
Standard_Integer ArgInt (const std::string& theOptionName, const Standard_Integer theArgumentIndex = 0);
|
||||
Standard_Integer ArgInt (const std::string& theOptionName, const Standard_Integer theArgumentIndex = 0) const;
|
||||
|
||||
// Interprets arguments of option 'theOptionName' as boolean at index 'theArgumentIndex'.
|
||||
Standard_Boolean ArgBool (const std::string& theOptionName, const Standard_Integer theArgumentIndex = 0);
|
||||
bool ArgBool (const std::string& theOptionName, const Standard_Integer theArgumentIndex = 0) const;
|
||||
|
||||
//! Interprets arguments of the option 'theOptionName' with the index 'theArgumentIndex' as an RGB(A) color object.
|
||||
//! @tparam theColor the type of a resulting RGB(A) color object
|
||||
//! @param theOptionName the name of the option which arguments are to be interpreted
|
||||
//! @param theArgumentIndex the index of the first argument to be interpreted
|
||||
//! (will be promoted to the next argument after the block of interpreted arguments)
|
||||
//! @param theColor a color that is an interpretation of argument(s) of the option with the given name
|
||||
//! @return true if an interpretation was successful, or false otherwise
|
||||
template <typename TheColor>
|
||||
bool ArgColor (const std::string& theOptionName, Standard_Integer& theArgumentIndex, TheColor& theColor) const;
|
||||
|
||||
//! Interprets arguments of the option with the key 'theOptionKey' as an RGB(A) color object.
|
||||
//! @tparam theColor the type of a resulting RGB(A) color object
|
||||
//! @param theOptionKey the access key of the option which arguments are to be interpreted
|
||||
//! @param theArgumentIndex the index of the first argument to be interpreted
|
||||
//! (will be promoted to the next argument after the block of interpreted arguments)
|
||||
//! @param theColor a color that is an interpretation of argument(s) of the option with the given name
|
||||
//! @return true if an interpretation was successful, or false otherwise
|
||||
template <typename TheColor>
|
||||
bool ArgColor (ViewerTest_CommandOptionKey theOptionKey,
|
||||
Standard_Integer& theArgumentIndex,
|
||||
TheColor& theColor) const;
|
||||
|
||||
private:
|
||||
//! A list of aliases to a command option name
|
||||
typedef std::vector<std::string> OptionAliases;
|
||||
|
||||
//! Object representing option state.
|
||||
struct ViewerTest_CmdOption
|
||||
//! A map from all possible option names to option access keys
|
||||
typedef std::map<std::string, ViewerTest_CommandOptionKey> OptionMap;
|
||||
|
||||
//! A map from keys of used options to their indices in the storage
|
||||
typedef std::map<ViewerTest_CommandOptionKey, std::size_t> UsedOptionMap;
|
||||
|
||||
//! A list of command option arguments
|
||||
typedef std::vector<std::string> OptionArguments;
|
||||
|
||||
//! A storage of arguments of different command options
|
||||
typedef std::vector<OptionArguments> OptionArgumentsStorage;
|
||||
|
||||
//! A full description of a command option
|
||||
struct CommandOption
|
||||
{
|
||||
ViewerTest_CmdOption() : IsSet (Standard_False) {}
|
||||
|
||||
std::string Name;
|
||||
std::string Description;
|
||||
Standard_Boolean IsSet;
|
||||
std::vector<std::string> Arguments;
|
||||
std::string Name; //!< A command option name
|
||||
OptionAliases Aliases; //!< A list of aliases to a command option name
|
||||
std::string Description; //!< A text description of a command option
|
||||
};
|
||||
|
||||
// A storage of command options descriptions
|
||||
typedef std::vector<CommandOption> CommandOptionStorage;
|
||||
|
||||
// A list of raw string arguments
|
||||
typedef std::vector<const char*> RawStringArguments;
|
||||
|
||||
//! Description of command.
|
||||
std::string myDescription;
|
||||
|
||||
//! Map from all possible option names to option object indexes in myArgumentStorage.
|
||||
std::map<std::string, Standard_Integer> myArgumentLists;
|
||||
|
||||
//! Container which stores option objects.
|
||||
std::vector<ViewerTest_CmdOption> myArgumentStorage;
|
||||
std::vector<CommandOption> myOptionStorage;
|
||||
|
||||
//! Map from all possible option names to option access keys (that are indices in myOptionStorage)
|
||||
OptionMap myOptionMap;
|
||||
|
||||
//! Map from keys of used options to their indices in the option arguments storage
|
||||
UsedOptionMap myUsedOptionMap;
|
||||
|
||||
//! Container which stores the arguments of all used options
|
||||
OptionArgumentsStorage myOptionArgumentStorage;
|
||||
|
||||
//! Gets an access key of the option
|
||||
//! @param theOptionName the name of the option which key is to be found
|
||||
//! @param theOptionKey an access key of the option with the given name
|
||||
//! @return true if the given option was found, or false otherwise
|
||||
bool findOptionKey (const std::string& theOptionName, ViewerTest_CommandOptionKey& theOptionKey) const;
|
||||
|
||||
//! Gets an index of an option that was used
|
||||
//! @param theOptionKey the access key of the used option which index is to be found
|
||||
//! @param theUsedOptionIndex an index of the used option with the given access key
|
||||
//! @return true if the given option was not found or not used, or false otherwise
|
||||
bool findUsedOptionIndex (ViewerTest_CommandOptionKey theOptionKey, std::size_t& theUsedOptionIndex) const;
|
||||
|
||||
//! Gets an index of an option that was used
|
||||
//! @param theOptionName the name of the used option which index is to be found
|
||||
//! @param theUsedOptionIndex an index of the used option with the given name
|
||||
//! @return true if the given option was not found or not used, or false otherwise
|
||||
bool findUsedOptionIndex (const std::string& theOptionName, std::size_t& theUsedOptionIndex) const;
|
||||
|
||||
//! Adds the option that is used in the passed command line parameters
|
||||
//! @param theNewUsedOptionKey the access key of the adding option
|
||||
//! @return an index of a newly added option
|
||||
std::size_t addUsedOption (ViewerTest_CommandOptionKey theNewUsedOptionKey);
|
||||
|
||||
//! Gets an index of an option that was used
|
||||
//! @param theOptionName the name of the used option which index is to be found
|
||||
//! @param theUsedOptionIndex an index of the used option with the given name
|
||||
//! @return true if the given option was not found or not used, or false otherwise
|
||||
RawStringArguments getRawStringArguments (std::size_t theUsedOptionIndex) const;
|
||||
};
|
||||
|
||||
#endif // _ViewerTest_CmdParser_HeaderFile
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -5,7 +5,7 @@ puts ""
|
||||
|
||||
vinit View1
|
||||
|
||||
vsetbg [locate_data_file OCC1188.gif]
|
||||
vbackground -image [locate_data_file OCC1188.gif]
|
||||
if { [vreadpixel 200 200 rgb name] != "WHITE" } { puts "Error: image background is not set" }
|
||||
|
||||
vdump $imagedir/${casename}.png
|
||||
|
@ -2,40 +2,15 @@ puts "============"
|
||||
puts "OCC21747"
|
||||
puts "============"
|
||||
puts ""
|
||||
#######################################################################
|
||||
# Implementation of gradient background style
|
||||
#
|
||||
# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
|
||||
# R1\G1\B1 - First color [0..255]
|
||||
# R2\G2\B2 - Second color [0..255]
|
||||
# Type 0 to 8
|
||||
# 0 = NONE,
|
||||
# 1 = HORIZONTAL,
|
||||
# 2 = VERTICAL,
|
||||
# 3 = DIAGONAL1,
|
||||
# 4 = DIAGONAL2,
|
||||
# 5 = CORNER1,
|
||||
# 6 = CORNER2,
|
||||
# 7 = CORNER3,
|
||||
# 8 = CORNER4
|
||||
#######################################################################
|
||||
|
||||
set BugNumber OCC21747
|
||||
|
||||
vinit
|
||||
|
||||
set R1 255
|
||||
set G1 0
|
||||
set B1 0
|
||||
set R2 0
|
||||
set G2 0
|
||||
set B2 255
|
||||
set Type 0
|
||||
|
||||
puts "${BugNumber}"
|
||||
puts "Type=NONE, Color from RED to BLUE"
|
||||
puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
|
||||
|
||||
vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
|
||||
vbackground -gradient RED BLUE1 -gradientMode NONE
|
||||
|
||||
checkview -screenshot -3d -path ${imagedir}/${test_image}.png
|
||||
|
@ -2,40 +2,14 @@ puts "============"
|
||||
puts "OCC21747"
|
||||
puts "============"
|
||||
puts ""
|
||||
#######################################################################
|
||||
# Implementation of gradient background style
|
||||
#
|
||||
# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
|
||||
# R1\G1\B1 - First color [0..255]
|
||||
# R2\G2\B2 - Second color [0..255]
|
||||
# Type 0 to 8
|
||||
# 0 = NONE,
|
||||
# 1 = HORIZONTAL,
|
||||
# 2 = VERTICAL,
|
||||
# 3 = DIAGONAL1,
|
||||
# 4 = DIAGONAL2,
|
||||
# 5 = CORNER1,
|
||||
# 6 = CORNER2,
|
||||
# 7 = CORNER3,
|
||||
# 8 = CORNER4
|
||||
#######################################################################
|
||||
|
||||
set BugNumber OCC21747
|
||||
|
||||
vinit
|
||||
|
||||
set R1 255
|
||||
set G1 0
|
||||
set B1 0
|
||||
set R2 0
|
||||
set G2 0
|
||||
set B2 255
|
||||
set Type 5
|
||||
|
||||
puts "${BugNumber}"
|
||||
puts "Type=CORNER1, Color from RED to BLUE, Direction from LEFT TOP CORNER"
|
||||
puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
|
||||
|
||||
vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
|
||||
vbackground -gradient RED BLUE1 -gradientMode CORNER1
|
||||
|
||||
checkview -screenshot -3d -path ${imagedir}/${test_image}.png
|
||||
|
@ -2,40 +2,14 @@ puts "============"
|
||||
puts "OCC21747"
|
||||
puts "============"
|
||||
puts ""
|
||||
#######################################################################
|
||||
# Implementation of gradient background style
|
||||
#
|
||||
# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
|
||||
# R1\G1\B1 - First color [0..255]
|
||||
# R2\G2\B2 - Second color [0..255]
|
||||
# Type 0 to 8
|
||||
# 0 = NONE,
|
||||
# 1 = HORIZONTAL,
|
||||
# 2 = VERTICAL,
|
||||
# 3 = DIAGONAL1,
|
||||
# 4 = DIAGONAL2,
|
||||
# 5 = CORNER1,
|
||||
# 6 = CORNER2,
|
||||
# 7 = CORNER3,
|
||||
# 8 = CORNER4
|
||||
#######################################################################
|
||||
|
||||
set BugNumber OCC21747
|
||||
|
||||
vinit
|
||||
|
||||
set R1 255
|
||||
set G1 0
|
||||
set B1 0
|
||||
set R2 0
|
||||
set G2 0
|
||||
set B2 255
|
||||
set Type 6
|
||||
|
||||
puts "${BugNumber}"
|
||||
puts "Type=CORNER2, Color from RED to BLUE, Direction from RIGHT TOP CORNER"
|
||||
puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
|
||||
|
||||
vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
|
||||
vbackground -gradient RED BLUE1 -gradientMode CORNER2
|
||||
|
||||
checkview -screenshot -3d -path ${imagedir}/${test_image}.png
|
||||
|
@ -2,40 +2,14 @@ puts "============"
|
||||
puts "OCC21747"
|
||||
puts "============"
|
||||
puts ""
|
||||
#######################################################################
|
||||
# Implementation of gradient background style
|
||||
#
|
||||
# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
|
||||
# R1\G1\B1 - First color [0..255]
|
||||
# R2\G2\B2 - Second color [0..255]
|
||||
# Type 0 to 8
|
||||
# 0 = NONE,
|
||||
# 1 = HORIZONTAL,
|
||||
# 2 = VERTICAL,
|
||||
# 3 = DIAGONAL1,
|
||||
# 4 = DIAGONAL2,
|
||||
# 5 = CORNER1,
|
||||
# 6 = CORNER2,
|
||||
# 7 = CORNER3,
|
||||
# 8 = CORNER4
|
||||
#######################################################################
|
||||
|
||||
set BugNumber OCC21747
|
||||
|
||||
vinit
|
||||
|
||||
set R1 255
|
||||
set G1 0
|
||||
set B1 0
|
||||
set R2 0
|
||||
set G2 0
|
||||
set B2 255
|
||||
set Type 7
|
||||
|
||||
puts "${BugNumber}"
|
||||
puts "Type=CORNER3, Color from RED to BLUE, Direction from RIGHT BOTTOM CORNER"
|
||||
puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
|
||||
|
||||
vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
|
||||
vbackground -gradient RED BLUE1 -gradientMode CORNER3
|
||||
|
||||
checkview -screenshot -3d -path ${imagedir}/${test_image}.png
|
||||
|
@ -2,40 +2,14 @@ puts "============"
|
||||
puts "OCC21747"
|
||||
puts "============"
|
||||
puts ""
|
||||
#######################################################################
|
||||
# Implementation of gradient background style
|
||||
#
|
||||
# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
|
||||
# R1\G1\B1 - First color [0..255]
|
||||
# R2\G2\B2 - Second color [0..255]
|
||||
# Type 0 to 8
|
||||
# 0 = NONE,
|
||||
# 1 = HORIZONTAL,
|
||||
# 2 = VERTICAL,
|
||||
# 3 = DIAGONAL1,
|
||||
# 4 = DIAGONAL2,
|
||||
# 5 = CORNER1,
|
||||
# 6 = CORNER2,
|
||||
# 7 = CORNER3,
|
||||
# 8 = CORNER4
|
||||
#######################################################################
|
||||
|
||||
set BugNumber OCC21747
|
||||
|
||||
vinit
|
||||
|
||||
set R1 255
|
||||
set G1 0
|
||||
set B1 0
|
||||
set R2 0
|
||||
set G2 0
|
||||
set B2 255
|
||||
set Type 8
|
||||
|
||||
puts "${BugNumber}"
|
||||
puts "Type=CORNER4, Color from RED to BLUE, Direction from LEFT BOTTOM CORNER"
|
||||
puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
|
||||
|
||||
vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
|
||||
vbackground -gradient RED BLUE1 -gradientMode CORNER4
|
||||
|
||||
checkview -screenshot -3d -path ${imagedir}/${test_image}.png
|
||||
|
@ -2,40 +2,14 @@ puts "============"
|
||||
puts "OCC21747"
|
||||
puts "============"
|
||||
puts ""
|
||||
#######################################################################
|
||||
# Implementation of gradient background style
|
||||
#
|
||||
# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
|
||||
# R1\G1\B1 - First color [0..255]
|
||||
# R2\G2\B2 - Second color [0..255]
|
||||
# Type 0 to 8
|
||||
# 0 = NONE,
|
||||
# 1 = HORIZONTAL,
|
||||
# 2 = VERTICAL,
|
||||
# 3 = DIAGONAL1,
|
||||
# 4 = DIAGONAL2,
|
||||
# 5 = CORNER1,
|
||||
# 6 = CORNER2,
|
||||
# 7 = CORNER3,
|
||||
# 8 = CORNER4
|
||||
#######################################################################
|
||||
|
||||
set BugNumber OCC21747
|
||||
|
||||
vinit
|
||||
|
||||
set R1 0
|
||||
set G1 0
|
||||
set B1 255
|
||||
set R2 255
|
||||
set G2 0
|
||||
set B2 0
|
||||
set Type 5
|
||||
|
||||
puts "${BugNumber}"
|
||||
puts "Type=CORNER1, Color from BLUE to RED, Direction from LEFT TOP CORNER"
|
||||
puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
|
||||
|
||||
vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
|
||||
vbackground -gradient BLUE1 RED -gradientMode CORNER1
|
||||
|
||||
checkview -screenshot -3d -path ${imagedir}/${test_image}.png
|
||||
|
@ -2,40 +2,14 @@ puts "============"
|
||||
puts "OCC21747"
|
||||
puts "============"
|
||||
puts ""
|
||||
#######################################################################
|
||||
# Implementation of gradient background style
|
||||
#
|
||||
# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
|
||||
# R1\G1\B1 - First color [0..255]
|
||||
# R2\G2\B2 - Second color [0..255]
|
||||
# Type 0 to 8
|
||||
# 0 = NONE,
|
||||
# 1 = HORIZONTAL,
|
||||
# 2 = VERTICAL,
|
||||
# 3 = DIAGONAL1,
|
||||
# 4 = DIAGONAL2,
|
||||
# 5 = CORNER1,
|
||||
# 6 = CORNER2,
|
||||
# 7 = CORNER3,
|
||||
# 8 = CORNER4
|
||||
#######################################################################
|
||||
|
||||
set BugNumber OCC21747
|
||||
|
||||
vinit
|
||||
|
||||
set R1 0
|
||||
set G1 0
|
||||
set B1 255
|
||||
set R2 255
|
||||
set G2 0
|
||||
set B2 0
|
||||
set Type 6
|
||||
|
||||
puts "${BugNumber}"
|
||||
puts "Type=CORNER2, Color from BLUE to RED, Direction from RIGHT TOP CORNER"
|
||||
puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
|
||||
|
||||
vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
|
||||
vbackground -gradient BLUE1 RED -gradientMode CORNER2
|
||||
|
||||
checkview -screenshot -3d -path ${imagedir}/${test_image}.png
|
||||
|
@ -2,40 +2,14 @@ puts "============"
|
||||
puts "OCC21747"
|
||||
puts "============"
|
||||
puts ""
|
||||
#######################################################################
|
||||
# Implementation of gradient background style
|
||||
#
|
||||
# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
|
||||
# R1\G1\B1 - First color [0..255]
|
||||
# R2\G2\B2 - Second color [0..255]
|
||||
# Type 0 to 8
|
||||
# 0 = NONE,
|
||||
# 1 = HORIZONTAL,
|
||||
# 2 = VERTICAL,
|
||||
# 3 = DIAGONAL1,
|
||||
# 4 = DIAGONAL2,
|
||||
# 5 = CORNER1,
|
||||
# 6 = CORNER2,
|
||||
# 7 = CORNER3,
|
||||
# 8 = CORNER4
|
||||
#######################################################################
|
||||
|
||||
set BugNumber OCC21747
|
||||
|
||||
vinit
|
||||
|
||||
set R1 0
|
||||
set G1 0
|
||||
set B1 255
|
||||
set R2 255
|
||||
set G2 0
|
||||
set B2 0
|
||||
set Type 7
|
||||
|
||||
puts "${BugNumber}"
|
||||
puts "Type=CORNER3, Color from BLUE to RED, Direction from RIGHT BOTTOM CORNER"
|
||||
puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
|
||||
|
||||
vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
|
||||
vbackground -gradient BLUE1 RED -gradientMode CORNER3
|
||||
|
||||
checkview -screenshot -3d -path ${imagedir}/${test_image}.png
|
||||
|
@ -2,40 +2,14 @@ puts "============"
|
||||
puts "OCC21747"
|
||||
puts "============"
|
||||
puts ""
|
||||
#######################################################################
|
||||
# Implementation of gradient background style
|
||||
#
|
||||
# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
|
||||
# R1\G1\B1 - First color [0..255]
|
||||
# R2\G2\B2 - Second color [0..255]
|
||||
# Type 0 to 8
|
||||
# 0 = NONE,
|
||||
# 1 = HORIZONTAL,
|
||||
# 2 = VERTICAL,
|
||||
# 3 = DIAGONAL1,
|
||||
# 4 = DIAGONAL2,
|
||||
# 5 = CORNER1,
|
||||
# 6 = CORNER2,
|
||||
# 7 = CORNER3,
|
||||
# 8 = CORNER4
|
||||
#######################################################################
|
||||
|
||||
set BugNumber OCC21747
|
||||
|
||||
vinit
|
||||
|
||||
set R1 0
|
||||
set G1 0
|
||||
set B1 255
|
||||
set R2 255
|
||||
set G2 0
|
||||
set B2 0
|
||||
set Type 8
|
||||
|
||||
puts "${BugNumber}"
|
||||
puts "Type=CORNER4, Color from BLUE to RED, Direction from LEFT BOTTOM CORNER"
|
||||
puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
|
||||
|
||||
vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
|
||||
vbackground -gradient BLUE1 RED -gradientMode CORNER4
|
||||
|
||||
checkview -screenshot -3d -path ${imagedir}/${test_image}.png
|
||||
|
@ -2,40 +2,15 @@ puts "============"
|
||||
puts "OCC21747"
|
||||
puts "============"
|
||||
puts ""
|
||||
#######################################################################
|
||||
# Implementation of gradient background style
|
||||
#
|
||||
# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
|
||||
# R1\G1\B1 - First color [0..255]
|
||||
# R2\G2\B2 - Second color [0..255]
|
||||
# Type 0 to 8
|
||||
# 0 = NONE,
|
||||
# 1 = HORIZONTAL,
|
||||
# 2 = VERTICAL,
|
||||
# 3 = DIAGONAL1,
|
||||
# 4 = DIAGONAL2,
|
||||
# 5 = CORNER1,
|
||||
# 6 = CORNER2,
|
||||
# 7 = CORNER3,
|
||||
# 8 = CORNER4
|
||||
#######################################################################
|
||||
|
||||
set BugNumber OCC21747
|
||||
|
||||
vinit
|
||||
|
||||
set R1 255
|
||||
set G1 0
|
||||
set B1 0
|
||||
set R2 0
|
||||
set G2 0
|
||||
set B2 255
|
||||
set Type 1
|
||||
|
||||
puts "${BugNumber}"
|
||||
puts "Type=HORIZONTAL, Color from RED to BLUE, Direction from LEFT to RIGHT"
|
||||
puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
|
||||
|
||||
vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
|
||||
vbackground -gradient RED BLUE1 -gradientMode HORIZONTAL
|
||||
|
||||
checkview -screenshot -3d -path ${imagedir}/${test_image}.png
|
||||
|
@ -2,40 +2,14 @@ puts "============"
|
||||
puts "OCC21747"
|
||||
puts "============"
|
||||
puts ""
|
||||
#######################################################################
|
||||
# Implementation of gradient background style
|
||||
#
|
||||
# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
|
||||
# R1\G1\B1 - First color [0..255]
|
||||
# R2\G2\B2 - Second color [0..255]
|
||||
# Type 0 to 8
|
||||
# 0 = NONE,
|
||||
# 1 = HORIZONTAL,
|
||||
# 2 = VERTICAL,
|
||||
# 3 = DIAGONAL1,
|
||||
# 4 = DIAGONAL2,
|
||||
# 5 = CORNER1,
|
||||
# 6 = CORNER2,
|
||||
# 7 = CORNER3,
|
||||
# 8 = CORNER4
|
||||
#######################################################################
|
||||
|
||||
set BugNumber OCC21747
|
||||
|
||||
vinit
|
||||
|
||||
set R1 0
|
||||
set G1 0
|
||||
set B1 255
|
||||
set R2 255
|
||||
set G2 0
|
||||
set B2 0
|
||||
set Type 1
|
||||
|
||||
puts "${BugNumber}"
|
||||
puts "Type=HORIZONTAL, Color from BLUE to RED, Direction from LEFT to RIGHT"
|
||||
puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
|
||||
|
||||
vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
|
||||
vbackground -gradient BLUE1 RED -gradientMode HORIZONTAL
|
||||
|
||||
checkview -screenshot -3d -path ${imagedir}/${test_image}.png
|
||||
|
@ -2,40 +2,14 @@ puts "============"
|
||||
puts "OCC21747"
|
||||
puts "============"
|
||||
puts ""
|
||||
#######################################################################
|
||||
# Implementation of gradient background style
|
||||
#
|
||||
# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
|
||||
# R1\G1\B1 - First color [0..255]
|
||||
# R2\G2\B2 - Second color [0..255]
|
||||
# Type 0 to 8
|
||||
# 0 = NONE,
|
||||
# 1 = HORIZONTAL,
|
||||
# 2 = VERTICAL,
|
||||
# 3 = DIAGONAL1,
|
||||
# 4 = DIAGONAL2,
|
||||
# 5 = CORNER1,
|
||||
# 6 = CORNER2,
|
||||
# 7 = CORNER3,
|
||||
# 8 = CORNER4
|
||||
#######################################################################
|
||||
|
||||
set BugNumber OCC21747
|
||||
|
||||
vinit
|
||||
|
||||
set R1 255
|
||||
set G1 0
|
||||
set B1 0
|
||||
set R2 0
|
||||
set G2 0
|
||||
set B2 255
|
||||
set Type 2
|
||||
|
||||
puts "${BugNumber}"
|
||||
puts "Type=VERTICAL, Color from RED to BLUE, Direction from TOP to BOTTOM"
|
||||
puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
|
||||
|
||||
vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
|
||||
vbackground -gradient RED BLUE1 -gradientMode VERTICAL
|
||||
|
||||
checkview -screenshot -3d -path ${imagedir}/${test_image}.png
|
||||
|
@ -2,40 +2,14 @@ puts "============"
|
||||
puts "OCC21747"
|
||||
puts "============"
|
||||
puts ""
|
||||
#######################################################################
|
||||
# Implementation of gradient background style
|
||||
#
|
||||
# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
|
||||
# R1\G1\B1 - First color [0..255]
|
||||
# R2\G2\B2 - Second color [0..255]
|
||||
# Type 0 to 8
|
||||
# 0 = NONE,
|
||||
# 1 = HORIZONTAL,
|
||||
# 2 = VERTICAL,
|
||||
# 3 = DIAGONAL1,
|
||||
# 4 = DIAGONAL2,
|
||||
# 5 = CORNER1,
|
||||
# 6 = CORNER2,
|
||||
# 7 = CORNER3,
|
||||
# 8 = CORNER4
|
||||
#######################################################################
|
||||
|
||||
set BugNumber OCC21747
|
||||
|
||||
vinit
|
||||
|
||||
set R1 0
|
||||
set G1 0
|
||||
set B1 255
|
||||
set R2 255
|
||||
set G2 0
|
||||
set B2 0
|
||||
set Type 2
|
||||
|
||||
puts "${BugNumber}"
|
||||
puts "Type=VERTICAL, Color from BLUE to RED, Direction from TOP to BOTTOM"
|
||||
puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
|
||||
|
||||
vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
|
||||
vbackground -gradient BLUE1 RED -gradientMode VERTICAL
|
||||
|
||||
checkview -screenshot -3d -path ${imagedir}/${test_image}.png
|
||||
|
@ -2,40 +2,14 @@ puts "============"
|
||||
puts "OCC21747"
|
||||
puts "============"
|
||||
puts ""
|
||||
#######################################################################
|
||||
# Implementation of gradient background style
|
||||
#
|
||||
# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
|
||||
# R1\G1\B1 - First color [0..255]
|
||||
# R2\G2\B2 - Second color [0..255]
|
||||
# Type 0 to 8
|
||||
# 0 = NONE,
|
||||
# 1 = HORIZONTAL,
|
||||
# 2 = VERTICAL,
|
||||
# 3 = DIAGONAL1,
|
||||
# 4 = DIAGONAL2,
|
||||
# 5 = CORNER1,
|
||||
# 6 = CORNER2,
|
||||
# 7 = CORNER3,
|
||||
# 8 = CORNER4
|
||||
#######################################################################
|
||||
|
||||
set BugNumber OCC21747
|
||||
|
||||
vinit
|
||||
|
||||
set R1 255
|
||||
set G1 0
|
||||
set B1 0
|
||||
set R2 0
|
||||
set G2 0
|
||||
set B2 255
|
||||
set Type 3
|
||||
|
||||
puts "${BugNumber}"
|
||||
puts "Type=DIAGONAL1, Color from RED to BLUE, Direction from LEFT TOP CORNER to RIGHT BOTTOM CORNER"
|
||||
puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
|
||||
|
||||
vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
|
||||
vbackground -gradient RED BLUE1 -gradientMode DIAGONAL1
|
||||
|
||||
checkview -screenshot -3d -path ${imagedir}/${test_image}.png
|
||||
|
@ -2,40 +2,14 @@ puts "============"
|
||||
puts "OCC21747"
|
||||
puts "============"
|
||||
puts ""
|
||||
#######################################################################
|
||||
# Implementation of gradient background style
|
||||
#
|
||||
# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
|
||||
# R1\G1\B1 - First color [0..255]
|
||||
# R2\G2\B2 - Second color [0..255]
|
||||
# Type 0 to 8
|
||||
# 0 = NONE,
|
||||
# 1 = HORIZONTAL,
|
||||
# 2 = VERTICAL,
|
||||
# 3 = DIAGONAL1,
|
||||
# 4 = DIAGONAL2,
|
||||
# 5 = CORNER1,
|
||||
# 6 = CORNER2,
|
||||
# 7 = CORNER3,
|
||||
# 8 = CORNER4
|
||||
#######################################################################
|
||||
|
||||
set BugNumber OCC21747
|
||||
|
||||
vinit
|
||||
|
||||
set R1 0
|
||||
set G1 0
|
||||
set B1 255
|
||||
set R2 255
|
||||
set G2 0
|
||||
set B2 0
|
||||
set Type 3
|
||||
|
||||
puts "${BugNumber}"
|
||||
puts "Type=DIAGONAL1, Color from BLUE to RED, Direction from LEFT TOP CORNER to RIGHT BOTTOM CORNER"
|
||||
puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
|
||||
|
||||
vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
|
||||
vbackground -gradient BLUE1 RED -gradientMode DIAGONAL1
|
||||
|
||||
checkview -screenshot -3d -path ${imagedir}/${test_image}.png
|
||||
|
@ -2,40 +2,14 @@ puts "============"
|
||||
puts "OCC21747"
|
||||
puts "============"
|
||||
puts ""
|
||||
#######################################################################
|
||||
# Implementation of gradient background style
|
||||
#
|
||||
# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
|
||||
# R1\G1\B1 - First color [0..255]
|
||||
# R2\G2\B2 - Second color [0..255]
|
||||
# Type 0 to 8
|
||||
# 0 = NONE,
|
||||
# 1 = HORIZONTAL,
|
||||
# 2 = VERTICAL,
|
||||
# 3 = DIAGONAL1,
|
||||
# 4 = DIAGONAL2,
|
||||
# 5 = CORNER1,
|
||||
# 6 = CORNER2,
|
||||
# 7 = CORNER3,
|
||||
# 8 = CORNER4
|
||||
#######################################################################
|
||||
|
||||
set BugNumber OCC21747
|
||||
|
||||
vinit
|
||||
|
||||
set R1 255
|
||||
set G1 0
|
||||
set B1 0
|
||||
set R2 0
|
||||
set G2 0
|
||||
set B2 255
|
||||
set Type 4
|
||||
|
||||
puts "${BugNumber}"
|
||||
puts "Type=DIAGONAL2, Color from RED to BLUE, Direction from RIGHT TOP CORNER to LEFT BOTTOM CORNER"
|
||||
puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
|
||||
|
||||
vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
|
||||
vbackground -gradient RED BLUE1 -gradientMode DIAGONAL2
|
||||
|
||||
checkview -screenshot -3d -path ${imagedir}/${test_image}.png
|
||||
|
@ -2,40 +2,14 @@ puts "============"
|
||||
puts "OCC21747"
|
||||
puts "============"
|
||||
puts ""
|
||||
#######################################################################
|
||||
# Implementation of gradient background style
|
||||
#
|
||||
# vsetgradientbg: vsetgradientbg R1 G1 B1 R2 G2 B2 Type
|
||||
# R1\G1\B1 - First color [0..255]
|
||||
# R2\G2\B2 - Second color [0..255]
|
||||
# Type 0 to 8
|
||||
# 0 = NONE,
|
||||
# 1 = HORIZONTAL,
|
||||
# 2 = VERTICAL,
|
||||
# 3 = DIAGONAL1,
|
||||
# 4 = DIAGONAL2,
|
||||
# 5 = CORNER1,
|
||||
# 6 = CORNER2,
|
||||
# 7 = CORNER3,
|
||||
# 8 = CORNER4
|
||||
#######################################################################
|
||||
|
||||
set BugNumber OCC21747
|
||||
|
||||
vinit
|
||||
|
||||
set R1 0
|
||||
set G1 0
|
||||
set B1 255
|
||||
set R2 255
|
||||
set G2 0
|
||||
set B2 0
|
||||
set Type 4
|
||||
|
||||
puts "${BugNumber}"
|
||||
puts "Type=DIAGONAL2, Color from BLUE to RED, Direction from RIGHT TOP CORNER to LEFT BOTTOM CORNER"
|
||||
puts "R1=${R1} G1=${G1} B1=${B1} R2=${R2} G2=${G2} B2=${B2} Type=${Type}"
|
||||
|
||||
vsetgradientbg ${R1} ${G1} ${B1} ${R2} ${G2} ${B2} ${Type}
|
||||
vbackground -gradient BLUE1 RED -gradientMode DIAGONAL2
|
||||
|
||||
checkview -screenshot -3d -path ${imagedir}/${test_image}.png
|
||||
|
@ -21,7 +21,7 @@ set x4 87
|
||||
set y4 232
|
||||
|
||||
vinit
|
||||
vsetgradientbg 255 0 0 0 0 255 4
|
||||
vbackground -gradient RED BLUE1 -gradientMode DIAGONAL2
|
||||
set Color1 [vreadpixel ${x1} ${y1} rgb]
|
||||
set Color2 [vreadpixel ${x2} ${y2} rgb]
|
||||
set Color3 [vreadpixel ${x3} ${y3} rgb]
|
||||
|
@ -9,7 +9,7 @@ puts ""
|
||||
set BugNumber OCC23102
|
||||
|
||||
vinit
|
||||
vsetbg [locate_data_file OCC23102.bmp] TILED
|
||||
vbackground -image [locate_data_file OCC23102.bmp] -imageMode TILED
|
||||
|
||||
set x1 58
|
||||
set y1 4
|
||||
|
@ -6,7 +6,7 @@ puts ""
|
||||
vclear
|
||||
vinit View1
|
||||
vaxo
|
||||
vsetgradientbg 250 0 0 0 255 0 2
|
||||
vbackground -gradient 0.980392 0 0 GREEN -gradientMode VERTICAL
|
||||
pcylinder p 100 200
|
||||
vdisplay -dispMode 1 p
|
||||
vaspects p -setInteriorStyle HOLLOW -setDrawEdges 1
|
||||
|
@ -9,16 +9,16 @@ set aTextureFile [locate_data_file hatch_1.png]
|
||||
pload VISUALIZATION
|
||||
vinit View1
|
||||
|
||||
vsetbg $aTextureFile STRETCH
|
||||
vbackground -image $aTextureFile -imageMode STRETCH
|
||||
vdump $imagedir/${casename}_1.png
|
||||
|
||||
vsetbg $aTextureFile NONE
|
||||
vsetbg $aTextureFile TILED
|
||||
vbackground -image $aTextureFile -imageMode NONE
|
||||
vbackground -image $aTextureFile -imageMode TILED
|
||||
vdump $imagedir/${casename}_2.png
|
||||
|
||||
vsetgradientbg 255 0 0 0 0 255 1
|
||||
vsetbg $aTextureFile CENTERED
|
||||
vbackground -gradient RED BLUE1 -gradientMode HORIZONTAL
|
||||
vbackground -image $aTextureFile -imageMode CENTERED
|
||||
vdump $imagedir/${casename}_3.png
|
||||
|
||||
vsetbg $aTextureFile NONE
|
||||
vbackground -image $aTextureFile -imageMode NONE
|
||||
vdump $imagedir/${casename}_4.png
|
||||
|
@ -7,7 +7,7 @@ puts ""
|
||||
################################################################
|
||||
|
||||
pload ALL
|
||||
vsetdefaultbg 0 0 0 64 64 64 1
|
||||
vbackground -default -gradient BLACK GRAY25 -gradientMode HORIZONTAL
|
||||
vinit View1 w=400 h=400
|
||||
if { [checkcolor 399 100 0.25 0.25 0.25] != 1 } {
|
||||
puts "Error: bug with default gradient color is reproduced."
|
||||
@ -18,7 +18,7 @@ if { [checkcolor 399 100 0.25 0.25 0.25] != 1 } {
|
||||
puts "Error: bug with default gradient color is reproduced."
|
||||
}
|
||||
|
||||
vsetdefaultbg 128 128 128
|
||||
vbackground -default -color 0.501961 0.501961 0.501961
|
||||
vinit View3
|
||||
if { [checkcolor 100 100 0.5 0.5 0.5] != 1 } {
|
||||
puts "Error: bug with default background color is reproduced."
|
||||
|
@ -20,11 +20,11 @@ vclipplane create pln
|
||||
vclipplane set pln view Driver1/Viewer1/View1
|
||||
vclipplane change pln equation 0 1 0 -0.5
|
||||
|
||||
vsetgradientbg 0 0 0 0 0 0 0
|
||||
vbackground -gradient BLACK BLACK -gradientMode NONE
|
||||
|
||||
vdump $aExpectedImg
|
||||
|
||||
vsetgradientbg 0 0 0 0 0 0 1
|
||||
vbackground -gradient BLACK BLACK -gradientMode HORIZONTAL
|
||||
|
||||
vdump $aVerifiedImg
|
||||
|
||||
|
@ -11,7 +11,7 @@ vinit View1
|
||||
vclear
|
||||
vaxo
|
||||
vsetdispmode 1
|
||||
vsetcolorbg 10 10 10
|
||||
vbackground -color GRAY4
|
||||
vdisplay b
|
||||
vfit
|
||||
vraytrace 1
|
||||
@ -19,8 +19,8 @@ set bug_info_1 [vreadpixel 50 50 rgb name]
|
||||
if {$bug_info_1 != "GRAY4"} {
|
||||
puts "ERROR: OCC26404 is reproduced. Background color is invalid (case #1)."
|
||||
}
|
||||
vsetgradientbg 255 0 0 0 0 255 1
|
||||
vsetgradientbg 255 0 0 0 0 255 0
|
||||
vbackground -gradient RED BLUE1 -gradientMode HORIZONTAL
|
||||
vbackground -gradient RED BLUE1 -gradientMode NONE
|
||||
set bug_info_2 [vreadpixel 50 50 rgb name]
|
||||
if {$bug_info_2 != "GRAY4"} {
|
||||
puts "ERROR: OCC26404 is reproduced. Background color is invalid (case #2)."
|
||||
|
@ -13,7 +13,7 @@ vinit View1
|
||||
vclear
|
||||
vaxo
|
||||
|
||||
vsetgradientbg 255 0 0 0 0 255 2
|
||||
vbackground -gradient RED BLUE1 -gradientMode VERTICAL
|
||||
box b 1 2 3
|
||||
vdisplay b
|
||||
|
||||
|
@ -11,7 +11,7 @@ box b 0 0 -100 100 90 10
|
||||
vclear
|
||||
vinit View1
|
||||
vaxo
|
||||
vsetgradientbg 180 200 255 180 180 180 2
|
||||
vbackground -gradient 0.705882 0.784314 1 0.705882 0.705882 0.705882 -gradientMode VERTICAL
|
||||
vzbufftrihedron
|
||||
vdisplay -dispMode 1 b
|
||||
vsetlocation b 0 0 1000
|
||||
|
@ -7,7 +7,7 @@ pload MODELING VISUALIZATION
|
||||
|
||||
vclear
|
||||
vinit View1
|
||||
vsetcolorbg 255 255 255
|
||||
vbackground -color WHITE
|
||||
|
||||
psphere s1 1
|
||||
psphere s2 1
|
||||
|
@ -6,9 +6,9 @@ puts ""
|
||||
pload VISUALIZATION
|
||||
vclear
|
||||
vinit View1
|
||||
vsetcolorbg 127 127 127
|
||||
vbackground -color GRAY50
|
||||
vdump $imagedir/${casename}_127.png
|
||||
vsetcolorbg 130 130 130
|
||||
vbackground -color GRAY51
|
||||
vdump $imagedir/${casename}_130.png
|
||||
set aNbDiff0 [diffimage $imagedir/${casename}_127.png $imagedir/${casename}_130.png $imagedir/${casename}_0.png -toleranceOfColor 0]
|
||||
set aNbDiff1 [diffimage $imagedir/${casename}_127.png $imagedir/${casename}_130.png $imagedir/${casename}_1.png -toleranceOfColor 0.1]
|
||||
|
@ -9,7 +9,7 @@ vclear
|
||||
vclose ALL
|
||||
vinit View1 -width 768 -height 409
|
||||
vzbufftrihedron
|
||||
vsetgradientbg 180 200 255 180 180 180 2
|
||||
vbackground -gradient 0.705882 0.784314 1 0.705882 0.705882 0.705882 -gradientMode VERTICAL
|
||||
box b1 -2 0 2 1 0.2 1
|
||||
box b2 2 0 2 1 0.2 1
|
||||
box b3 0 0 0 1 0.2 1
|
||||
|
@ -7,7 +7,7 @@ box b 2 3 1
|
||||
vclear
|
||||
vclose ALL
|
||||
vinit View1 w=512 h=512
|
||||
vsetgradientbg 180 200 255 180 180 180 2
|
||||
vbackground -gradient 0.705882 0.784314 1 0.705882 0.705882 0.705882 -gradientMode VERTICAL
|
||||
vsetdispmode 0
|
||||
vdisplay b
|
||||
vfit
|
||||
|
@ -8,8 +8,8 @@ pload MODELING VISUALIZATION
|
||||
|
||||
vclear
|
||||
vinit View1
|
||||
vsetcolorbg 220 220 220
|
||||
#vsetgradientbg 180 200 255 180 180 180 2
|
||||
vbackground -color GAINSBORO
|
||||
#vbackground -gradient 0.705882 0.784314 1 0.705882 0.705882 0.705882 -gradientMode VERTICAL
|
||||
vaxo
|
||||
|
||||
psphere s 1.0
|
||||
|
@ -9,7 +9,7 @@ pload MODELING VISUALIZATION
|
||||
# test for creation of bottle as in tutorial (script is in samples)
|
||||
source $env(CSF_OCCTSamplesPath)/tcl/bottle.tcl
|
||||
|
||||
vsetcolorbg 255 255 255
|
||||
vbackground -color WHITE
|
||||
vzbufftrihedron -type wireframe -colorLabels BLACK
|
||||
vaspects bottle -setDrawSilhouette 1 -setEdgeColor BLACK -setFaceBoundaryDraw 1 -setMostContinuity c0 -setFaceBoundaryColor BLACK -setInteriorStyle HIDDENLINE
|
||||
vrenderparams -rendScale 2
|
||||
|
@ -19,7 +19,7 @@ vclear
|
||||
vclose ALL
|
||||
vinit View1
|
||||
vraytrace 0
|
||||
vsetgradientbg 180 200 255 180 180 180 2
|
||||
vbackground -gradient 0.705882 0.784314 1 0.705882 0.705882 0.705882 -gradientMode VERTICAL
|
||||
vsetdispmode 0
|
||||
vdisplay -dispMode 1 b
|
||||
vfit
|
||||
|
@ -9,7 +9,7 @@ set aShape [locate_data_file occ/Top.brep]
|
||||
vinit View1 w=768 h=768
|
||||
vglinfo
|
||||
|
||||
vsetgradientbg 180 200 255 180 180 180 2
|
||||
vbackground -gradient 0.705882 0.784314 1 0.705882 0.705882 0.705882 -gradientMode VERTICAL
|
||||
|
||||
# display shape
|
||||
vlight -change 0 -dir 0.577 -0.577 -0.577
|
||||
|
@ -12,7 +12,7 @@ vglinfo
|
||||
|
||||
vvbo 0
|
||||
vsetdispmode 1
|
||||
vsetgradientbg 180 200 255 180 180 180 2
|
||||
vbackground -gradient 0.705882 0.784314 1 0.705882 0.705882 0.705882 -gradientMode VERTICAL
|
||||
restore $aShape1 s1
|
||||
restore $aShape2 s2
|
||||
vdisplay s1 s2
|
||||
|
@ -10,7 +10,7 @@ vglinfo
|
||||
|
||||
vvbo 0
|
||||
vsetdispmode 1
|
||||
vsetgradientbg 180 200 255 180 180 180 2
|
||||
vbackground -gradient 0.705882 0.784314 1 0.705882 0.705882 0.705882 -gradientMode VERTICAL
|
||||
# boxes
|
||||
box b1 1 1 1
|
||||
vdisplay b1
|
||||
|
@ -12,7 +12,7 @@ vglinfo
|
||||
|
||||
vvbo 0
|
||||
vsetdispmode 1
|
||||
vsetgradientbg 180 200 255 180 180 180 2
|
||||
vbackground -gradient 0.705882 0.784314 1 0.705882 0.705882 0.705882 -gradientMode VERTICAL
|
||||
vtextureenv on 4
|
||||
restore $aShape1 s1
|
||||
restore $aShape2 s2
|
||||
|
@ -17,7 +17,7 @@ vglinfo
|
||||
|
||||
vvbo 0
|
||||
vsetdispmode 1
|
||||
vsetgradientbg 180 200 255 180 180 180 2
|
||||
vbackground -gradient 0.705882 0.784314 1 0.705882 0.705882 0.705882 -gradientMode VERTICAL
|
||||
restore $aShape1 s1
|
||||
restore $aShape2 s2
|
||||
vdisplay s1 s2
|
||||
|
@ -6,7 +6,7 @@ vinit View1
|
||||
vclear
|
||||
vrenderparams -rasterization
|
||||
vsetdispmode 1
|
||||
vsetgradientbg 180 200 255 180 180 180 2
|
||||
vbackground -gradient 0.705882 0.784314 1 0.705882 0.705882 0.705882 -gradientMode VERTICAL
|
||||
|
||||
box wall1 1 8 8
|
||||
box wall2 1 8 8
|
||||
|
@ -6,7 +6,7 @@ vinit View1
|
||||
vclear
|
||||
vrenderparams -rasterization
|
||||
vsetdispmode 1
|
||||
vsetgradientbg 180 200 255 180 180 180 2
|
||||
vbackground -gradient 0.705882 0.784314 1 0.705882 0.705882 0.705882 -gradientMode VERTICAL
|
||||
|
||||
box wall1 1 8 8
|
||||
box wall2 1 8 8
|
||||
|
@ -8,7 +8,7 @@ set aShape2 [locate_data_file occ/Bottom.brep]
|
||||
|
||||
vinit View1
|
||||
vsetdispmode 1
|
||||
vsetgradientbg 180 180 180 255 255 255 2
|
||||
vbackground -gradient 0.705882 0.705882 0.705882 WHITE -gradientMode VERTICAL
|
||||
restore $aShape1 s1
|
||||
restore $aShape2 s2
|
||||
vdisplay s1
|
||||
|
Loading…
x
Reference in New Issue
Block a user