PCB_EXPR_EVALUATOR: implement isPlated virtual property
This commit is contained in:
parent
d57d5d73b2
commit
b3ce23f0e2
|
@ -55,11 +55,27 @@ class PCB_EXPR_BUILTIN_FUNCTIONS
|
||||||
rv->Set( value ? 1.0 : 0.0 );
|
rv->Set( value ? 1.0 : 0.0 );
|
||||||
aCtx->Push( rv );
|
aCtx->Push( rv );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void isPlated( LIBEVAL::UCODE* aUcode, LIBEVAL::UCODE::CONTEXT* aCtx, void *self )
|
||||||
|
{
|
||||||
|
auto vref = static_cast<PCB_EXPR_VAR_REF*>( self );
|
||||||
|
auto item = vref->GetObject(aUcode);
|
||||||
|
bool result = false;
|
||||||
|
if( item->Type() == PCB_PAD_T )
|
||||||
|
{
|
||||||
|
auto pad = static_cast<D_PAD*>( item );
|
||||||
|
result = pad->GetAttribute() == PAD_ATTRIB_STANDARD;
|
||||||
|
}
|
||||||
|
auto rv = aCtx->AllocValue();
|
||||||
|
rv->Set( result ? 1.0 : 0.0 );
|
||||||
|
aCtx->Push( rv );
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
PCB_EXPR_BUILTIN_FUNCTIONS::PCB_EXPR_BUILTIN_FUNCTIONS()
|
PCB_EXPR_BUILTIN_FUNCTIONS::PCB_EXPR_BUILTIN_FUNCTIONS()
|
||||||
{
|
{
|
||||||
m_funcs[ "onlayer" ] = onLayer;
|
m_funcs[ "onlayer" ] = onLayer;
|
||||||
|
m_funcs[ "isplated" ] = isPlated;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOARD_ITEM* PCB_EXPR_VAR_REF::GetObject( LIBEVAL::UCODE* aUcode ) const
|
BOARD_ITEM* PCB_EXPR_VAR_REF::GetObject( LIBEVAL::UCODE* aUcode ) const
|
||||||
|
|
Loading…
Reference in New Issue