本文整理汇总了C++中VectorMap::Find方法的典型用法代码示例。如果您正苦于以下问题:C++ VectorMap::Find方法的具体用法?C++ VectorMap::Find怎么用?C++ VectorMap::Find使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VectorMap
的用法示例。
在下文中一共展示了VectorMap::Find方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SetTransform
void SetTransform(const btTransform& aT, VectorMap<void*, int>& set){
if (set.Find(mSelf) != set.end())
return;
mSelf->setWorldTransform(aT);
mSelf->clearForces();
set[mSelf] = 1;
if (mGameFlag != 0)
Logger::Log(FB_DEFAULT_LOG_ARG, FormatString("(info) Setting rigid body transform for %d", mGameFlag).c_str());
auto numConstraints = mSelf->getNumConstraintRefs();
for (int i = 0; i < numConstraints; ++i){
auto con = mSelf->getConstraintRef(i);
auto conType = con->getConstraintType();
if (conType == FIXED_CONSTRAINT_TYPE || conType == D6_SPRING_2_CONSTRAINT_TYPE){
btFixedConstraint* fixedCon = (btFixedConstraint*)con;
auto a = &con->getRigidBodyA();
auto b = &con->getRigidBodyB();
auto trA = fixedCon->getFrameOffsetA();
auto trB = fixedCon->getFrameOffsetB();
if (b->getUserPointer() == mSelf){
std::swap(a, b);
std::swap(trA, trB);
}
auto bT = aT * trA * trB.inverse();
auto rigidBodyImpl = (RigidBodyImpl*)b->getUserPointer();
rigidBodyImpl->mImpl->SetTransform(bT, set);
}
}
mSelf->activate();
}
示例2: GetClipboardFormatCode
int GetClipboardFormatCode(const char *format_id)
{
GuiLock ___;
int x = (int)(intptr_t)format_id;
if(x >= 0 && x < 65535)
return x;
String fmt = format_id;
if(fmt == "text")
return CF_TEXT;
if(fmt == "wtext")
return CF_UNICODETEXT;
if(fmt == "dib")
return CF_DIB;
if(fmt == "files")
return CF_HDROP;
static StaticMutex m;
Mutex::Lock __(m);
static VectorMap<String, int> format_map;
int f = format_map.Find(format_id);
if(f < 0) {
f = format_map.GetCount();
format_map.Add(format_id,
#ifdef PLATFORM_WINCE
::RegisterClipboardFormat(ToSystemCharset(format_id))
#else
::RegisterClipboardFormat(format_id)
#endif
);
}
return format_map[f];
}
示例3: ReadTheme
void Themed::ReadTheme()
{
int q = theme.Find(ToLower(GetClass()));
if(q < 0) return;
ClassTheme& cm = theme[q];
ThemeProperties tm(cm.data.property, cm.data.image, true);
Properties(tm);
Ctrl *p = dynamic_cast<Ctrl *>(this);
if(p)
for(Ctrl *q = p->GetFirstChild(); q; q = q->GetNext()) {
Themed *t = dynamic_cast<Themed *>(q);
if(t) {
int i = cm.child.Find(t->GetClass());
if(i >= 0) {
ThemeProperties tm(cm.child[i].property, cm.child[i].image, true);
t->Properties(tm);
}
i = cm.child.Find(t->id);
if(i >= 0) {
q->SetPos(cm.child[i].pos);
ThemeProperties tm(cm.child[i].property, cm.child[i].image, true);
t->Properties(tm);
}
}
}
}
示例4:
PPMacro *FindPPMacro(const String& id, Index<int>& segment_id, int& segmenti)
{
Index<int> undef;
PPMacro *r;
int best;
for(int pass = 0; pass < 2; pass++) {
r = NULL;
best = segmenti;
int line = -1;
int q = sAllMacros.Find(id);
while(q >= 0) {
PPMacro& m = sAllMacros[q];
if(m.macro.IsUndef()) {
if(pass == 0 && segment_id.Find(m.segment_id) >= 0)
undef.FindAdd(m.segment_id); // cancel out undefined macro...
}
else
if(pass == 0 || m.segment_id == 0 || undef.Find(m.undef_segment_id) < 0) {
int si = m.segment_id == 0 ? INT_MAX : segment_id.Find(m.segment_id); // defs macros always override
if(si > best || si >= 0 && si == best && m.line > line) {
best = si;
line = m.line;
r = &m;
}
}
q = sAllMacros.FindNext(q);
}
if(undef.GetCount() == 0)
break;
}
segmenti = best;
return r;
}
示例5: GetFileTimeCached
Time GetFileTimeCached(const String& p)
{
LTIMING("GetFileTimeCached");
int q = sPathFileTime.Find(p);
if(q >= 0)
return sPathFileTime[q];
Time m = FileGetTime(p);
sPathFileTime.Put(p, m);
return m;
}
示例6: MarkChanged
void MarkChanged(const VectorMap<String, String>& m, ArrayCtrl& data)
{
GuiLock __;
for(int i = 0; i < data.GetCount(); i++) {
int q = m.Find(data.Get(i, 0));
if(q >= 0 && m[q] != data.Get(i, 1))
data.SetDisplay(i, 1, Single<RedDisplay>());
else
data.SetDisplay(i, 1, StdDisplay());
}
}
示例7: GetData
String DnDLoop::GetData(const String& f)
{
GuiLock __;
int i = data->Find(f);
String d;
if(i >= 0)
d = (*data)[i].Render();
else
if(sDnDSource)
d = sDnDSource->GetDropData(f);
return d;
}
示例8: operator
virtual bool operator()(int pos, const RichPara& para)
{
for(int i = 0; i < para.GetCount(); i++) {
String l = para[i].format.link;
if(!IsNull(l)) {
if(l[0] == ':') {
int q = reflink->Find(l);
int w = q;
if(q < 0)
q = reflink->Find(l + "::class");
if(q < 0)
q = reflink->Find(l + "::struct");
if(q < 0)
q = reflink->Find(l + "::union");
if(q >= 0)
l = (*reflink)[q];
}
link.FindAdd(Nvl(reflink->Get(l, Null), l));
}
}
return false;
}
示例9: GetShader
ShaderPtr GetShader(int ResourceTypes_Shaders){
auto it = mShaders.Find(ResourceTypes_Shaders);
if (it == mShaders.end()){
auto shader = CreateShader(ResourceTypes_Shaders);
if (!shader){
Logger::Log(FB_ERROR_LOG_ARG, FormatString("Resource Provider - Failed to create the shader (%d)", ResourceTypes_Shaders).c_str());
return 0;
}
mShaders[ResourceTypes_Shaders] = shader;
return shader;
}
return it->second;
}
示例10: GetIncludePath
String GetIncludePath(const String& s, const String& filedir)
{
LTIMING("GetIncludePath");
String key;
key << s << "#" << filedir;
int q = sIncludePath.Find(key);
if(q >= 0)
return sIncludePath[q];
LTIMING("GetIncludePath 2");
String p = GetIncludePath0(s, filedir);
sIncludePath.Add(key, p);
LLOG("GetIncludePath " << s << " " << filedir << ": " << p);
return p;
}
示例11: GetSamplerState
SamplerStatePtr GetSamplerState(int ResourceTypes_SamplerStates){
auto it = mSamplerStates.Find(ResourceTypes_SamplerStates);
if (it == mSamplerStates.end()){
auto state = CreateSamplerState(ResourceTypes_SamplerStates);
if (!state){
Logger::Log(FB_ERROR_LOG_ARG, "Resource Provider - Failed to create a depth stencil state(%d)", ResourceTypes_SamplerStates);
return 0;
}
mSamplerStates[ResourceTypes_SamplerStates] = state;
return state;
}
return it->second;
}
示例12: GetBlendState
BlendStatePtr GetBlendState(int ResourceTypes_BlendStates){
auto it = mBlendStates.Find(ResourceTypes_BlendStates);
if (it == mBlendStates.end()){
auto state = CreateBlendState(ResourceTypes_BlendStates);
if (!state){
Logger::Log(FB_ERROR_LOG_ARG, "Resource Provider - Failed to create a rasterizer state(%d)", ResourceTypes_BlendStates);
return 0;
}
mBlendStates[ResourceTypes_BlendStates] = state;
return state;
}
return it->second;
}
示例13: GetMaterial
MaterialPtr GetMaterial(int ResourceTypes_Materials){
auto it = mMaterials.Find(ResourceTypes_Materials);
if (it == mMaterials.end()){
auto material = CreateMaterial(ResourceTypes_Materials);
if (!material){
Logger::Log(FB_ERROR_LOG_ARG, "Resource Provider - Failed to create a material(%d)", ResourceTypes_Materials);
return 0;
}
mMaterials[ResourceTypes_Materials] = material;
return material;
}
return it->second;
}
示例14: GetTexture
TexturePtr GetTexture(int ResourceTypes_Textures, int index){
auto it = mTextures.Find(ResourceTypes_Textures);
if (it == mTextures.end() || index >= (int)it->second.size()){
auto textures = CreateTexture(ResourceTypes_Textures);
mTextures[ResourceTypes_Textures] = textures;
if (index < (int)textures.size()){
return textures[index];
}
}
else{
if (index < (int)it->second.size())
return it->second[index];
}
return 0;
}
示例15: Vis
Value Pdb::Vis(const String& key, const VectorMap<String, Value>& prev, Visual rval_ vis,
bool& ch)
{
int q = prev.Find(key);
ch = false;
for(int i = 0; i < vis.part.GetCount(); i++) {
VisualPart& p = vis.part[i];
p.mark = false;
if(q >= 0 && IsType<Visual>(prev[q])) {
const Visual& v = ValueTo<Visual>(prev[q]);
if(v.part.GetCount() == vis.part.GetCount() && v.part[i].text != p.text)
ch = p.mark = true;
}
}
return RawPickToValue(vis);
}