ati3d
ati3d
About Me
Connect
LOCATION
Not Specified
ウェブサイト
Houdini Engine
Availability
Not Specified
Recent Forum Posts
Houdini on Kubuntu 15.10 2015年11月23日6:44
I also submitted this problem as a bug just now. Maybe they will look into it again if more people having this.
edge loop selection tool 2014年7月21日18:56
Hi there! I just finished recently my edge loop selection tool. It could find and group the edgeloops on the geometry. Like when you select an edge an press SHIFT+L.
Here is the vimeo demonstration: https://vimeo.com/100791252 [vimeo.com]
Here is the vimeo demonstration: https://vimeo.com/100791252 [vimeo.com]
HDK GA_Edge question 2013年7月9日15:41
Oh, this example code is really usefull. As my next step I also wanted to get an easier way to find out which primitives sharing that edge.
Now it is looking like this, and works perfect.
GA_OffsetArray fpPrims;
GA_OffsetArray spPrims;
GA_OffsetArray intersectedPrims;
GA_OffsetArray::const_iterator prim_it;
gdp->getPrimitivesReferencingPoint(fpPrims,*_firstPoint);
gdp->getPrimitivesReferencingPoint(spPrims,*_secondPoint);
fpPrims.sortedIntersection(spPrims,intersectedPrims);
//std::cout<<“Neighbour primitives:”<<std::endl;
GA_Edge edge(*_firstPoint,*_secondPoint);
int validEdge = 0;
if (intersectedPrims.entries() == 2)
{
for (prim_it = intersectedPrims.begin(); !prim_it.atEnd(); ++prim_it)
{
std::cout<<“PrimNum : ”<<gdp->primitiveIndex(*prim_it)<<std::endl;
if (gdp->getPrimitiveList().get(gdp->primitiveIndex(*prim_it))->hasEdge(edge) == 1)
{
validEdge++;
}
}
}
I was also looking into how to get the neighbourpoints of any of my selected point. It works fine, however I am getting the warning that GU_Detail::buildRingZeroPoints(…) are deprected, and so far I couldn't find anything to replace it.
UT_PtrArray<UT_PtrArray<GEO_Point*>*> ringzero;
UT_IntArray ringvalence;
gdp->buildRingZeroPoints(ringzero, &ringvalence);
UT_Array<int> neighbourPointsArray;
int entries;
entries = ringzero->entries();
for (int i = 0; i<entries; i++)
{
if (gdp->pointIndex(*_secondPoint) != (*ringzero)->getNum())
{
neighbourPointsArray.append((*ringzero)->getNum());
std::cout<<“NeighbourPoint: ”<<(*ringzero)->getNum()<<std::endl;
}
}
Now it is looking like this, and works perfect.
GA_OffsetArray fpPrims;
GA_OffsetArray spPrims;
GA_OffsetArray intersectedPrims;
GA_OffsetArray::const_iterator prim_it;
gdp->getPrimitivesReferencingPoint(fpPrims,*_firstPoint);
gdp->getPrimitivesReferencingPoint(spPrims,*_secondPoint);
fpPrims.sortedIntersection(spPrims,intersectedPrims);
//std::cout<<“Neighbour primitives:”<<std::endl;
GA_Edge edge(*_firstPoint,*_secondPoint);
int validEdge = 0;
if (intersectedPrims.entries() == 2)
{
for (prim_it = intersectedPrims.begin(); !prim_it.atEnd(); ++prim_it)
{
std::cout<<“PrimNum : ”<<gdp->primitiveIndex(*prim_it)<<std::endl;
if (gdp->getPrimitiveList().get(gdp->primitiveIndex(*prim_it))->hasEdge(edge) == 1)
{
validEdge++;
}
}
}
I was also looking into how to get the neighbourpoints of any of my selected point. It works fine, however I am getting the warning that GU_Detail::buildRingZeroPoints(…) are deprected, and so far I couldn't find anything to replace it.
UT_PtrArray<UT_PtrArray<GEO_Point*>*> ringzero;
UT_IntArray ringvalence;
gdp->buildRingZeroPoints(ringzero, &ringvalence);
UT_Array<int> neighbourPointsArray;
int entries;
entries = ringzero->entries();
for (int i = 0; i<entries; i++)
{
if (gdp->pointIndex(*_secondPoint) != (*ringzero)->getNum())
{
neighbourPointsArray.append((*ringzero)->getNum());
std::cout<<“NeighbourPoint: ”<<(*ringzero)->getNum()<<std::endl;
}
}