本文整理汇总了C++中XVector类的典型用法代码示例。如果您正苦于以下问题:C++ XVector类的具体用法?C++ XVector怎么用?C++ XVector使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了XVector类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: loadQImage
void SyImageBase::loadQImage(const QImage &imageIn)
{
SProfileFunction
int width = imageIn.width();
int height = imageIn.height();
XVector<float> data;
data.resize(width * height);
xsize bytesPerPixel = imageIn.depth()/8;
const quint8 *pixel = imageIn.bits();
for(int i = 0; i < height; ++i )
{
xsize rowPos = i * width;
for(int j = 0; j < width; ++j)
{
data[rowPos+j] = (float)*pixel/255.0f;
pixel += bytesPerPixel;
}
}
image.set(width, height, data);
postSet();
}
示例2: GetSizeFinal
void XWndPrivateRaidSpot::Update()
{
XWndSpot::Update();
// 도전마크를 스팟위에 그림
const auto size = GetSizeFinal();
XVector<XWnd*> aryChild;
XE::VEC2 vlPos = XE::VEC2( -8, -size.h );
for( int i = 0; i < 2; ++i ) {
const bool bOn = !(i < m_pSpot->GetnumWins());
const std::string ids = XE::Format( "img.mark%d", i );
auto pImg = XWndImage::sUpdateCtrl( this, ids );
if( pImg ) {
if( i == 0 ) {
//vlPos.y -= pImg->GetSizeLocal().h;
}
aryChild.push_back( pImg );
if( bOn ) {
pImg->SetSurfaceRes( PATH_UI("chall_mark_on.png") );
} else {
pImg->SetSurfaceRes( PATH_UI( "chall_mark_off.png" ) );
}
pImg->SetPosLocal( vlPos );
vlPos.x += pImg->GetSizeLocal().w;
}
}
// AutoLayoutHCenterWithAry( aryChild, 0.f );
}
示例3: XBREAK
/**
@brief 효과 시전
pEffect의 효과를 기준타겟(pBaseTarget)을 기준으로 시전대상을 선정하여 시전한다.
현재 _vPos는 사용하지 않는다
*/
xtError XSkillUser::UseEffect( const XSkillDat *pDat,
EFFECT *pEffect,
int level,
XSkillReceiver *pBaseTarget,
const XE::VEC2& vBaseTarget, // 기준타겟이 좌표형일경우.
ID idCallerSkill )
{
// 좌표에 값이 있으면 타겟은 널이어야 한다.,
XBREAK( vBaseTarget.IsNotZero() && pBaseTarget != nullptr );
XVector<XSkillReceiver*> aryCastTargets; // 시전대상
// 기준타겟이나 기준좌표로 시전대상을 얻는다.
XBREAK( pBaseTarget == nullptr && vBaseTarget.IsZero() );
//
XE::VEC2 vCastTarget;
GetCastingTargetList( &aryCastTargets,
&vCastTarget,
pEffect->castTarget,
pDat,
pEffect,
level,
pBaseTarget,
vBaseTarget );
//
if( vCastTarget.IsZero() && aryCastTargets.empty() ) {
return xERR_NOT_FOUND_CASTING_TARGET; // 시전대상을 찾지 못함
}
if( aryCastTargets.size() ) {
// 캐스팅 대상들에게 효과를 시전한다.
for( auto pCastingTarget : aryCastTargets ) {
// 즉시시전 or 버프방식
const XE::VEC2 vZero;
CastEffToCastTarget( pDat,
pEffect,
level,
// pBaseTarget,
pCastingTarget,
vZero,
idCallerSkill );
}
} else
if( vCastTarget.IsNotZero() ) {
// 시전대상이 좌표형
CastEffToCastTarget( pDat,
pEffect,
level,
nullptr,
vCastTarget,
idCallerSkill );
} else {
XBREAK(1);
}
return xOK;
}
示例4: V_AddVector
RVector V_AddVector( const RVector & r,const typename XVector::scalar_type &av,const XVector & x,
const typename XVector::scalar_type &bv, const YVector & y)
{
V_AddVectorFunctor<RVector,XVector,YVector,doalpha,dobeta> f(r,av,x,bv,y);
parallel_for(x.dimension_0(),f);
return r;
}
示例5: MV_Add
RVector MV_Add( const RVector & r, const XVector & x, const YVector & y)
{
KokkosArray::View<typename XVector::value_type* , KokkosArray::LayoutRight, typename XVector::device_type> dummy;
if(x.dimension(1)>16)
return MV_AddVector( r,dummy,x,dummy,y,1,1);
return MV_AddUnroll( r,dummy,x,dummy,y,1,1);
}
示例6: CastEffToCastTargetByDirect
/**
@brief 즉시시전형태(비버프형)의 효과를 시전대상에게 시전한다.
*/
xtError XSkillUser::CastEffToCastTargetByDirect( const XSkillDat *pDat,
const EFFECT *pEffect,
int level,
XSkillReceiver *pCastingTarget,
const XE::VEC2& vCastTarget )
{
XVector<XSkillReceiver*> aryInvokeTarget;
// 1회성이기때문에 루아도 쓰고 바로 파괴되는걸로 함
// 시전대상자(pCastingTarget)기준 발동대상 얻음
XE::VEC2 vIvkTarget; // 발동대상이 좌표형태일때 여기로 좌표가 담긴다.
int numInvoke = GetInvokeTarget( &aryInvokeTarget,
&vIvkTarget,
pDat,
level,
pEffect->invokeTarget,
pEffect,
pCastingTarget,
vCastTarget );
if( numInvoke > 0 || vIvkTarget.IsNotZero() ) {
bool bCreateSfx = ( pEffect->m_invokeTargetEff.m_strSpr.empty() ) ? false : true;
if( aryInvokeTarget.size() ) {
for( auto pInvokeTarget : aryInvokeTarget ) {
// 발동대상들에게 효과 적용
ApplyInvokeEffToIvkTarget( pInvokeTarget,
vIvkTarget,
pDat,
pEffect,
GetThisRecv(), // invoker
bCreateSfx,
level,
nullptr ); // pBuff
} // for
} else
if( vIvkTarget.IsNotZero() ) {
// 발동좌표에 효과적용
ApplyInvokeEffToIvkTarget( nullptr,
vIvkTarget,
pDat,
pEffect,
GetThisRecv(), // invoker
bCreateSfx,
level,
nullptr ); // pBuff
}
}
return xOK;
} // CastEffToCastTargetByDirect
示例7: team_axpby
static KOKKOS_INLINE_FUNCTION void team_axpby (const TeamType& team,
const typename XVector::non_const_value_type& a, const XVector& x,
const typename YVector::non_const_value_type& b, const YVector& y) {
const int N = x.extent(0);
Kokkos::parallel_for(Kokkos::TeamThreadRange(team,N), [&] (const int& i) {
y(i) = b*y(i) + a*x(i);
});
}
示例8: dot
/// \brief Return the dot product of x and y.
///
/// \param x [in] First vector.
/// \param y [in] Second vector.
/// \param label [in] This is passed into Kokkos::parallel_for, as a
/// label for profiling.
static dot_type
dot (const std::string& label, const XVector& x, const YVector& y)
{
dot_type result;
if (x.dimension_0 () < typename XVector::size_type (INT_MAX)) {
Kokkos::RangePolicy<typename XVector::execution_space, int> policy (0, x.dimension_0 ());
typedef DotFunctor<XVector, YVector, int> functor_type;
Kokkos::parallel_reduce (label, policy, functor_type (x, y), result);
}
else {
typedef typename XVector::size_type size_type;
Kokkos::RangePolicy<typename XVector::execution_space, size_type> policy (0, x.dimension_0 ());
typedef DotFunctor<XVector, YVector, size_type> functor_type;
Kokkos::parallel_reduce (label, policy, functor_type (x, y), result);
}
return result;
}
示例9: V_MulScalar
RVector V_MulScalar( const RVector & r, const typename KokkosArray::View<DataType,Layout,Device,MemoryManagement,Specialisation> & a, const XVector & x)
{
typedef typename KokkosArray::View<DataType,Layout,Device,MemoryManagement> aVector;
if(r==x) {
V_MulScalarFunctorSelf<aVector,XVector> op ;
op.m_x = x ;
op.m_a = a ;
KokkosArray::parallel_for( x.dimension(0) , op );
return r;
}
V_MulScalarFunctor<RVector,aVector,XVector> op ;
op.m_r = r ;
op.m_x = x ;
op.m_a = a ;
KokkosArray::parallel_for( x.dimension(0) , op );
return r;
}
示例10: GetResIdxByCheckSum
// int XMain::GetResIdxByCheckSum( XArrayLinear<XPatch::XRES_INFO> &ary, XUINT64 llCheckSum )
int XMain::GetResIdxByCheckSum( const XVector<XPatch::XRES_INFO> &ary, XUINT64 llCheckSum )
{
int max = ary.size();
for( int i = 0; i < max; ++i ) {
if( ary[ i ].llChecksum == llCheckSum )
return i;
}
return -1;
}
示例11: MV_MulScalar
RVector MV_MulScalar( const RVector & r, const typename XVector::scalar_type &a, const XVector & x)
{
if(r==x) {
MV_MulScalarFunctorSelf<typename XVector::scalar_type,XVector> op ;
op.m_x = x ;
op.m_a = a ;
op.n = x.dimension(1);
KokkosArray::parallel_for( x.dimension(0) , op );
return r;
}
MV_MulScalarFunctor<RVector,typename XVector::scalar_type,XVector> op ;
op.m_r = r ;
op.m_x = x ;
op.m_a = a ;
op.n = x.dimension(1);
KokkosArray::parallel_for( x.dimension(0) , op );
return r;
}
示例12: setAttribute
void XGeometry::setAttribute( const QString &n, const XVector<XVector4D> &v )
{
if( v.size() )
{
_attr4[n] = v;
if( _attr4[n].size() != _attributeSize )
{
_attributeSize = _attr4[n].size();
_attributeSizeChanged = true;
}
}
else
{
_attr1.remove(n);
}
_changedA4 << n;
_changedAttrs = true;
}
示例13: WriteFullList
// full_list.txt를 쓴다.
// int XMain::WriteFullList( XArrayLinear<XPatch::XRES_INFO>& aryAll )
int XMain::WriteFullList( const XVector<XPatch::XRES_INFO>& aryAll )
{
char cPath[ 1024 ];
strcpy_s( cPath, SZ2C( XE::_GetPathPackageRoot() ) );
strcat_s( cPath, "full_list.txt" );
FILE *fp = NULL;
fopen_s( &fp, cPath, "wt" );
if( fp == NULL )
return 0;
char cBuff[ 1024 ];
// XARRAYLINEAR_LOOP( aryAll, XPatch::XRES_INFO, info )
for( auto& info : aryAll ) {
strcpy_s( cBuff, SZ2C( info.strFile.c_str() ) );
strReplace( cBuff, '\\', '/' );
fprintf_s( fp, "\"%s\"\t%d\t%llu\n", cBuff, info.size, info.llChecksum );
}
fprintf_s( fp, "// num files %d \n", aryAll.size() );
fclose( fp );
return 1;
}
示例14: WriteCoreList
// core_list.txt를 쓴다.
//int XMain::WriteCoreList( XArrayLinear<_tstring>& aryCore )
int XMain::WriteCoreList( const XVector<_tstring>& aryCore )
{
char cPath[ 1024 ];
strcpy_s( cPath, SZ2C( XE::_GetPathPackageRoot() ) );
strcat_s( cPath, "core_list.txt" );
FILE *fp = NULL;
fopen_s( &fp, cPath, "wt" );
if( fp == NULL )
return 0;
char cBuff[ 1024 ];
// XARRAYLINEAR_LOOP( aryCore, _tstring, strRes )
for( auto& strRes : aryCore ) {
strcpy_s( cBuff, SZ2C( strRes.c_str() ) );
strReplace( cBuff, '\\', '/' );
fprintf_s( fp, "\"%s\"\n", cBuff );
// fprintf_s( fp, "\"%s\"\n", SZ2C( strRes.c_str() ) );
}
fprintf_s( fp, "// num files %d \n", aryCore.size() );
fclose( fp );
return 1;
}
示例15: MV_AddUnroll
RVector MV_AddUnroll( const RVector & r,const aVector &av,const XVector & x,
const bVector &bv, const YVector & y,
int a=2,int b=2)
{
switch (x.dimension(1)){
case 1: MV_AddUnroll<RVector, aVector, XVector, bVector, YVector, 1>( r,av,x,bv,y,a,b);
break;
case 2: MV_AddUnroll<RVector, aVector, XVector, bVector, YVector, 2>( r,av,x,bv,y,a,b);
break;
case 3: MV_AddUnroll<RVector, aVector, XVector, bVector, YVector, 3>( r,av,x,bv,y,a,b);
break;
case 4: MV_AddUnroll<RVector, aVector, XVector, bVector, YVector, 4>( r,av,x,bv,y,a,b);
break;
case 5: MV_AddUnroll<RVector, aVector, XVector, bVector, YVector, 5>( r,av,x,bv,y,a,b);
break;
case 6: MV_AddUnroll<RVector, aVector, XVector, bVector, YVector, 6>( r,av,x,bv,y,a,b);
break;
case 7: MV_AddUnroll<RVector, aVector, XVector, bVector, YVector, 7>( r,av,x,bv,y,a,b);
break;
case 8: MV_AddUnroll<RVector, aVector, XVector, bVector, YVector, 8>( r,av,x,bv,y,a,b);
break;
case 9: MV_AddUnroll<RVector, aVector, XVector, bVector, YVector, 9>( r,av,x,bv,y,a,b);
break;
case 10: MV_AddUnroll<RVector, aVector, XVector, bVector, YVector, 10>( r,av,x,bv,y,a,b);
break;
case 11: MV_AddUnroll<RVector, aVector, XVector, bVector, YVector, 11>( r,av,x,bv,y,a,b);
break;
case 12: MV_AddUnroll<RVector, aVector, XVector, bVector, YVector, 12>( r,av,x,bv,y,a,b);
break;
case 13: MV_AddUnroll<RVector, aVector, XVector, bVector, YVector, 13>( r,av,x,bv,y,a,b);
break;
case 14: MV_AddUnroll<RVector, aVector, XVector, bVector, YVector, 14>( r,av,x,bv,y,a,b);
break;
case 15: MV_AddUnroll<RVector, aVector, XVector, bVector, YVector, 15>( r,av,x,bv,y,a,b);
break;
case 16: MV_AddUnroll<RVector, aVector, XVector, bVector, YVector, 16>( r,av,x,bv,y,a,b);
break;
}
return r;
}