manual IFC merge, forgot some points
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1030 67173fc5-114c-0410-ac8e-9d2fd5bffc1fpull/1/head
parent
9edc0a9b8e
commit
e479ca33d4
|
@ -259,18 +259,12 @@ struct TempMesh
|
||||||
aiVector3D vmin,vmax;
|
aiVector3D vmin,vmax;
|
||||||
ArrayBounds(&*base, cnt ,vmin,vmax);
|
ArrayBounds(&*base, cnt ,vmin,vmax);
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
const float epsilon = (vmax-vmin).SquareLength() / 1e9f, dotepsilon = 1e-7;
|
const float epsilon = (vmax-vmin).SquareLength() / 1e9f, dotepsilon = 1e-7;
|
||||||
|
|
||||||
//// look for vertices that lie directly on the line between their predecessor and their
|
//// look for vertices that lie directly on the line between their predecessor and their
|
||||||
//// successor and replace them with either of them.
|
//// successor and replace them with either of them.
|
||||||
=======
|
|
||||||
const float epsilon = (vmax-vmin).SquareLength() / 1e9f;
|
|
||||||
|
|
||||||
//// look for vertices that lie directly on the line between their predecessor and their
|
|
||||||
//// successor and replace them with either of them.
|
|
||||||
//const float dotepsilon = 1e-7;
|
|
||||||
>>>>>>> 320a7a7a7e0422e4d8d9c2a22b74cb48f74b14ce
|
|
||||||
//for(size_t i = 0; i < cnt; ++i) {
|
//for(size_t i = 0; i < cnt; ++i) {
|
||||||
// aiVector3D& v1 = *(base+i), &v0 = *(base+(i?i-1:cnt-1)), &v2 = *(base+(i+1)%cnt);
|
// aiVector3D& v1 = *(base+i), &v0 = *(base+(i?i-1:cnt-1)), &v2 = *(base+(i+1)%cnt);
|
||||||
// const aiVector3D& d0 = (v1-v0), &d1 = (v2-v1);
|
// const aiVector3D& d0 = (v1-v0), &d1 = (v2-v1);
|
||||||
|
@ -1154,28 +1148,20 @@ next_loop:
|
||||||
void ProcessConnectedFaceSet(const IFC::IfcConnectedFaceSet& fset, TempMesh& result, ConversionData& conv)
|
void ProcessConnectedFaceSet(const IFC::IfcConnectedFaceSet& fset, TempMesh& result, ConversionData& conv)
|
||||||
{
|
{
|
||||||
BOOST_FOREACH(const IFC::IfcFace& face, fset.CfsFaces) {
|
BOOST_FOREACH(const IFC::IfcFace& face, fset.CfsFaces) {
|
||||||
<<<<<<< HEAD
|
|
||||||
size_t ob = -1, cnt = 0;
|
|
||||||
=======
|
|
||||||
// size_t ob = -1, cnt = 0;
|
// size_t ob = -1, cnt = 0;
|
||||||
>>>>>>> 320a7a7a7e0422e4d8d9c2a22b74cb48f74b14ce
|
|
||||||
TempMesh meshout;
|
TempMesh meshout;
|
||||||
BOOST_FOREACH(const IFC::IfcFaceBound& bound, face.Bounds) {
|
BOOST_FOREACH(const IFC::IfcFaceBound& bound, face.Bounds) {
|
||||||
|
|
||||||
// XXX implement proper merging for polygonal loops
|
// XXX implement proper merging for polygonal loops
|
||||||
if(const IFC::IfcPolyLoop* const polyloop = bound.Bound->ToPtr<IFC::IfcPolyLoop>()) {
|
if(const IFC::IfcPolyLoop* const polyloop = bound.Bound->ToPtr<IFC::IfcPolyLoop>()) {
|
||||||
if(ProcessPolyloop(*polyloop, meshout,conv)) {
|
if(ProcessPolyloop(*polyloop, meshout,conv)) {
|
||||||
<<<<<<< HEAD
|
|
||||||
if(bound.ToPtr<IFC::IfcFaceOuterBound>()) {
|
|
||||||
ob = cnt;
|
|
||||||
}
|
|
||||||
++cnt;
|
|
||||||
=======
|
|
||||||
//if(bound.ToPtr<IFC::IfcFaceOuterBound>()) {
|
//if(bound.ToPtr<IFC::IfcFaceOuterBound>()) {
|
||||||
// ob = cnt;
|
// ob = cnt;
|
||||||
//}
|
//}
|
||||||
//++cnt;
|
//++cnt;
|
||||||
>>>>>>> 320a7a7a7e0422e4d8d9c2a22b74cb48f74b14ce
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
@ -1654,11 +1640,8 @@ void InsertWindowContours(const std::vector< BoundingBox >& bbs,const std::vecto
|
||||||
}
|
}
|
||||||
|
|
||||||
if (hit) {
|
if (hit) {
|
||||||
<<<<<<< HEAD
|
|
||||||
if (last_hit != -1) {
|
|
||||||
=======
|
|
||||||
if (last_hit != (size_t)-1) {
|
if (last_hit != (size_t)-1) {
|
||||||
>>>>>>> 320a7a7a7e0422e4d8d9c2a22b74cb48f74b14ce
|
|
||||||
const size_t old = curmesh.verts.size();
|
const size_t old = curmesh.verts.size();
|
||||||
size_t cnt = last_hit > n ? size-(last_hit-n) : n-last_hit;
|
size_t cnt = last_hit > n ? size-(last_hit-n) : n-last_hit;
|
||||||
for(size_t a = last_hit, e = 0; e <= cnt; a=(a+1)%size, ++e) {
|
for(size_t a = last_hit, e = 0; e <= cnt; a=(a+1)%size, ++e) {
|
||||||
|
@ -1750,11 +1733,9 @@ bool TryAddOpenings_Quadrulate(const std::vector<TempOpening>& openings,const st
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
<<<<<<< HEAD
|
|
||||||
const aiVector3D diff = t.extrusionDir;
|
|
||||||
=======
|
|
||||||
// const aiVector3D diff = t.extrusionDir;
|
// const aiVector3D diff = t.extrusionDir;
|
||||||
>>>>>>> 320a7a7a7e0422e4d8d9c2a22b74cb48f74b14ce
|
|
||||||
const std::vector<aiVector3D>& va = t.profileMesh->verts;
|
const std::vector<aiVector3D>& va = t.profileMesh->verts;
|
||||||
if(va.size() <= 2) {
|
if(va.size() <= 2) {
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -1867,11 +1867,12 @@ template <> size_t GenericFill<IfcColumn>(const DB& db, const LIST& params, IfcC
|
||||||
// this data structure is not used yet, so there is no code generated to fill its members
|
// this data structure is not used yet, so there is no code generated to fill its members
|
||||||
return base;
|
return base;
|
||||||
}
|
}
|
||||||
|
// -----------------------------------------------------------------------------------------------------------
|
||||||
template <> size_t GenericFill<IfcObjectPlacement>(const DB& /*db*/, const LIST& params, IfcObjectPlacement* /*in*/)
|
template <> size_t GenericFill<IfcObjectPlacement>(const DB& /*db*/, const LIST& params, IfcObjectPlacement* /*in*/)
|
||||||
>>>>>>> 320a7a7a7e0422e4d8d9c2a22b74cb48f74b14ce
|
|
||||||
{
|
{
|
||||||
size_t base = 0;
|
size_t base = 0;
|
||||||
if (params.GetSize() < 0) { throw STEP::TypeError("expected 0 arguments to IfcObjectPlacement"); } return base;
|
if (params.GetSize() < 0) { throw STEP::TypeError("expected 0 arguments to IfcObjectPlacement"); }
|
||||||
|
return base;
|
||||||
}
|
}
|
||||||
// -----------------------------------------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------------------------------------
|
||||||
template <> size_t GenericFill<IfcGridPlacement>(const DB& db, const LIST& params, IfcGridPlacement* in)
|
template <> size_t GenericFill<IfcGridPlacement>(const DB& db, const LIST& params, IfcGridPlacement* in)
|
||||||
|
|
Loading…
Reference in New Issue