Skip to content

Commit 118636e

Browse files
committed
Improved viewer application. Added reading styles of boolean operands
1 parent 6188708 commit 118636e

23 files changed

+287
-2418
lines changed

IfcPlusPlus/CMakeLists.txt

-1
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,6 @@ TARGET_INCLUDE_DIRECTORIES(IfcPlusPlus
9292
${IFCPP_SOURCE_DIR}/IfcPlusPlus/src/external/glm
9393
)
9494

95-
9695
set_target_properties(IfcPlusPlus PROPERTIES DEBUG_POSTFIX "d")
9796
set_target_properties(IfcPlusPlus PROPERTIES CXX_STANDARD 17)
9897

IfcPlusPlus/src/ifcpp/geometry/CurveConverter.h

+132-129
Large diffs are not rendered by default.

IfcPlusPlus/src/ifcpp/geometry/GeomUtils.h

+8-4
Original file line numberDiff line numberDiff line change
@@ -1165,6 +1165,10 @@ namespace GeomUtils
11651165
inline bool isPolygonSelfIntersecting(const std::vector<vec2>& polygon, double eps)
11661166
{
11671167
size_t numPoints = polygon.size();
1168+
if (numPoints < 4)
1169+
{
1170+
return false;
1171+
}
11681172
for (int ii = 0; ii < numPoints; ++ii)
11691173
{
11701174
const vec2& p1 = polygon[ii];
@@ -1456,10 +1460,10 @@ namespace GeomUtils
14561460
vec3& point = meshset->vertex_storage[i].v;
14571461
point = point + pos;
14581462
}
1459-
for (size_t i = 0; i < meshset->meshes.size(); ++i)
1460-
{
1461-
meshset->meshes[i]->recalc(eps);
1462-
}
1463+
//for (size_t i = 0; i < meshset->meshes.size(); ++i)
1464+
//{
1465+
// meshset->meshes[i]->recalc(eps);
1466+
//}
14631467
}
14641468
inline void applyTransform(shared_ptr<carve::mesh::MeshSet<3> >& meshset, const carve::math::Matrix& matrix, double eps)
14651469
{

IfcPlusPlus/src/ifcpp/geometry/GeometryConverter.h

+1
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ class GeometryConverter : public StatusCallback
115115
shared_ptr<BuildingModel>& getBuildingModel() { return m_ifc_model; }
116116
shared_ptr<RepresentationConverter>& getRepresentationConverter() { return m_representation_converter; }
117117
shared_ptr<GeometrySettings>& getGeomSettings() { return m_geom_settings; }
118+
void setGeomSettings(shared_ptr<GeometrySettings>& settings) { m_geom_settings = settings; }
118119
std::map<std::string, shared_ptr<ProductShapeData> >& getShapeInputData() { return m_product_shape_data; }
119120
std::map<std::string, shared_ptr<BuildingObject> >& getObjectsOutsideSpatialStructure() { return m_map_outside_spatial_structure; }
120121
bool m_clear_memory_immedeately = true;

IfcPlusPlus/src/ifcpp/geometry/PointConverter.h

+3-4
Original file line numberDiff line numberDiff line change
@@ -287,8 +287,8 @@ class PointConverter : public StatusCallback
287287
while (angle < -2.0 * M_PI) { angle += 2.0 * M_PI; }
288288
vec3 circlePoint = carve::geom::VECTOR(radius * cos(angle), radius * sin(angle), 0);
289289
circlePoint = circlePosition * circlePoint;
290-
double distance2 = (trimPoint - circlePoint).length2();
291-
return distance2;
290+
double distance = (trimPoint - circlePoint).length();
291+
return distance;
292292
}
293293

294294
//\brief: returns the corresponding angle in radian. angle 0 is on the positive x-axis.
@@ -328,8 +328,7 @@ class PointConverter : public StatusCallback
328328
}
329329
}
330330

331-
vec3 translation = circlePosition * carve::geom::VECTOR(0, 0, 0);
332-
if ((translation - circleCenter).length() > eps * 10)
331+
if ((circleCenter3D - circleCenter).length() > eps * 10)
333332
{
334333
std::cout << __FUNCTION__ << ": circle center not at (0,0,0)" << std::endl;
335334
}

IfcPlusPlus/src/ifcpp/geometry/RepresentationConverter.h

+35-35
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ class RepresentationConverter : public StatusCallback
9494
m_curve_converter = shared_ptr<CurveConverter>( new CurveConverter( m_geom_settings, m_placement_converter, m_point_converter, m_spline_converter ) );
9595
m_profile_cache = shared_ptr<ProfileCache>( new ProfileCache( m_curve_converter, m_spline_converter ) );
9696
m_face_converter = shared_ptr<FaceConverter>( new FaceConverter( m_geom_settings, m_unit_converter, m_curve_converter, m_spline_converter, m_sweeper, m_profile_cache ) );
97-
m_solid_converter = shared_ptr<SolidModelConverter>( new SolidModelConverter( m_geom_settings, m_point_converter, m_curve_converter, m_face_converter, m_profile_cache, m_sweeper ) );
97+
m_solid_converter = shared_ptr<SolidModelConverter>( new SolidModelConverter( m_geom_settings, m_point_converter, m_curve_converter, m_face_converter, m_profile_cache, m_sweeper, m_styles_converter ) );
9898

9999
// this redirects the callback messages from all converters to RepresentationConverter's callback
100100
m_styles_converter->setMessageTarget( this );
@@ -139,59 +139,59 @@ class RepresentationConverter : public StatusCallback
139139
m_face_converter->m_unit_converter = unit_converter;
140140
}
141141

142-
void convertRepresentationStyle( const shared_ptr<IfcRepresentationItem>& representation_item, std::vector<shared_ptr<StyleData> >& vec_style_data )
142+
//void convertRepresentationStyle( const shared_ptr<IfcRepresentationItem>& representation_item, std::vector<shared_ptr<StyleData> >& vec_style_data )
143+
//{
144+
// std::vector<weak_ptr<IfcStyledItem> >& vec_StyledByItem_inverse = representation_item->m_StyledByItem_inverse;
145+
// for( size_t i = 0; i < vec_StyledByItem_inverse.size(); ++i )
146+
// {
147+
// weak_ptr<IfcStyledItem> styled_item_weak = vec_StyledByItem_inverse[i];
148+
// shared_ptr<IfcStyledItem> styled_item = shared_ptr<IfcStyledItem>( styled_item_weak );
149+
// m_styles_converter->convertIfcStyledItem( styled_item, vec_style_data );
150+
// }
151+
//}
152+
153+
void convertIfcRepresentation( const shared_ptr<IfcRepresentation>& ifcRepresentation, shared_ptr<ItemShapeData>& representationData )
143154
{
144-
std::vector<weak_ptr<IfcStyledItem> >& vec_StyledByItem_inverse = representation_item->m_StyledByItem_inverse;
145-
for( size_t i = 0; i < vec_StyledByItem_inverse.size(); ++i )
146-
{
147-
weak_ptr<IfcStyledItem> styled_item_weak = vec_StyledByItem_inverse[i];
148-
shared_ptr<IfcStyledItem> styled_item = shared_ptr<IfcStyledItem>( styled_item_weak );
149-
m_styles_converter->convertIfcStyledItem( styled_item, vec_style_data );
150-
}
151-
}
155+
representationData->m_ifc_representation = ifcRepresentation;
152156

153-
void convertIfcRepresentation( const shared_ptr<IfcRepresentation>& ifc_representation, shared_ptr<ItemShapeData>& representation_data )
154-
{
155-
representation_data->m_ifc_representation = ifc_representation;
156-
157-
for( const shared_ptr<IfcRepresentationItem>& representation_item : ifc_representation->m_Items )
157+
for( const shared_ptr<IfcRepresentationItem>& representationItem : ifcRepresentation->m_Items )
158158
{
159159
//ENTITY IfcRepresentationItem ABSTRACT SUPERTYPE OF(ONEOF(IfcGeometricRepresentationItem, IfcMappedItem, IfcStyledItem, IfcTopologicalRepresentationItem));
160-
shared_ptr<IfcGeometricRepresentationItem> geom_item = dynamic_pointer_cast<IfcGeometricRepresentationItem>( representation_item );
161-
if( geom_item )
160+
shared_ptr<IfcGeometricRepresentationItem> geomItem = dynamic_pointer_cast<IfcGeometricRepresentationItem>( representationItem );
161+
if( geomItem )
162162
{
163-
shared_ptr<ItemShapeData> geom_item_data( new ItemShapeData() );
163+
shared_ptr<ItemShapeData> geomItemData( new ItemShapeData() );
164164

165165
try
166166
{
167-
convertIfcGeometricRepresentationItem( geom_item, geom_item_data );
168-
representation_data->addGeometricChildItem(geom_item_data, representation_data);
167+
convertIfcGeometricRepresentationItem( geomItem, geomItemData );
168+
representationData->addGeometricChildItem(geomItemData, representationData);
169169
}
170170
catch( BuildingException& e )
171171
{
172-
messageCallback( e.what(), StatusCallback::MESSAGE_TYPE_ERROR, "", representation_item.get() );
172+
messageCallback( e.what(), StatusCallback::MESSAGE_TYPE_ERROR, "", representationItem.get() );
173173
}
174174
catch( std::exception& e )
175175
{
176-
messageCallback( e.what(), StatusCallback::MESSAGE_TYPE_ERROR, __FUNC__, representation_item.get() );
176+
messageCallback( e.what(), StatusCallback::MESSAGE_TYPE_ERROR, __FUNC__, representationItem.get() );
177177
}
178178

179179
continue;
180180
}
181181

182-
shared_ptr<IfcMappedItem> mapped_item = dynamic_pointer_cast<IfcMappedItem>( representation_item );
182+
shared_ptr<IfcMappedItem> mapped_item = dynamic_pointer_cast<IfcMappedItem>( representationItem );
183183
if( mapped_item )
184184
{
185185
shared_ptr<IfcRepresentationMap> map_source = mapped_item->m_MappingSource;
186186
if( !map_source )
187187
{
188-
messageCallback( "MappingSource not valid", StatusCallback::MESSAGE_TYPE_WARNING, __FUNC__, representation_item.get() );
188+
messageCallback( "MappingSource not valid", StatusCallback::MESSAGE_TYPE_WARNING, __FUNC__, representationItem.get() );
189189
continue;
190190
}
191191
shared_ptr<IfcRepresentation> mapped_representation = map_source->m_MappedRepresentation;
192192
if( !mapped_representation )
193193
{
194-
messageCallback( "MappingSource.MappedRepresentation not valid", StatusCallback::MESSAGE_TYPE_WARNING, __FUNC__, representation_item.get() );
194+
messageCallback( "MappingSource.MappedRepresentation not valid", StatusCallback::MESSAGE_TYPE_WARNING, __FUNC__, representationItem.get() );
195195
continue;
196196
}
197197

@@ -237,7 +237,7 @@ class RepresentationConverter : public StatusCallback
237237
if( m_geom_settings->handleStyledItems() )
238238
{
239239
std::vector<shared_ptr<StyleData> > vec_style_data;
240-
convertRepresentationStyle( representation_item, vec_style_data );
240+
m_styles_converter->convertRepresentationStyle( representationItem, vec_style_data );
241241

242242
if( vec_style_data.size() > 0 )
243243
{
@@ -258,32 +258,32 @@ class RepresentationConverter : public StatusCallback
258258
double eps = m_geom_settings->getEpsilonMergePoints();
259259
mapped_input_data->applyTransformToItem(mapped_pos, eps, false);
260260
}
261-
representation_data->addGeometricChildItem( mapped_input_data, representation_data );
261+
representationData->addGeometricChildItem( mapped_input_data, representationData );
262262
continue;
263263
}
264264

265-
shared_ptr<IfcStyledItem> styled_item = dynamic_pointer_cast<IfcStyledItem>( representation_item );
265+
shared_ptr<IfcStyledItem> styled_item = dynamic_pointer_cast<IfcStyledItem>( representationItem );
266266
if( styled_item )
267267
{
268268
continue;
269269
}
270270

271-
shared_ptr<IfcTopologicalRepresentationItem> topo_item = dynamic_pointer_cast<IfcTopologicalRepresentationItem>( representation_item );
271+
shared_ptr<IfcTopologicalRepresentationItem> topo_item = dynamic_pointer_cast<IfcTopologicalRepresentationItem>( representationItem );
272272
if( topo_item )
273273
{
274274
shared_ptr<ItemShapeData> topological_item_data( new ItemShapeData() );
275-
representation_data->addGeometricChildItem( topological_item_data, representation_data );
275+
representationData->addGeometricChildItem( topological_item_data, representationData );
276276
//topological_item_data->m_ifc_representation_item = topo_item;
277277
convertTopologicalRepresentationItem(topo_item, topological_item_data);
278278
continue;
279279
}
280280

281-
messageCallback( "unhandled representation", StatusCallback::MESSAGE_TYPE_WARNING, __FUNC__, representation_item.get() );
281+
messageCallback( "unhandled representation", StatusCallback::MESSAGE_TYPE_WARNING, __FUNC__, representationItem.get() );
282282
}
283283

284284
if( m_geom_settings->handleLayerAssignments() )
285285
{
286-
std::vector<weak_ptr<IfcPresentationLayerAssignment> >& vec_layer_assignments_inverse = ifc_representation->m_LayerAssignments_inverse;
286+
std::vector<weak_ptr<IfcPresentationLayerAssignment> >& vec_layer_assignments_inverse = ifcRepresentation->m_LayerAssignments_inverse;
287287
for( size_t ii = 0; ii < vec_layer_assignments_inverse.size(); ++ii )
288288
{
289289
weak_ptr<IfcPresentationLayerAssignment>& layer_assignment_weak = vec_layer_assignments_inverse[ii];
@@ -314,7 +314,7 @@ class RepresentationConverter : public StatusCallback
314314
m_styles_converter->convertIfcPresentationStyle( presentation_style, style_data );
315315
if( style_data )
316316
{
317-
representation_data->addStyle( style_data );
317+
representationData->addStyle( style_data );
318318
}
319319
}
320320
}
@@ -347,7 +347,7 @@ class RepresentationConverter : public StatusCallback
347347
if( m_geom_settings->handleStyledItems() )
348348
{
349349
std::vector<shared_ptr<StyleData> > vec_style_data;
350-
convertRepresentationStyle( geom_item, vec_style_data );
350+
m_styles_converter->convertRepresentationStyle( geom_item, vec_style_data );
351351
for (auto& style : vec_style_data)
352352
{
353353
item_data->addStyle(style);
@@ -373,7 +373,7 @@ class RepresentationConverter : public StatusCallback
373373
m_solid_converter->convertIfcBooleanResult( boolean_result, item_data );
374374
return;
375375
}
376-
376+
377377
shared_ptr<IfcSolidModel> solid_model = dynamic_pointer_cast<IfcSolidModel>( geom_item );
378378
if( solid_model )
379379
{

IfcPlusPlus/src/ifcpp/geometry/SolidModelConverter.h

+21-2
Original file line numberDiff line numberDiff line change
@@ -66,11 +66,13 @@ class SolidModelConverter : public StatusCallback
6666
shared_ptr<CurveConverter> m_curve_converter;
6767
shared_ptr<FaceConverter> m_face_converter;
6868
shared_ptr<ProfileCache> m_profile_cache;
69+
shared_ptr<StylesConverter> m_styles_converter;
6970
shared_ptr<Sweeper> m_sweeper;
7071

7172
SolidModelConverter( shared_ptr<GeometrySettings>& gs, shared_ptr<PointConverter>& pc, shared_ptr<CurveConverter>& cc,
72-
shared_ptr<FaceConverter>& fc, shared_ptr<ProfileCache>& pcache, shared_ptr<Sweeper>& sw )
73-
: m_geom_settings( gs ), m_point_converter( pc ), m_curve_converter( cc ), m_face_converter( fc ), m_profile_cache( pcache ), m_sweeper( sw )
73+
shared_ptr<FaceConverter>& fc, shared_ptr<ProfileCache>& pcache, shared_ptr<Sweeper>& sw, shared_ptr<StylesConverter>& styles_converter )
74+
: m_geom_settings( gs ), m_point_converter( pc ), m_curve_converter( cc ), m_face_converter( fc ), m_profile_cache( pcache ),
75+
m_sweeper( sw ), m_styles_converter(styles_converter)
7476
{
7577
}
7678

@@ -863,6 +865,9 @@ class SolidModelConverter : public StatusCallback
863865
// now copy processed first operands to result input data
864866
std::copy( first_operand_data->m_meshsets.begin(), first_operand_data->m_meshsets.end(), std::back_inserter( item_data->m_meshsets ) );
865867

868+
// copy also styles from operands, if any
869+
std::copy(first_operand_data->m_vec_styles.begin(), first_operand_data->m_vec_styles.end(), std::back_inserter(item_data->m_vec_styles));
870+
866871
shared_ptr<IfcBooleanClippingResult> boolean_clipping_result = dynamic_pointer_cast<IfcBooleanClippingResult>( bool_result );
867872
if( boolean_clipping_result )
868873
{
@@ -1739,6 +1744,20 @@ class SolidModelConverter : public StatusCallback
17391744

17401745
void convertIfcBooleanOperand( const shared_ptr<IfcBooleanOperand>& operand_select, shared_ptr<ItemShapeData>& item_data, const shared_ptr<ItemShapeData>& other_operand )
17411746
{
1747+
if (m_geom_settings->handleStyledItems())
1748+
{
1749+
shared_ptr<IfcRepresentationItem> representationItem = dynamic_pointer_cast<IfcRepresentationItem>(operand_select);
1750+
if (representationItem)
1751+
{
1752+
std::vector<shared_ptr<StyleData> > vec_style_data;
1753+
m_styles_converter->convertRepresentationStyle(representationItem, vec_style_data);
1754+
for (auto& style : vec_style_data)
1755+
{
1756+
item_data->addStyle(style);
1757+
}
1758+
}
1759+
}
1760+
17421761
// TYPE IfcBooleanOperand = SELECT (IfcBooleanResult ,IfcCsgPrimitive3D ,IfcHalfSpaceSolid ,IfcSolidModel ,IfcTessellatedFaceSet);
17431762
shared_ptr<IfcSolidModel> solid_model = dynamic_pointer_cast<IfcSolidModel>( operand_select );
17441763
if( solid_model )

IfcPlusPlus/src/ifcpp/geometry/StylesConverter.h

+12-1
Original file line numberDiff line numberDiff line change
@@ -740,6 +740,17 @@ class StylesConverter : public StatusCallback
740740
}
741741
}
742742

743+
void convertRepresentationStyle(const shared_ptr<IfcRepresentationItem>& representation_item, std::vector<shared_ptr<StyleData> >& vec_style_data)
744+
{
745+
std::vector<weak_ptr<IfcStyledItem> >& vec_StyledByItem_inverse = representation_item->m_StyledByItem_inverse;
746+
for (size_t i = 0; i < vec_StyledByItem_inverse.size(); ++i)
747+
{
748+
weak_ptr<IfcStyledItem> styled_item_weak = vec_StyledByItem_inverse[i];
749+
shared_ptr<IfcStyledItem> styled_item = shared_ptr<IfcStyledItem>(styled_item_weak);
750+
convertIfcStyledItem(styled_item, vec_style_data);
751+
}
752+
}
753+
743754
void convertIfcStyledItem(weak_ptr<IfcStyledItem> styled_item_weak, std::vector<shared_ptr<StyleData> >& vec_style_data)
744755
{
745756
if (styled_item_weak.expired())
@@ -750,7 +761,7 @@ class StylesConverter : public StatusCallback
750761
const int style_id = styled_item->m_tag;
751762

752763
{
753-
std::lock_guard<std::mutex> lock(m_writelock_styles_converter);
764+
//std::lock_guard<std::mutex> lock(m_writelock_styles_converter);
754765
auto it_find_existing_style = m_map_ifc_styles.find(style_id);
755766
if (it_find_existing_style != m_map_ifc_styles.end())
756767
{

examples/SimpleViewerExampleQt/CMakeLists.txt

+12-12
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,14 @@ ENDIF(NOT WIN32)
1717
message(STATUS "Qt6 is used")
1818

1919
IF(DEFINED ENV{QT_DIR})
20-
set(Qt5Core_DIR "$ENV{QT_DIR}/lib/cmake/Qt6Core")
21-
set(Qt5_DIR "$ENV{QT_DIR}/lib/cmake/Qt6")
20+
set(Qt6Core_DIR "$ENV{QT_DIR}/lib/cmake/Qt6Core")
21+
set(Qt6_DIR "$ENV{QT_DIR}/lib/cmake/Qt6")
2222
set(QT_QMAKE_EXECUTABLE "$ENV{QT_DIR}/bin/qmake.exe")
2323
ENDIF()
2424

25-
FIND_PACKAGE(Qt5Core REQUIRED)
26-
FIND_PACKAGE(Qt5Widgets REQUIRED)
27-
FIND_PACKAGE(Qt5OpenGL REQUIRED)
25+
FIND_PACKAGE(Qt6Core REQUIRED)
26+
FIND_PACKAGE(Qt6Widgets REQUIRED)
27+
FIND_PACKAGE(Qt6OpenGL REQUIRED)
2828
ADD_DEFINITIONS(-DUNICODE)
2929
ADD_DEFINITIONS(-D_UNICODE)
3030
ADD_DEFINITIONS(-DIFCQUERY_STATIC_LIB)
@@ -34,7 +34,7 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
3434

3535
SET(viewer_dir ${IFCPP_SOURCE_DIR}/examples/SimpleViewerExampleQt)
3636
SET(RESOURCES ${viewer_dir}/Resources/ifcplusplus.qrc)
37-
QT5_ADD_RESOURCES(SimpleViewerExampleQt_RESOURCES_RCC ${RESOURCES})
37+
QT6_ADD_RESOURCES(SimpleViewerExampleQt_RESOURCES_RCC ${RESOURCES})
3838

3939
FIND_PACKAGE(OpenSceneGraph REQUIRED osgDB osgUtil osgGA osgFX osgSim osgText osgViewer)
4040

@@ -67,7 +67,7 @@ SET(IFCPPVIEWER_MOC_FILES
6767
src/viewer/ViewerWidget.h
6868
)
6969

70-
QT5_WRAP_CPP( IFCPPVIEWER_MOC_GENERATED_FILES ${IFCPPVIEWER_MOC_FILES})
70+
QT6_WRAP_CPP( IFCPPVIEWER_MOC_GENERATED_FILES ${IFCPPVIEWER_MOC_FILES})
7171

7272
LINK_DIRECTORIES(${CMAKE_BINARY_DIR}/IfcPlusPlus/Debug)
7373
LINK_DIRECTORIES(${CMAKE_BINARY_DIR}/IfcPlusPlus/${CMAKE_BUILD_TYPE})
@@ -84,10 +84,10 @@ set_target_properties(SimpleViewerExampleQt PROPERTIES VS_DEBUGGER_ENVIRONMENT "
8484

8585
target_link_libraries(SimpleViewerExampleQt
8686
debug IfcPlusPlusd optimized IfcPlusPlus
87-
Qt5::Core
88-
Qt5::Gui
89-
Qt5::Widgets
90-
Qt5::OpenGL)
87+
Qt6::Core
88+
Qt6::Gui
89+
Qt6::Widgets
90+
Qt6::OpenGL)
9191

9292
If(UNIX)
9393
# ON Debian Stretch with cmake 3.7.2 OPENTHREADS_LIBRARY_DEBUG is a not known variable
@@ -142,7 +142,7 @@ TARGET_INCLUDE_DIRECTORIES(SimpleViewerExampleQt
142142
${OSGUTIL_INCLUDE_DIR}
143143
${OSGANIMATION_INCLUDE_DIR}
144144
${OSGTEXT_INCLUDE_DIR}
145-
${Qt5Core_INCLUDE_DIRS}
145+
${Qt6Core_INCLUDE_DIRS}
146146
)
147147

148148
INSTALL(

examples/SimpleViewerExampleQt/Resources/styles.css

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ QFrame {
44
}
55

66
QWidget#OpenFileWidget { background-color: rgba(240,240,240,0.5); border: 1px solid #cecece; margin: 10px;}
7-
QWidget#SettingsWidget { background-color: rgba(240,240,240,0.5); border: 1px solid #cecece; margin: 10px;}
7+
QWidget#SettingsWidget { background-color: rgba(240,240,240,0.5); border: 1px solid #cecece;}
88

99
QStatusBar { height:20px;max-height: 24px;}
1010

examples/SimpleViewerExampleQt/SimpleViewerExampleQt.vcxproj.user

+4-4
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,15 @@
1818
<LocalDebuggerEnvironment>PATH=$(QTDIR)\bin%3b"$(QTDIR)\bin%3b$(PATH)</LocalDebuggerEnvironment>
1919
</PropertyGroup>
2020
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
21-
<QtLastBackgroundBuild>2024-01-18T07:50:24.9045647Z</QtLastBackgroundBuild>
21+
<QtLastBackgroundBuild>2024-01-26T15:10:49.9598175Z</QtLastBackgroundBuild>
2222
</PropertyGroup>
2323
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
24-
<QtLastBackgroundBuild>2024-01-18T07:50:24.9860178Z</QtLastBackgroundBuild>
24+
<QtLastBackgroundBuild>2024-01-26T15:10:50.0702063Z</QtLastBackgroundBuild>
2525
</PropertyGroup>
2626
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
27-
<QtLastBackgroundBuild>2024-01-18T07:50:25.2048710Z</QtLastBackgroundBuild>
27+
<QtLastBackgroundBuild>2024-01-26T15:10:50.1968036Z</QtLastBackgroundBuild>
2828
</PropertyGroup>
2929
<PropertyGroup Label="QtSettings" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
30-
<QtLastBackgroundBuild>2024-01-18T07:50:25.3122549Z</QtLastBackgroundBuild>
30+
<QtLastBackgroundBuild>2024-01-26T15:10:50.2919150Z</QtLastBackgroundBuild>
3131
</PropertyGroup>
3232
</Project>

0 commit comments

Comments
 (0)