Skip to content

Commit 036e4b8

Browse files
committed
[#165] progress on collections
1 parent 7f8be05 commit 036e4b8

File tree

2 files changed

+294
-3
lines changed

2 files changed

+294
-3
lines changed

PyRxCore/PyAcadDbObjectImpl.cpp

+243-1
Original file line numberDiff line numberDiff line change
@@ -718,7 +718,7 @@ void PyIAcadSectionSettingsImpl::SetCurrentSectionType(PyAcSectionType val) cons
718718
PyIAcadSectionTypeSettingsPtr PyIAcadSectionSettingsImpl::GetSectionTypeSettings(PyAcSectionType secType) const
719719
{
720720
IAcadSectionTypeSettings* ptr = nullptr;
721-
PyThrowBadHr(impObj()->GetSectionTypeSettings((AcSectionType)secType,&ptr));
721+
PyThrowBadHr(impObj()->GetSectionTypeSettings((AcSectionType)secType, &ptr));
722722
return std::make_unique<PyIAcadSectionTypeSettingsImpl>(ptr);
723723
}
724724

@@ -905,6 +905,29 @@ PyIAcadGroupsImpl::PyIAcadGroupsImpl(IAcadGroups* ptr)
905905
{
906906
}
907907

908+
PyIAcadGroupPtr PyIAcadGroupsImpl::GetItem(long ind) const
909+
{
910+
_variant_t vtind{ ind };
911+
IAcadGroup* ptr = nullptr;
912+
PyThrowBadHr(impObj()->Item(vtind, &ptr));
913+
return std::make_unique<PyIAcadGroupImpl>(ptr);
914+
}
915+
916+
long PyIAcadGroupsImpl::GetCount() const
917+
{
918+
long ind = 0;
919+
PyThrowBadHr(impObj()->get_Count(&ind));
920+
return ind;
921+
}
922+
923+
PyIAcadGroupPtr PyIAcadGroupsImpl::Add(const CString& name) const
924+
{
925+
_bstr_t bstrVal{ name };
926+
IAcadGroup* ptr = nullptr;
927+
PyThrowBadHr(impObj()->Add(bstrVal, &ptr));
928+
return std::make_unique<PyIAcadGroupImpl>(ptr);
929+
}
930+
908931
IAcadGroups* PyIAcadGroupsImpl::impObj(const std::source_location& src /*= std::source_location::current()*/) const
909932
{
910933
if (m_pimpl == nullptr) [[unlikely]] {
@@ -935,6 +958,30 @@ PyIAcadDimStylesImpl::PyIAcadDimStylesImpl(IAcadDimStyles* ptr)
935958
{
936959
}
937960

961+
PyIAcadDimStylePtr PyIAcadDimStylesImpl::GetItem(long ind) const
962+
{
963+
_variant_t vtind{ ind };
964+
IAcadDimStyle* ptr = nullptr;
965+
PyThrowBadHr(impObj()->Item(vtind, &ptr));
966+
return std::make_unique<PyIAcadDimStyleImpl>(ptr);
967+
}
968+
969+
long PyIAcadDimStylesImpl::GetCount() const
970+
{
971+
long ind = 0;
972+
PyThrowBadHr(impObj()->get_Count(&ind));
973+
return ind;
974+
}
975+
976+
PyIAcadDimStylePtr PyIAcadDimStylesImpl::Add(const CString& name) const
977+
{
978+
_bstr_t bstrVal{ name };
979+
IAcadDimStyle* ptr = nullptr;
980+
PyThrowBadHr(impObj()->Add(bstrVal, &ptr));
981+
return std::make_unique<PyIAcadDimStyleImpl>(ptr);
982+
983+
}
984+
938985
IAcadDimStyles* PyIAcadDimStylesImpl::impObj(const std::source_location& src /*= std::source_location::current()*/) const
939986
{
940987
if (m_pimpl == nullptr) [[unlikely]] {
@@ -965,6 +1012,30 @@ PyIAcadLayersImpl::PyIAcadLayersImpl(IAcadLayers* ptr)
9651012
{
9661013
}
9671014

1015+
PyIAcadLayerPtr PyIAcadLayersImpl::GetItem(long ind) const
1016+
{
1017+
_variant_t vtind{ ind };
1018+
IAcadLayer* ptr = nullptr;
1019+
PyThrowBadHr(impObj()->Item(vtind, &ptr));
1020+
return std::make_unique<PyIAcadLayerImpl>(ptr);
1021+
}
1022+
1023+
long PyIAcadLayersImpl::GetCount() const
1024+
{
1025+
long ind = 0;
1026+
PyThrowBadHr(impObj()->get_Count(&ind));
1027+
return ind;
1028+
}
1029+
1030+
PyIAcadLayerPtr PyIAcadLayersImpl::Add(const CString& name) const
1031+
{
1032+
_bstr_t bstrVal{ name };
1033+
IAcadLayer* ptr = nullptr;
1034+
PyThrowBadHr(impObj()->Add(bstrVal, &ptr));
1035+
return std::make_unique<PyIAcadLayerImpl>(ptr);
1036+
1037+
}
1038+
9681039
IAcadLayers* PyIAcadLayersImpl::impObj(const std::source_location& src /*= std::source_location::current()*/) const
9691040
{
9701041
if (m_pimpl == nullptr) [[unlikely]] {
@@ -995,6 +1066,30 @@ PyIAcadLineTypesImpl::PyIAcadLineTypesImpl(IAcadLineTypes* ptr)
9951066
{
9961067
}
9971068

1069+
PyIAcadLineTypePtr PyIAcadLineTypesImpl::GetItem(long ind) const
1070+
{
1071+
_variant_t vtind{ ind };
1072+
IAcadLineType* ptr = nullptr;
1073+
PyThrowBadHr(impObj()->Item(vtind, &ptr));
1074+
return std::make_unique<PyIAcadLineTypeImpl>(ptr);
1075+
1076+
}
1077+
1078+
long PyIAcadLineTypesImpl::GetCount() const
1079+
{
1080+
long ind = 0;
1081+
PyThrowBadHr(impObj()->get_Count(&ind));
1082+
return ind;
1083+
}
1084+
1085+
PyIAcadLineTypePtr PyIAcadLineTypesImpl::Add(const CString& name) const
1086+
{
1087+
_bstr_t bstrVal{ name };
1088+
IAcadLineType* ptr = nullptr;
1089+
PyThrowBadHr(impObj()->Add(bstrVal, &ptr));
1090+
return std::make_unique<PyIAcadLineTypeImpl>(ptr);
1091+
}
1092+
9981093
IAcadLineTypes* PyIAcadLineTypesImpl::impObj(const std::source_location& src /*= std::source_location::current()*/) const
9991094
{
10001095
if (m_pimpl == nullptr) [[unlikely]] {
@@ -1040,6 +1135,30 @@ PyIAcadDictionariesImpl::PyIAcadDictionariesImpl(IAcadDictionaries* ptr)
10401135
{
10411136
}
10421137

1138+
PyIAcadDictionaryPtr PyIAcadDictionariesImpl::GetItem(long ind) const
1139+
{
1140+
_variant_t vtind{ ind };
1141+
IAcadObject* ptr = nullptr;
1142+
PyThrowBadHr(impObj()->Item(vtind, &ptr));
1143+
return std::make_unique<PyIAcadDictionaryImpl>((IAcadDictionary*)ptr);
1144+
}
1145+
1146+
long PyIAcadDictionariesImpl::GetCount() const
1147+
{
1148+
long ind = 0;
1149+
PyThrowBadHr(impObj()->get_Count(&ind));
1150+
return ind;
1151+
}
1152+
1153+
PyIAcadDictionaryPtr PyIAcadDictionariesImpl::Add(const CString& name) const
1154+
{
1155+
_bstr_t bstrVal{ name };
1156+
IAcadDictionary* ptr = nullptr;
1157+
PyThrowBadHr(impObj()->Add(bstrVal, &ptr));
1158+
return std::make_unique<PyIAcadDictionaryImpl>((IAcadDictionary*)ptr);
1159+
1160+
}
1161+
10431162
IAcadDictionaries* PyIAcadDictionariesImpl::impObj(const std::source_location& src /*= std::source_location::current()*/) const
10441163
{
10451164
if (m_pimpl == nullptr) [[unlikely]] {
@@ -1136,6 +1255,31 @@ PyIAcadTextStylesImpl::PyIAcadTextStylesImpl(IAcadTextStyles* ptr)
11361255
{
11371256
}
11381257

1258+
PyIAcadTextStylePtr PyIAcadTextStylesImpl::GetItem(long ind) const
1259+
{
1260+
_variant_t vtind{ ind };
1261+
IAcadTextStyle* ptr = nullptr;
1262+
PyThrowBadHr(impObj()->Item(vtind, &ptr));
1263+
return std::make_unique<PyIAcadTextStyleImpl>(ptr);
1264+
}
1265+
1266+
long PyIAcadTextStylesImpl::GetCount() const
1267+
{
1268+
long ind = 0;
1269+
PyThrowBadHr(impObj()->get_Count(&ind));
1270+
return ind;
1271+
1272+
}
1273+
1274+
PyIAcadTextStylePtr PyIAcadTextStylesImpl::Add(const CString& name) const
1275+
{
1276+
_bstr_t bstrVal{ name };
1277+
IAcadTextStyle* ptr = nullptr;
1278+
PyThrowBadHr(impObj()->Add(bstrVal, &ptr));
1279+
return std::make_unique<PyIAcadTextStyleImpl>(ptr);
1280+
1281+
}
1282+
11391283
IAcadTextStyles* PyIAcadTextStylesImpl::impObj(const std::source_location& src /*= std::source_location::current()*/) const
11401284
{
11411285
if (m_pimpl == nullptr) [[unlikely]] {
@@ -1166,6 +1310,35 @@ PyIAcadUCSsImpl::PyIAcadUCSsImpl(IAcadUCSs* ptr)
11661310
{
11671311
}
11681312

1313+
PyIAcadUCSPtr PyIAcadUCSsImpl::GetItem(long ind) const
1314+
{
1315+
_variant_t vtind{ ind };
1316+
IAcadUCS* ptr = nullptr;
1317+
PyThrowBadHr(impObj()->Item(vtind, &ptr));
1318+
return std::make_unique<PyIAcadUCSImpl>(ptr);
1319+
}
1320+
1321+
long PyIAcadUCSsImpl::GetCount() const
1322+
{
1323+
long ind = 0;
1324+
PyThrowBadHr(impObj()->get_Count(&ind));
1325+
return ind;
1326+
}
1327+
1328+
PyIAcadUCSPtr PyIAcadUCSsImpl::Add(const AcGePoint3d& origin, const AcGeVector3d& xAxis, const AcGeVector3d& yAxis, const CString& name) const
1329+
{
1330+
variant_t vtorigin;
1331+
variant_t vtxAxis;
1332+
variant_t vtyAxis;
1333+
_bstr_t bstrVal{ name };
1334+
IAcadUCS* ptr = nullptr;
1335+
PyThrowBadHr(AcGePoint3dToVariant(vtorigin.GetVARIANT(), origin));
1336+
PyThrowBadHr(AcGeVector3dToVariant(vtxAxis.GetVARIANT(), xAxis));
1337+
PyThrowBadHr(AcGeVector3dToVariant(vtyAxis.GetVARIANT(), yAxis));
1338+
PyThrowBadHr(impObj()->Add(vtorigin, vtxAxis, vtyAxis, bstrVal, &ptr));
1339+
return std::make_unique<PyIAcadUCSImpl>(ptr);
1340+
}
1341+
11691342
IAcadUCSs* PyIAcadUCSsImpl::impObj(const std::source_location& src /*= std::source_location::current()*/) const
11701343
{
11711344
if (m_pimpl == nullptr) [[unlikely]] {
@@ -1234,6 +1407,29 @@ PyIAcadViewportsImpl::PyIAcadViewportsImpl(IAcadViewports* ptr)
12341407
{
12351408
}
12361409

1410+
PyIAcadViewportPtr PyIAcadViewportsImpl::GetItem(long ind) const
1411+
{
1412+
_variant_t vtind{ ind };
1413+
IAcadViewport* ptr = nullptr;
1414+
PyThrowBadHr(impObj()->Item(vtind, &ptr));
1415+
return std::make_unique<PyIAcadViewportImpl>(ptr);
1416+
}
1417+
1418+
long PyIAcadViewportsImpl::GetCount() const
1419+
{
1420+
long ind = 0;
1421+
PyThrowBadHr(impObj()->get_Count(&ind));
1422+
return ind;
1423+
}
1424+
1425+
PyIAcadViewportPtr PyIAcadViewportsImpl::Add(const CString& name) const
1426+
{
1427+
_bstr_t bstrVal{ name };
1428+
IAcadViewport* ptr = nullptr;
1429+
PyThrowBadHr(impObj()->Add(bstrVal, &ptr));
1430+
return std::make_unique<PyIAcadViewportImpl>(ptr);
1431+
}
1432+
12371433
IAcadViewports* PyIAcadViewportsImpl::impObj(const std::source_location& src /*= std::source_location::current()*/) const
12381434
{
12391435
if (m_pimpl == nullptr) [[unlikely]] {
@@ -1249,6 +1445,29 @@ PyIAcadPlotConfigurationsImpl::PyIAcadPlotConfigurationsImpl(IAcadPlotConfigurat
12491445
{
12501446
}
12511447

1448+
PyIAcadPlotConfigurationPtr PyIAcadPlotConfigurationsImpl::GetItem(long ind) const
1449+
{
1450+
_variant_t vtind{ ind };
1451+
IAcadPlotConfiguration* ptr = nullptr;
1452+
PyThrowBadHr(impObj()->Item(vtind, &ptr));
1453+
return std::make_unique<PyIAcadPlotConfigurationImpl>(ptr);
1454+
}
1455+
1456+
long PyIAcadPlotConfigurationsImpl::GetCount() const
1457+
{
1458+
long ind = 0;
1459+
PyThrowBadHr(impObj()->get_Count(&ind));
1460+
return ind;
1461+
}
1462+
1463+
PyIAcadPlotConfigurationPtr PyIAcadPlotConfigurationsImpl::Add(const CString& name) const
1464+
{
1465+
_bstr_t bstrVal{ name };
1466+
IAcadPlotConfiguration* ptr = nullptr;
1467+
PyThrowBadHr(impObj()->Add(bstrVal, vtMissing, &ptr));
1468+
return std::make_unique<PyIAcadPlotConfigurationImpl>(ptr);
1469+
}
1470+
12521471
IAcadPlotConfigurations* PyIAcadPlotConfigurationsImpl::impObj(const std::source_location& src /*= std::source_location::current()*/) const
12531472
{
12541473
if (m_pimpl == nullptr) [[unlikely]] {
@@ -1294,6 +1513,29 @@ PyIAcadMaterialsImpl::PyIAcadMaterialsImpl(IAcadMaterials* ptr)
12941513
{
12951514
}
12961515

1516+
PyIAcadMaterialPtr PyIAcadMaterialsImpl::GetItem(long ind) const
1517+
{
1518+
_variant_t vtind{ ind };
1519+
IAcadMaterial* ptr = nullptr;
1520+
PyThrowBadHr(impObj()->Item(vtind, &ptr));
1521+
return std::make_unique<PyIAcadMaterialImpl>(ptr);
1522+
}
1523+
1524+
long PyIAcadMaterialsImpl::GetCount() const
1525+
{
1526+
long ind = 0;
1527+
PyThrowBadHr(impObj()->get_Count(&ind));
1528+
return ind;
1529+
}
1530+
1531+
PyIAcadMaterialPtr PyIAcadMaterialsImpl::Add(const CString& name) const
1532+
{
1533+
_bstr_t bstrVal{ name };
1534+
IAcadMaterial* ptr = nullptr;
1535+
PyThrowBadHr(impObj()->Add(bstrVal, &ptr));
1536+
return std::make_unique<PyIAcadMaterialImpl>(ptr);
1537+
}
1538+
12971539
IAcadMaterials* PyIAcadMaterialsImpl::impObj(const std::source_location& src /*= std::source_location::current()*/) const
12981540
{
12991541
if (m_pimpl == nullptr) [[unlikely]] {

0 commit comments

Comments
 (0)