francis
24th August 2011, 18:49
Hi,
I have a tetragrid with a scalar field connected to it. I am creating a compute module and I want to automatically detect if a suitable field is connected when a grid is connected. I tried:
void MyPackage::update()
{
HxTetraGrid* grid = (HxTetraGrid*) this->portData.source();
HxTetraScalarField3* field = 0; //
for (int i=0; i<grid->downStreamConnections.size(); i++) {
HxTetraScalarField3* tmp = (HxTetraScalarField3*) grid->downStreamConnections[i];
if ( tmp->isOfType(HxTetraScalarField3::getClassTypeId()) ) {
field = tmp;
break;
}
}
}
However, doing tmp->isOfType(HxTetraScalarField3::getClassTypeId()) always returns 0. I've tried casting the downStreamConnection[i] as as a HxTetraField3, HxField3, HxTetraData, and HxObject, but isOfType always returns 0. Should this be a dynamic cast instead?
For now, I've just added a second connection port to the module for a HxTetraScalarField3.
Thanks,
Francis
--
Windows XP 64-bit, Avizo 6.3.0
I have a tetragrid with a scalar field connected to it. I am creating a compute module and I want to automatically detect if a suitable field is connected when a grid is connected. I tried:
void MyPackage::update()
{
HxTetraGrid* grid = (HxTetraGrid*) this->portData.source();
HxTetraScalarField3* field = 0; //
for (int i=0; i<grid->downStreamConnections.size(); i++) {
HxTetraScalarField3* tmp = (HxTetraScalarField3*) grid->downStreamConnections[i];
if ( tmp->isOfType(HxTetraScalarField3::getClassTypeId()) ) {
field = tmp;
break;
}
}
}
However, doing tmp->isOfType(HxTetraScalarField3::getClassTypeId()) always returns 0. I've tried casting the downStreamConnection[i] as as a HxTetraField3, HxField3, HxTetraData, and HxObject, but isOfType always returns 0. Should this be a dynamic cast instead?
For now, I've just added a second connection port to the module for a HxTetraScalarField3.
Thanks,
Francis
--
Windows XP 64-bit, Avizo 6.3.0