Condition IOrderState::GetPeekStateCondString( const SUserInfo& userInfo ) { Condition ret("1=1"); std::vector<int32_t> statusVec; for ( auto& ftr : Imp::GetPeekStateCondFtrList() ) { auto state = ftr(userInfo); if ( state ) { statusVec.push_back(*state); } } if ( !statusVec.empty() ) { ret || GL_OrderInfo.OrderStatus.In(statusVec.begin(), statusVec.end()); } return std::move(ret); }
void StaticGeometry::DrawBoundingBox(Graphics::Renderer *r, const Aabb &bb) { vector3f min(bb.min.x, bb.min.y, bb.min.z); vector3f max(bb.max.x, bb.max.y, bb.max.z); vector3f fbl(min.x, min.y, min.z); //front bottom left vector3f fbr(max.x, min.y, min.z); //front bottom right vector3f ftl(min.x, max.y, min.z); //front top left vector3f ftr(max.x, max.y, min.z); //front top right vector3f rtl(min.x, max.y, max.z); //rear top left vector3f rtr(max.x, max.y, max.z); //rear top right vector3f rbl(min.x, min.y, max.z); //rear bottom left vector3f rbr(max.x, min.y, max.z); //rear bottom right Graphics::VertexArray *vts = new Graphics::VertexArray(Graphics::ATTRIB_POSITION | Graphics::ATTRIB_DIFFUSE); Color c(Color::WHITE); //vertices vts->Add(fbl, c); //0 vts->Add(fbr, c); //1 vts->Add(ftl, c); //2 vts->Add(ftr, c); //3 vts->Add(rtl, c); //4 vts->Add(rtr, c); //5 vts->Add(rbl, c); //6 vts->Add(rbr, c); //7 RefCountedPtr<Graphics::Material> mat(Graphics::vtxColorMaterial); Graphics::Surface surf(Graphics::TRIANGLES, vts, mat); //indices std::vector<unsigned short> &ind = surf.GetIndices(); //Front face ind.push_back(3); ind.push_back(1); ind.push_back(0); ind.push_back(0); ind.push_back(2); ind.push_back(3); //Rear face ind.push_back(7); ind.push_back(5); ind.push_back(6); ind.push_back(6); ind.push_back(5); ind.push_back(4); //Top face ind.push_back(4); ind.push_back(5); ind.push_back(3); ind.push_back(3); ind.push_back(2); ind.push_back(4); //bottom face ind.push_back(1); ind.push_back(7); ind.push_back(6); ind.push_back(6); ind.push_back(0); ind.push_back(1); //left face ind.push_back(0); ind.push_back(6); ind.push_back(4); ind.push_back(4); ind.push_back(2); ind.push_back(0); //right face ind.push_back(5); ind.push_back(7); ind.push_back(1); ind.push_back(1); ind.push_back(3); ind.push_back(5); r->SetWireFrameMode(true); r->DrawSurface(&surf); r->SetWireFrameMode(false); }