本文整理汇总了C++中VectorMap::end方法的典型用法代码示例。如果您正苦于以下问题:C++ VectorMap::end方法的具体用法?C++ VectorMap::end怎么用?C++ VectorMap::end使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类VectorMap
的用法示例。
在下文中一共展示了VectorMap::end方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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: 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;
}
示例3: getMean
float EventInterpreter::getMean(const VectorMap& items){
float sum = 0;
for(VectorMap::const_iterator i=items.begin();i != items.end(); ++i){
sum += *i;
}
return (sum/items.size());
}
示例4: 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;
}
示例5: 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;
}
示例6: 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;
}
示例7: getSTDDev
float EventInterpreter::getSTDDev(const VectorMap& items, float mean){
float stddev = 0;
for(VectorMap::const_iterator i=items.begin(); i != items.end(); ++i){
stddev += pow((*i-mean),2);
}
return sqrt(stddev/items.size());
}
示例8: 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;
}
示例9: CheckSimultaneous
/// returns true, when playable
/// should be called after the position for this audioex has set.
/// Audio Thread + Main Thread
bool CheckSimultaneous(){
if (mFilePathKey.empty())
return true;
if (mProperty.mNumSimultaneous == 0)
return true;
VectorMap< std::string, std::vector<AudioExWeakPtr>>::iterator audioListIt;
{
READ_LOCK l(sAudioExListLock);
audioListIt = sAudioExList.Find(mFilePathKey);
if (audioListIt == sAudioExList.end())
return true;
}
std::vector<AudioExPtr> audioExesInRange;
audioExesInRange.reserve(10);
auto& audioList = audioListIt->second;
float rangeSQ = mProperty.mSimultaneousCheckRange * mProperty.mSimultaneousCheckRange;
// gather audioList in range
for (auto it = audioList.begin(); it != audioList.end(); /**/){
IteratingWeakContainer(audioList, it, audio);
if (!audio->IsPlaying())
continue;
if (mProperty.mSimultaneousCheckRange == 0.f){
audioExesInRange.push_back(audio);
}
else{
// check distance
const auto& position = audio->GetPosition();
auto distSq = GetDistanceSQBetween(position, mProperty.mPosition);
if (distSq <= rangeSQ){
audioExesInRange.push_back(audio);
}
}
}
if (audioExesInRange.size() < mProperty.mNumSimultaneous)
return true;
return false;
}
示例10: ScreenPosToRay
//----------------------------------------------------------------------------
Ray3 ScreenPosToRay(long x, long y)
{
Update();
auto it = mRayCache.Find(Vec2I(x, y));
if (it != mRayCache.end()){
return it->second;
}
Real fx = 2.0f * x / GetWidth() - 1.0f;
Real fy = 1.0f - 2.0f * y / GetHeight();
Vec3 screenPos((Real)fx, (Real)fy, -1.0f);
Vec3 screenMidPos((Real)fx, (Real)fy, 0.0f);
Vec3 origin = mMatrices[InverseViewProj]* screenPos;
Vec3 target = mMatrices[InverseViewProj] * screenMidPos;
Vec3 dir = target - origin;
dir.Normalize();
Ray3 ray(mTransformation.GetTranslation(), dir);
mRayCache[Vec2I(x, y)] = ray;
return ray;
}
示例11: PreRender
void PreRender(const RenderParam& renderParam, RenderParamOut* renderParamOut){
mRenderPass = (RENDER_PASS)renderParam.mRenderPass;
if (!mSkipSpatialObjects)
{
auto cam = renderParam.mCamera;
assert(cam);
auto it = mLastPreRenderFramePerCam.Find(cam);
if (it != mLastPreRenderFramePerCam.end() && it->second == gpTimer->GetFrame())
return;
mLastPreRenderFramePerCam[cam] = gpTimer->GetFrame();
MakeVisibleSet(renderParam, renderParamOut);
auto objIt = mPreRenderList[cam].begin(), objItEnd = mPreRenderList[cam].end();
for (; objIt != objItEnd; objIt++)
{
// Only objects that have a valid renderable is in the render lists.
(*objIt)->PreRender(renderParam, renderParamOut);
}
}
if (mSkyRendering)
{
if (mSkySphere)
{
mSkySphere->PreRender(renderParam, renderParamOut);
}
}
for (auto it = mObjects.begin(); it != mObjects.end(); /**/){
auto obj = it->lock();
if (!obj){
it = mObjects.erase(it);
continue;
}
++it;
obj->PreRender(renderParam, renderParamOut);
}
}
示例12: DeleteShader
void DeleteShader(int ResourceTypes_Shaders){
auto it = mShaders.Find(ResourceTypes_Shaders);
if (it != mShaders.end())
mShaders.erase(it);
}
示例13: DeleteTexture
void DeleteTexture(int ResourceTypes_Textures){
auto it = mTextures.Find(ResourceTypes_Textures);
if (it != mTextures.end())
mTextures.erase(it);
}