Skip to content

Commit e09f05d

Browse files
committed
typedef carve::geom::vector<3> to vec3
fix in CMakeLists.txt for carve
1 parent 711c68b commit e09f05d

16 files changed

+526
-465
lines changed

Carve/CMakeLists.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,6 @@ SET(CARVE_SOURCE_FILES
5757
src/lib/shewchuk_predicates.cpp
5858
src/lib/tag.cpp
5959
src/lib/timing.cpp
60-
src/lib/triangle_intersection.cpp
6160
src/lib/triangulator.cpp
6261
src/common/geometry.cpp
6362
)

IfcPlusPlus/src/ifcpp/geometry/CSG_Adapter.h

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -164,11 +164,11 @@ namespace CSG_Adapter
164164
const carve::mesh::Vertex<3>* v2 = edge_i->v2();
165165
const carve::mesh::Vertex<3>* v3 = edge_next->v2();
166166

167-
const carve::geom::vector<3>& v1vec = v1->v;
168-
const carve::geom::vector<3>& v2vec = v2->v;
169-
const carve::geom::vector<3>& v3vec = v3->v;
170-
carve::geom::vector<3> sement12 = v2vec - v1vec;
171-
carve::geom::vector<3> sement23 = v3vec - v2vec;
167+
const vec3& v1vec = v1->v;
168+
const vec3& v2vec = v2->v;
169+
const vec3& v3vec = v3->v;
170+
vec3 sement12 = v2vec - v1vec;
171+
vec3 sement23 = v3vec - v2vec;
172172
double sement12_length2 = sement12.length2();
173173
double sement23_length2 = sement23.length2();
174174
#ifdef _DEBUG
@@ -232,8 +232,8 @@ namespace CSG_Adapter
232232
{
233233
// edges are not in line, so faces should be in a plane
234234
#ifdef _DEBUG
235-
const carve::geom::vector<3>& normal_face_i = edge_i->face->plane.N;
236-
const carve::geom::vector<3>& normal_face_i_rev = edge_i->rev->face->plane.N;
235+
const vec3& normal_face_i = edge_i->face->plane.N;
236+
const vec3& normal_face_i_rev = edge_i->rev->face->plane.N;
237237

238238

239239
double dot_face_angle = dot( normal_face_i, normal_face_i_rev );
@@ -544,8 +544,8 @@ namespace CSG_Adapter
544544
face_t* face = edge->face;
545545
face_t* face_reverse = edge_reverse->face;
546546

547-
carve::geom::vector<3>& face_normal = face->plane.N;
548-
carve::geom::vector<3>& face_reverse_normal = face_reverse->plane.N;
547+
vec3& face_normal = face->plane.N;
548+
vec3& face_reverse_normal = face_reverse->plane.N;
549549

550550
const double cos_angle = dot( face_normal, face_reverse_normal );
551551
if( std::abs( cos_angle + 1.0 ) > 0.000001 )
@@ -626,7 +626,7 @@ namespace CSG_Adapter
626626

627627
//carve::geom3d::Vector normal = face->plane.N;
628628

629-
std::vector<carve::geom::vector<2> > verts2d;
629+
std::vector<vec2 > verts2d;
630630
face->getProjectedVertices( verts2d );
631631
if( verts2d.size() < 3 )
632632
{
@@ -666,7 +666,7 @@ namespace CSG_Adapter
666666
edge_t* edge = face->edge;
667667
do
668668
{
669-
const carve::geom::vector<3>& v = edge->vert->v;
669+
const vec3& v = edge->vert->v;
670670
edge = edge->next;
671671
int vertex_index = poly_cache.addPoint( v );
672672
map_merged_idx[i_vert] = vertex_index;
@@ -926,18 +926,18 @@ namespace CSG_Adapter
926926
// TODO: Subclass from carve::mesh::MeshSet and add attribute to remember which meshset has already been simplified.
927927

928928
// check if meshset aabb is far away from origin. if so, move to origin, compute, move back
929-
carve::geom::vector<3> translate_avoid_large_numbers;
929+
vec3 translate_avoid_large_numbers;
930930
const carve::geom::aabb<3>& aabb_op1 = op1->getAABB();
931931
if( aabb_op1.pos.length2() > 10000 )
932932
{
933933
const carve::geom::aabb<3>& aabb_op2 = op2->getAABB();
934934

935935
if( aabb_op2.pos.length2() > 10000 )
936936
{
937-
carve::geom::vector<3> aabb_op1_direction( aabb_op1.pos );
937+
vec3 aabb_op1_direction( aabb_op1.pos );
938938
aabb_op1_direction.normalize();
939939

940-
carve::geom::vector<3> aabb_op2_direction( aabb_op2.pos );
940+
vec3 aabb_op2_direction( aabb_op2.pos );
941941
aabb_op2_direction.normalize();
942942

943943
double cos_angle = dot( aabb_op1_direction, aabb_op2_direction );

IfcPlusPlus/src/ifcpp/geometry/ConverterOSG.h

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ class ConverterOSG : public StatusCallback
5858
#ifdef _DEBUG
5959
std::cout << "not triangulated" << std::endl;
6060
#endif
61-
std::vector<carve::geom::vector<3> > face_vertices;
61+
std::vector<vec3 > face_vertices;
6262
face_vertices.resize( face->nVertices() );
6363
carve::mesh::Edge<3> *e = face->edge;
6464
const size_t num_vertices = face->nVertices();
@@ -73,7 +73,7 @@ class ConverterOSG : public StatusCallback
7373
std::cout << "drawFace is meant only for num vertices > 4" << std::endl;
7474
}
7575

76-
carve::geom::vector<3> * vertex_vec;
76+
vec3 * vertex_vec;
7777
osg::Vec3Array* vertices = new osg::Vec3Array( num_vertices );
7878
if( !vertices ) { throw IfcPPOutOfMemoryException(); }
7979
osg::ref_ptr<osg::DrawElementsUInt> triangles = new osg::DrawElementsUInt( osg::PrimitiveSet::POLYGON, num_vertices );
@@ -177,7 +177,7 @@ class ConverterOSG : public StatusCallback
177177
{
178178
carve::mesh::Face<3>* face = mesh->faces[i_face];
179179
// compute area of projected face:
180-
std::vector<carve::geom::vector<2> > projected;
180+
std::vector<vec2 > projected;
181181
face->getProjectedVertices( projected );
182182
double face_area = carve::geom2d::signedArea( projected );
183183
map_face_area[face] = abs( face_area );
@@ -199,15 +199,15 @@ class ConverterOSG : public StatusCallback
199199
drawFace( face, geode );
200200
continue;
201201
}
202-
const carve::geom::vector<3> face_normal = face->plane.N;
202+
const vec3 face_normal = face->plane.N;
203203

204204
if( crease_angle > 0 )
205205
{
206206
carve::mesh::Edge<3>* e = face->edge;
207207
for( size_t jj = 0; jj < n_vertices; ++jj )
208208
{
209209
carve::mesh::Vertex<3>* vertex = e->vert;
210-
carve::geom::vector<3> intermediate_normal;
210+
vec3 intermediate_normal;
211211

212212
// collect all faces at vertex
213213
// | ^
@@ -238,7 +238,7 @@ class ConverterOSG : public StatusCallback
238238
break;
239239
}
240240

241-
carve::geom::vector<3> f1_normal = f1->plane.N;
241+
vec3 f1_normal = f1->plane.N;
242242
const double cos_angle = dot( f1_normal, face_normal );
243243
if( cos_angle > 0 )
244244
{
@@ -289,7 +289,7 @@ class ConverterOSG : public StatusCallback
289289
intermediate_normal *= 1.0 / intermediate_normal_length;
290290
}
291291

292-
const carve::geom::vector<3>& vertex_v = vertex->v;
292+
const vec3& vertex_v = vertex->v;
293293
if( face->n_edges == 3 )
294294
{
295295
vertices_tri->push_back( osg::Vec3( vertex_v.x, vertex_v.y, vertex_v.z ) );
@@ -311,7 +311,7 @@ class ConverterOSG : public StatusCallback
311311
for( size_t jj = 0; jj < n_vertices; ++jj )
312312
{
313313
carve::mesh::Vertex<3>* vertex = e->vert;
314-
const carve::geom::vector<3>& vertex_v = vertex->v;
314+
const vec3& vertex_v = vertex->v;
315315

316316
if( face->n_edges == 3 )
317317
{
@@ -745,7 +745,7 @@ class ConverterOSG : public StatusCallback
745745
osg::Vec3Array* vertices = new osg::Vec3Array();
746746
for( size_t i_pointset_point = 0; i_pointset_point < pointset_data->points.size(); ++i_pointset_point )
747747
{
748-
carve::geom::vector<3>& carve_point = pointset_data->points[i_pointset_point];
748+
vec3& carve_point = pointset_data->points[i_pointset_point];
749749
vertices->push_back( osg::Vec3d( carve_point.x, carve_point.y, carve_point.z ) );
750750
}
751751

IfcPlusPlus/src/ifcpp/geometry/CurveConverter.h

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -72,40 +72,40 @@ class CurveConverter : public StatusCallback
7272
{
7373
}
7474

75-
void convertIfcCurve2D( const shared_ptr<IfcCurve>& ifc_curve, std::vector<carve::geom::vector<2> >& loops, std::vector<carve::geom::vector<2> >& segment_start_points ) const
75+
void convertIfcCurve2D( const shared_ptr<IfcCurve>& ifc_curve, std::vector<vec2 >& loops, std::vector<vec2 >& segment_start_points ) const
7676
{
7777
std::vector<shared_ptr<IfcTrimmingSelect> > trim1_vec;
7878
std::vector<shared_ptr<IfcTrimmingSelect> > trim2_vec;
7979
convertIfcCurve2D( ifc_curve, loops, segment_start_points, trim1_vec, trim2_vec, true );
8080
}
8181

82-
void convertIfcCurve2D( const shared_ptr<IfcCurve>& ifc_curve, std::vector<carve::geom::vector<2> >& target_vec, std::vector<carve::geom::vector<2> >& segment_start_points,
82+
void convertIfcCurve2D( const shared_ptr<IfcCurve>& ifc_curve, std::vector<vec2 >& target_vec, std::vector<vec2 >& segment_start_points,
8383
std::vector<shared_ptr<IfcTrimmingSelect> >& trim1_vec, std::vector<shared_ptr<IfcTrimmingSelect> >& trim2_vec, bool sense_agreement ) const
8484
{
85-
std::vector<carve::geom::vector<3> > target_vec_3d;
86-
std::vector<carve::geom::vector<3> > segment_start_points_3d;
85+
std::vector<vec3 > target_vec_3d;
86+
std::vector<vec3 > segment_start_points_3d;
8787
convertIfcCurve( ifc_curve, target_vec_3d, segment_start_points_3d, trim1_vec, trim2_vec, sense_agreement );
8888

8989
for( size_t i = 0; i < target_vec_3d.size(); ++i )
9090
{
91-
carve::geom::vector<3>& point_3d = target_vec_3d[i];
91+
vec3& point_3d = target_vec_3d[i];
9292
target_vec.push_back( carve::geom::VECTOR( point_3d.x, point_3d.y ) );
9393
}
9494
for( size_t i = 0; i < segment_start_points_3d.size(); ++i )
9595
{
96-
carve::geom::vector<3>& point_3d = segment_start_points_3d[i];
96+
vec3& point_3d = segment_start_points_3d[i];
9797
segment_start_points.push_back( carve::geom::VECTOR( point_3d.x, point_3d.y ) );
9898
}
9999
}
100100

101-
void convertIfcCurve( const shared_ptr<IfcCurve>& ifc_curve, std::vector<carve::geom::vector<3> >& loops, std::vector<carve::geom::vector<3> >& segment_start_points ) const
101+
void convertIfcCurve( const shared_ptr<IfcCurve>& ifc_curve, std::vector<vec3 >& loops, std::vector<vec3 >& segment_start_points ) const
102102
{
103103
std::vector<shared_ptr<IfcTrimmingSelect> > trim1_vec;
104104
std::vector<shared_ptr<IfcTrimmingSelect> > trim2_vec;
105105
convertIfcCurve( ifc_curve, loops, segment_start_points, trim1_vec, trim2_vec, true );
106106
}
107107

108-
void convertIfcCurve( const shared_ptr<IfcCurve>& ifc_curve, std::vector<carve::geom::vector<3> >& target_vec, std::vector<carve::geom::vector<3> >& segment_start_points,
108+
void convertIfcCurve( const shared_ptr<IfcCurve>& ifc_curve, std::vector<vec3 >& target_vec, std::vector<vec3 >& segment_start_points,
109109
std::vector<shared_ptr<IfcTrimmingSelect> >& trim1_vec, std::vector<shared_ptr<IfcTrimmingSelect> >& trim2_vec, bool sense_agreement ) const
110110
{
111111
double length_factor = m_unit_converter->getLengthInMeterFactor();
@@ -124,7 +124,7 @@ class CurveConverter : public StatusCallback
124124
shared_ptr<IfcCompositeCurveSegment> segement = vec_segements[i_segments];
125125
shared_ptr<IfcCurve> segement_curve = segement->m_ParentCurve;
126126

127-
std::vector<carve::geom::vector<3> > segment_vec;
127+
std::vector<vec3 > segment_vec;
128128
convertIfcCurve( segement_curve, segment_vec, segment_start_points );
129129
if( segment_vec.size() > 0 )
130130
{
@@ -154,7 +154,7 @@ class CurveConverter : public StatusCallback
154154
if( trimmed_curve )
155155
{
156156
shared_ptr<IfcCurve> basis_curve = trimmed_curve->m_BasisCurve;
157-
std::vector<carve::geom::vector<3> > basis_curve_points;
157+
std::vector<vec3 > basis_curve_points;
158158
std::vector<shared_ptr<IfcTrimmingSelect> >& curve_trim1_vec = trimmed_curve->m_Trim1;
159159
std::vector<shared_ptr<IfcTrimmingSelect> >& curve_trim2_vec = trimmed_curve->m_Trim2;
160160
bool trimmed_sense_agreement = trimmed_curve->m_SenseAgreement->m_value;
@@ -204,7 +204,7 @@ class CurveConverter : public StatusCallback
204204
circle_radius = circle->m_Radius->m_value*length_factor;
205205
}
206206

207-
carve::geom::vector<3> circle_center = conic_position_matrix*carve::geom::VECTOR( 0, 0, 0 );
207+
vec3 circle_center = conic_position_matrix*carve::geom::VECTOR( 0, 0, 0 );
208208

209209
double trim_angle1 = 0.0;
210210
double trim_angle2 = M_PI*2.0;
@@ -235,7 +235,7 @@ class CurveConverter : public StatusCallback
235235
shared_ptr<IfcCartesianPoint> trim_point1;
236236
if( GeomUtils::findFirstInVector( trim1_vec, trim_point1 ) )
237237
{
238-
carve::geom::vector<3> trim_point;
238+
vec3 trim_point;
239239
PointConverter::convertIfcCartesianPoint( trim_point1, trim_point, length_factor );
240240
// TODO: get direction of trim_point to circle_center, get angle. This is more robust in case the trim_point is not exactly on the circle
241241
trim_angle1 = m_point_converter->getAngleOnCircle( circle_center, circle_radius, trim_point );
@@ -268,7 +268,7 @@ class CurveConverter : public StatusCallback
268268
shared_ptr<IfcCartesianPoint> ifc_trim_point;
269269
if( GeomUtils::findFirstInVector( trim2_vec, ifc_trim_point ) )
270270
{
271-
carve::geom::vector<3> trim_point;
271+
vec3 trim_point;
272272
PointConverter::convertIfcCartesianPoint( ifc_trim_point, trim_point, length_factor );
273273
trim_angle2 = m_point_converter->getAngleOnCircle( circle_center, circle_radius, trim_point );
274274
}
@@ -322,7 +322,7 @@ class CurveConverter : public StatusCallback
322322
if( num_segments < m_geom_settings->getMinNumVerticesPerArc() ) num_segments = m_geom_settings->getMinNumVerticesPerArc();
323323
const double circle_center_x = 0.0;
324324
const double circle_center_y = 0.0;
325-
std::vector<carve::geom::vector<2> > circle_points;
325+
std::vector<vec2 > circle_points;
326326
if( circle_radius > 0.0 )
327327
{
328328
GeomUtils::addArcWithEndPoint( circle_points, circle_radius, start_angle, opening_angle, circle_center_x, circle_center_y, num_segments );
@@ -337,8 +337,8 @@ class CurveConverter : public StatusCallback
337337
// apply position
338338
for( size_t i = 0; i < circle_points.size(); ++i )
339339
{
340-
carve::geom::vector<2>& point = circle_points[i];
341-
carve::geom::vector<3> point3d( carve::geom::VECTOR( point.x, point.y, 0 ) );
340+
vec2& point = circle_points[i];
341+
vec3 point3d( carve::geom::VECTOR( point.x, point.y, 0 ) );
342342
point3d = conic_position_matrix * point3d;
343343
point.x = point3d.x;
344344
point.y = point3d.y;
@@ -364,25 +364,25 @@ class CurveConverter : public StatusCallback
364364

365365
// todo: implement clipping
366366

367-
std::vector<carve::geom::vector<3> > circle_points;
367+
std::vector<vec3 > circle_points;
368368
double angle = 0;
369369
for( int i = 0; i < num_segments; ++i )
370370
{
371-
circle_points.push_back( carve::geom::vector<3>( carve::geom::VECTOR( x_radius * cos( angle ), y_radius * sin( angle ), 0 ) ) );
371+
circle_points.push_back( vec3( carve::geom::VECTOR( x_radius * cos( angle ), y_radius * sin( angle ), 0 ) ) );
372372
angle += 2.0*M_PI / double( num_segments );
373373
}
374374

375375
// apply position
376376
for( size_t i = 0; i < circle_points.size(); ++i )
377377
{
378-
carve::geom::vector<3>& point = circle_points[i];
378+
vec3& point = circle_points[i];
379379
point = conic_position_matrix * point;
380380
}
381381
GeomUtils::appendPointsToCurve( circle_points, target_vec );
382382

383383
//if( segment_start_points != nullptr )
384384
{
385-
carve::geom::vector<3> pt0 = circle_points[0];
385+
vec3 pt0 = circle_points[0];
386386
segment_start_points.push_back( pt0 );
387387
}
388388
}
@@ -396,7 +396,7 @@ class CurveConverter : public StatusCallback
396396
if( line )
397397
{
398398
shared_ptr<IfcCartesianPoint> ifc_line_point = line->m_Pnt;
399-
carve::geom::vector<3> line_origin;
399+
vec3 line_origin;
400400
if( PointConverter::convertIfcCartesianPoint( ifc_line_point, line_origin, length_factor ) )
401401
{
402402
// line: lambda(u) = line_point + u*line_direction
@@ -408,7 +408,7 @@ class CurveConverter : public StatusCallback
408408
shared_ptr<IfcDirection> ifc_line_direction = line_vec->m_Orientation;
409409

410410
std::vector<shared_ptr<IfcReal> >& direction_ratios = ifc_line_direction->m_DirectionRatios;
411-
carve::geom::vector<3> line_direction;
411+
vec3 line_direction;
412412
if( direction_ratios.size() > 1 )
413413
{
414414
if( direction_ratios.size() > 2 )
@@ -438,10 +438,10 @@ class CurveConverter : public StatusCallback
438438
shared_ptr<IfcCartesianPoint> ifc_trim_point;
439439
if( GeomUtils::findFirstInVector( trim1_vec, ifc_trim_point ) )
440440
{
441-
carve::geom::vector<3> trim_point;
441+
vec3 trim_point;
442442
PointConverter::convertIfcCartesianPoint( ifc_trim_point, trim_point, length_factor );
443443

444-
carve::geom::vector<3> closest_point_on_line;
444+
vec3 closest_point_on_line;
445445
GeomUtils::closestPointOnLine( trim_point, line_origin, line_direction, closest_point_on_line );
446446

447447
if( ( closest_point_on_line - trim_point ).length() < 0.0001 )
@@ -452,7 +452,7 @@ class CurveConverter : public StatusCallback
452452
}
453453
}
454454
// check for trimming at end of line
455-
carve::geom::vector<3> line_end;
455+
vec3 line_end;
456456
shared_ptr<IfcParameterValue> trim_par2;
457457
if( GeomUtils::findFirstInVector( trim2_vec, trim_par2 ) )
458458
{
@@ -464,10 +464,10 @@ class CurveConverter : public StatusCallback
464464
shared_ptr<IfcCartesianPoint> ifc_trim_point;
465465
if( GeomUtils::findFirstInVector( trim2_vec, ifc_trim_point ) )
466466
{
467-
carve::geom::vector<3> trim_point;
467+
vec3 trim_point;
468468
PointConverter::convertIfcCartesianPoint( ifc_trim_point, trim_point, length_factor );
469469

470-
carve::geom::vector<3> closest_point_on_line;
470+
vec3 closest_point_on_line;
471471
GeomUtils::closestPointOnLine( trim_point, line_origin, line_direction, closest_point_on_line );
472472

473473
if( ( closest_point_on_line - trim_point ).length() < 0.0001 )
@@ -478,7 +478,7 @@ class CurveConverter : public StatusCallback
478478
}
479479
}
480480

481-
std::vector<carve::geom::vector<3> > points_vec;
481+
std::vector<vec3 > points_vec;
482482
points_vec.push_back( line_origin );
483483
points_vec.push_back( line_end );
484484

@@ -517,12 +517,12 @@ class CurveConverter : public StatusCallback
517517
}
518518

519519

520-
void convertIfcPolyline( const shared_ptr<IfcPolyline>& poly_line, std::vector<carve::geom::vector<3> >& loop ) const
520+
void convertIfcPolyline( const shared_ptr<IfcPolyline>& poly_line, std::vector<vec3 >& loop ) const
521521
{
522522
m_point_converter->convertIfcCartesianPointVector( poly_line->m_Points, loop );
523523
}
524524

525-
void convertIfcLoop( const shared_ptr<IfcLoop>& loop, std::vector<carve::geom::vector<3> >& loop_points ) const
525+
void convertIfcLoop( const shared_ptr<IfcLoop>& loop, std::vector<vec3 >& loop_points ) const
526526
{
527527
const shared_ptr<IfcPolyLoop> poly_loop = dynamic_pointer_cast<IfcPolyLoop>( loop );
528528
if( poly_loop )

0 commit comments

Comments
 (0)