New measurement (N08) rise_length_side.
--HG-- branch : feature
This commit is contained in:
parent
fa822dda24
commit
833c507148
|
@ -76,6 +76,7 @@
|
||||||
<file>diagrams/Np2.png</file>
|
<file>diagrams/Np2.png</file>
|
||||||
<file>diagrams/Np3.png</file>
|
<file>diagrams/Np3.png</file>
|
||||||
<file>diagrams/Np4.png</file>
|
<file>diagrams/Np4.png</file>
|
||||||
|
<file>diagrams/Np5.png</file>
|
||||||
<file>diagrams/Op1.png</file>
|
<file>diagrams/Op1.png</file>
|
||||||
<file>diagrams/Op2.png</file>
|
<file>diagrams/Op2.png</file>
|
||||||
<file>diagrams/Op3.png</file>
|
<file>diagrams/Op3.png</file>
|
||||||
|
|
BIN
src/app/tape/share/resources/diagrams/Np5.png
Normal file
BIN
src/app/tape/share/resources/diagrams/Np5.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 6.3 KiB |
|
@ -340,6 +340,7 @@ DIAGRAMS += \
|
||||||
$${PWD}/share/resources/diagrams/Np2.png \
|
$${PWD}/share/resources/diagrams/Np2.png \
|
||||||
$${PWD}/share/resources/diagrams/Np3.png \
|
$${PWD}/share/resources/diagrams/Np3.png \
|
||||||
$${PWD}/share/resources/diagrams/Np4.png \
|
$${PWD}/share/resources/diagrams/Np4.png \
|
||||||
|
$${PWD}/share/resources/diagrams/Np5.png \
|
||||||
$${PWD}/share/resources/diagrams/Op1.png \
|
$${PWD}/share/resources/diagrams/Op1.png \
|
||||||
$${PWD}/share/resources/diagrams/Op2.png \
|
$${PWD}/share/resources/diagrams/Op2.png \
|
||||||
$${PWD}/share/resources/diagrams/Op3.png \
|
$${PWD}/share/resources/diagrams/Op3.png \
|
||||||
|
|
|
@ -6,12 +6,15 @@
|
||||||
<file>schema/pattern/v0.1.3.xsd</file>
|
<file>schema/pattern/v0.1.3.xsd</file>
|
||||||
<file>schema/pattern/v0.1.4.xsd</file>
|
<file>schema/pattern/v0.1.4.xsd</file>
|
||||||
<file>schema/pattern/v0.2.0.xsd</file>
|
<file>schema/pattern/v0.2.0.xsd</file>
|
||||||
|
<file>schema/pattern/v0.2.1.xsd</file>
|
||||||
<file>schema/standard_measurements/v0.3.0.xsd</file>
|
<file>schema/standard_measurements/v0.3.0.xsd</file>
|
||||||
<file>schema/standard_measurements/v0.4.0.xsd</file>
|
<file>schema/standard_measurements/v0.4.0.xsd</file>
|
||||||
<file>schema/standard_measurements/v0.4.1.xsd</file>
|
<file>schema/standard_measurements/v0.4.1.xsd</file>
|
||||||
|
<file>schema/standard_measurements/v0.4.2.xsd</file>
|
||||||
<file>schema/individual_measurements/v0.2.0.xsd</file>
|
<file>schema/individual_measurements/v0.2.0.xsd</file>
|
||||||
<file>schema/individual_measurements/v0.3.0.xsd</file>
|
<file>schema/individual_measurements/v0.3.0.xsd</file>
|
||||||
<file>schema/individual_measurements/v0.3.1.xsd</file>
|
<file>schema/individual_measurements/v0.3.1.xsd</file>
|
||||||
<file>schema/individual_measurements/v0.3.2.xsd</file>
|
<file>schema/individual_measurements/v0.3.2.xsd</file>
|
||||||
|
<file>schema/individual_measurements/v0.3.3.xsd</file>
|
||||||
</qresource>
|
</qresource>
|
||||||
</RCC>
|
</RCC>
|
||||||
|
|
72
src/libs/ifc/schema/individual_measurements/v0.3.3.xsd
Normal file
72
src/libs/ifc/schema/individual_measurements/v0.3.3.xsd
Normal file
|
@ -0,0 +1,72 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
||||||
|
<xs:element name="vit">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="version" type="formatVersion"></xs:element>
|
||||||
|
<xs:element name="read-only" type="xs:boolean"></xs:element>
|
||||||
|
<xs:element name="notes" type="xs:string" minOccurs="0" maxOccurs="1"></xs:element>
|
||||||
|
<xs:element name="unit" type="units"></xs:element>
|
||||||
|
<xs:element name="pm_system" type="psCode"></xs:element>
|
||||||
|
<xs:element name="personal">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="family-name" type="xs:string"></xs:element>
|
||||||
|
<xs:element name="given-name" type="xs:string"></xs:element>
|
||||||
|
<xs:element name="birth-date" type="xs:date"></xs:element>
|
||||||
|
<xs:element name="gender" type="gender"></xs:element>
|
||||||
|
<xs:element name="email" type="xs:string"></xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="body-measurements">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="m" minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:attribute name="name" type="shortName" use="required"></xs:attribute>
|
||||||
|
<xs:attribute name="value" type="xs:string" use="required"></xs:attribute>
|
||||||
|
<xs:attribute name="full_name" type="xs:string"></xs:attribute>
|
||||||
|
<xs:attribute name="description" type="xs:string"></xs:attribute>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:unique name="measurementName">
|
||||||
|
<xs:selector xpath="body-measurements/m"/>
|
||||||
|
<xs:field xpath="@name"/>
|
||||||
|
</xs:unique>
|
||||||
|
</xs:element>
|
||||||
|
<xs:simpleType name="shortName">
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:pattern value="^([^0-9*/^+\-=\s()?%:;!.,`'\"]){1,1}([^*/^+\-=\s()?%:;!.,`'\"]){0,}$"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType name="formatVersion">
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:pattern value="^(0|([1-9][0-9]*))\.(0|([1-9][0-9]*))\.(0|([1-9][0-9]*))$"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType name="units">
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:enumeration value="mm"/>
|
||||||
|
<xs:enumeration value="cm"/>
|
||||||
|
<xs:enumeration value="inch"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType name="gender">
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:enumeration value="unknown"/>
|
||||||
|
<xs:enumeration value="male"/>
|
||||||
|
<xs:enumeration value="female"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType name="psCode">
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:pattern value="^^(([0-9]|[1-4][0-9]|5[0-4])|998)$"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:schema>
|
329
src/libs/ifc/schema/pattern/v0.2.1.xsd
Normal file
329
src/libs/ifc/schema/pattern/v0.2.1.xsd
Normal file
|
@ -0,0 +1,329 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
||||||
|
<!-- XML Schema Generated from XML Document-->
|
||||||
|
<xs:element name="pattern">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence minOccurs="1" maxOccurs="unbounded">
|
||||||
|
<xs:element name="version" type="formatVersion"></xs:element>
|
||||||
|
<xs:element name="unit" type="units"></xs:element>
|
||||||
|
<xs:element name="author" type="xs:string" minOccurs="0" maxOccurs="1"></xs:element>
|
||||||
|
<xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="1"></xs:element>
|
||||||
|
<xs:element name="notes" type="xs:string" minOccurs="0" maxOccurs="1"></xs:element>
|
||||||
|
<xs:element name="gradation" minOccurs="0" maxOccurs="1">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="heights">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:attribute name="all" type="xs:boolean" use="required"></xs:attribute>
|
||||||
|
<xs:attribute name="h92" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="h98" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="h104" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="h110" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="h116" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="h122" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="h128" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="h134" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="h140" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="h146" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="h152" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="h158" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="h164" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="h170" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="h176" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="h182" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="h188" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="h194" type="xs:boolean"></xs:attribute>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="sizes">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:attribute name="all" type="xs:boolean" use="required"></xs:attribute>
|
||||||
|
<xs:attribute name="s22" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="s24" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="s26" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="s28" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="s30" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="s32" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="s34" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="s36" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="s38" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="s40" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="s42" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="s44" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="s46" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="s48" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="s50" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="s52" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="s54" type="xs:boolean"></xs:attribute>
|
||||||
|
<xs:attribute name="s56" type="xs:boolean"></xs:attribute>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="measurements" type="xs:string"></xs:element>
|
||||||
|
<xs:element name="increments" minOccurs="0" maxOccurs="1">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<xs:element name="increment" minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:attribute name="description" type="xs:string" use="required"></xs:attribute>
|
||||||
|
<xs:attribute name="name" type="shortName" use="required"></xs:attribute>
|
||||||
|
<xs:attribute name="formula" type="xs:string" use="required"></xs:attribute>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:unique name="incrementName">
|
||||||
|
<xs:selector xpath="increment"/>
|
||||||
|
<xs:field xpath="@name"/>
|
||||||
|
</xs:unique>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="draw" minOccurs="1" maxOccurs="unbounded">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="calculation" minOccurs="1" maxOccurs="unbounded">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<xs:element name="point" minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:attribute name="id" type="xs:unsignedInt" use="required"></xs:attribute>
|
||||||
|
<xs:attribute name="x" type="xs:double"></xs:attribute>
|
||||||
|
<xs:attribute name="y" type="xs:double"></xs:attribute>
|
||||||
|
<xs:attribute name="mx" type="xs:double"></xs:attribute>
|
||||||
|
<xs:attribute name="my" type="xs:double"></xs:attribute>
|
||||||
|
<xs:attribute name="type" type="xs:string"></xs:attribute>
|
||||||
|
<xs:attribute name="name" type="shortName"></xs:attribute>
|
||||||
|
<xs:attribute name="firstPoint" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="secondPoint" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="thirdPoint" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="basePoint" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="pShoulder" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="p1Line" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="p2Line" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="length" type="xs:string"></xs:attribute>
|
||||||
|
<xs:attribute name="angle" type="xs:string"></xs:attribute>
|
||||||
|
<xs:attribute name="typeLine" type="xs:string"></xs:attribute>
|
||||||
|
<xs:attribute name="splinePath" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="spline" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="p1Line1" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="p1Line2" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="p2Line1" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="p2Line2" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="center" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="radius" type="xs:string"></xs:attribute>
|
||||||
|
<xs:attribute name="axisP1" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="axisP2" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="arc" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="curve" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="lineColor" type="colors"></xs:attribute>
|
||||||
|
<xs:attribute name="color" type="colors"></xs:attribute>
|
||||||
|
<xs:attribute name="firstArc" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="secondArc" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="crossPoint" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="c1Center" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="c2Center" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="c1Radius" type="xs:string"></xs:attribute>
|
||||||
|
<xs:attribute name="c2Radius" type="xs:string"></xs:attribute>
|
||||||
|
<xs:attribute name="cRadius" type="xs:string"></xs:attribute>
|
||||||
|
<xs:attribute name="tangent" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="cCenter" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="name1" type="shortName"></xs:attribute>
|
||||||
|
<xs:attribute name="mx1" type="xs:double"></xs:attribute>
|
||||||
|
<xs:attribute name="my1" type="xs:double"></xs:attribute>
|
||||||
|
<xs:attribute name="name2" type="shortName"></xs:attribute>
|
||||||
|
<xs:attribute name="mx2" type="xs:double"></xs:attribute>
|
||||||
|
<xs:attribute name="my2" type="xs:double"></xs:attribute>
|
||||||
|
<xs:attribute name="point1" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="point2" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="dartP1" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="dartP2" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="dartP3" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="baseLineP1" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="baseLineP2" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="line" minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:attribute name="id" type="xs:unsignedInt" use="required"></xs:attribute>
|
||||||
|
<xs:attribute name="firstPoint" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="secondPoint" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="typeLine" type="xs:string"></xs:attribute>
|
||||||
|
<xs:attribute name="lineColor" type="colors"></xs:attribute>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="arc" minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:attribute name="angle1" type="xs:string"></xs:attribute>
|
||||||
|
<xs:attribute name="id" type="xs:unsignedInt" use="required"></xs:attribute>
|
||||||
|
<xs:attribute name="angle2" type="xs:string"></xs:attribute>
|
||||||
|
<xs:attribute name="radius" type="xs:string"></xs:attribute>
|
||||||
|
<xs:attribute name="center" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="type" type="xs:string"></xs:attribute>
|
||||||
|
<xs:attribute name="color" type="colors"></xs:attribute>
|
||||||
|
<xs:attribute name="length" type="xs:string"></xs:attribute>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="spline" minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="pathPoint" minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:attribute name="kAsm2" type="xs:string"></xs:attribute>
|
||||||
|
<xs:attribute name="pSpline" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="angle" type="xs:string"></xs:attribute>
|
||||||
|
<xs:attribute name="kAsm1" type="xs:string"></xs:attribute>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:attribute name="id" type="xs:unsignedInt" use="required"></xs:attribute>
|
||||||
|
<xs:attribute name="kCurve" type="xs:double"></xs:attribute>
|
||||||
|
<xs:attribute name="type" type="xs:string"></xs:attribute>
|
||||||
|
<xs:attribute name="kAsm1" type="xs:double"></xs:attribute>
|
||||||
|
<xs:attribute name="kAsm2" type="xs:double"></xs:attribute>
|
||||||
|
<xs:attribute name="angle1" type="xs:double"></xs:attribute>
|
||||||
|
<xs:attribute name="angle2" type="xs:double"></xs:attribute>
|
||||||
|
<xs:attribute name="point1" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="point4" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="color" type="colors"></xs:attribute>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:choice>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="modeling" minOccurs="1" maxOccurs="unbounded">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:choice minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<xs:element name="point" minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:attribute name="id" type="xs:unsignedInt" use="required"></xs:attribute>
|
||||||
|
<xs:attribute name="idObject" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="mx" type="xs:double"></xs:attribute>
|
||||||
|
<xs:attribute name="typeObject" type="xs:string"></xs:attribute>
|
||||||
|
<xs:attribute name="my" type="xs:double"></xs:attribute>
|
||||||
|
<xs:attribute name="type" type="xs:string"></xs:attribute>
|
||||||
|
<xs:attribute name="idTool" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="arc" minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:attribute name="id" type="xs:unsignedInt" use="required"></xs:attribute>
|
||||||
|
<xs:attribute name="idObject" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="typeObject" type="xs:string"></xs:attribute>
|
||||||
|
<xs:attribute name="type" type="xs:string"></xs:attribute>
|
||||||
|
<xs:attribute name="idTool" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="spline" minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:attribute name="id" type="xs:unsignedInt" use="required"></xs:attribute>
|
||||||
|
<xs:attribute name="idObject" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="typeObject" type="xs:string"></xs:attribute>
|
||||||
|
<xs:attribute name="type" type="xs:string"></xs:attribute>
|
||||||
|
<xs:attribute name="idTool" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="tools" minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="det" minOccurs="2" maxOccurs="2">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="node" maxOccurs="unbounded">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:attribute name="nodeType" type="xs:string"></xs:attribute>
|
||||||
|
<xs:attribute name="idObject" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="mx" type="xs:double"></xs:attribute>
|
||||||
|
<xs:attribute name="my" type="xs:double"></xs:attribute>
|
||||||
|
<xs:attribute name="type" type="xs:string"></xs:attribute>
|
||||||
|
<xs:attribute name="reverse" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:attribute name="id" type="xs:unsignedInt" use="required"></xs:attribute>
|
||||||
|
<xs:attribute name="type" type="xs:string"></xs:attribute>
|
||||||
|
<xs:attribute name="indexD1" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="indexD2" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:choice>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="details" minOccurs="1" maxOccurs="unbounded">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="detail" minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="node" maxOccurs="unbounded">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:attribute name="nodeType" type="xs:string"></xs:attribute>
|
||||||
|
<xs:attribute name="idObject" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="mx" type="xs:double"></xs:attribute>
|
||||||
|
<xs:attribute name="my" type="xs:double"></xs:attribute>
|
||||||
|
<xs:attribute name="type" type="xs:string"></xs:attribute>
|
||||||
|
<xs:attribute name="reverse" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:attribute name="id" type="xs:unsignedInt" use="required"></xs:attribute>
|
||||||
|
<xs:attribute name="supplement" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
<xs:attribute name="mx" type="xs:double"></xs:attribute>
|
||||||
|
<xs:attribute name="my" type="xs:double"></xs:attribute>
|
||||||
|
<xs:attribute name="width" type="xs:double"></xs:attribute>
|
||||||
|
<xs:attribute name="name" type="xs:string"></xs:attribute>
|
||||||
|
<xs:attribute name="closed" type="xs:unsignedInt"></xs:attribute>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
<xs:attribute name="name" type="xs:string"></xs:attribute>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:simpleType name="shortName">
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:pattern value="^([^0-9*/^+\-=\s()?%:;!.,`'\"]){1,1}([^*/^+\-=\s()?%:;!.,`'\"]){0,}$"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType name="units">
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:enumeration value="mm"/>
|
||||||
|
<xs:enumeration value="cm"/>
|
||||||
|
<xs:enumeration value="inch"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType name="measurementsTypes">
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:enumeration value="standard"/>
|
||||||
|
<xs:enumeration value="individual"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType name="formatVersion">
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:pattern value="^(0|([1-9][0-9]*))\.(0|([1-9][0-9]*))\.(0|([1-9][0-9]*))$"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType name="colors">
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:enumeration value="black"/>
|
||||||
|
<xs:enumeration value="green"/>
|
||||||
|
<xs:enumeration value="blue"/>
|
||||||
|
<xs:enumeration value="darkRed"/>
|
||||||
|
<xs:enumeration value="darkGreen"/>
|
||||||
|
<xs:enumeration value="darkBlue"/>
|
||||||
|
<xs:enumeration value="yellow"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:schema>
|
66
src/libs/ifc/schema/standard_measurements/v0.4.2.xsd
Normal file
66
src/libs/ifc/schema/standard_measurements/v0.4.2.xsd
Normal file
|
@ -0,0 +1,66 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
|
||||||
|
<xs:element name="vst">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="version" type="formatVersion"></xs:element>
|
||||||
|
<xs:element name="read-only" type="xs:boolean"></xs:element>
|
||||||
|
<xs:element name="notes" type="xs:string" minOccurs="0" maxOccurs="1"></xs:element>
|
||||||
|
<xs:element name="unit" type="units"></xs:element>
|
||||||
|
<xs:element name="pm_system" type="psCode"></xs:element>
|
||||||
|
<xs:element name="size">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:attribute name="base" type="xs:double" use="required"></xs:attribute>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="height">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:attribute name="base" type="xs:double" use="required"></xs:attribute>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
<xs:element name="body-measurements">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:sequence>
|
||||||
|
<xs:element name="m" minOccurs="0" maxOccurs="unbounded">
|
||||||
|
<xs:complexType>
|
||||||
|
<xs:attribute name="name" type="shortName" use="required"></xs:attribute>
|
||||||
|
<xs:attribute name="base" type="xs:double" use="required"></xs:attribute>
|
||||||
|
<xs:attribute name="height_increase" type="xs:double" use="required"></xs:attribute>
|
||||||
|
<xs:attribute name="size_increase" type="xs:double" use="required"></xs:attribute>
|
||||||
|
<xs:attribute name="full_name" type="xs:string"></xs:attribute>
|
||||||
|
<xs:attribute name="description" type="xs:string"></xs:attribute>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
</xs:element>
|
||||||
|
</xs:sequence>
|
||||||
|
</xs:complexType>
|
||||||
|
<xs:unique name="measurementName">
|
||||||
|
<xs:selector xpath="body-measurements/m"/>
|
||||||
|
<xs:field xpath="@name"/>
|
||||||
|
</xs:unique>
|
||||||
|
</xs:element>
|
||||||
|
<xs:simpleType name="shortName">
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:pattern value="^([^0-9*/^+\-=\s()?%:;!.,`'\"]){1,1}([^*/^+\-=\s()?%:;!.,`'\"]){0,}$"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType name="units">
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:enumeration value="mm"/>
|
||||||
|
<xs:enumeration value="cm"/>
|
||||||
|
<xs:enumeration value="inch"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType name="formatVersion">
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:pattern value="^(0|([1-9][0-9]*))\.(0|([1-9][0-9]*))\.(0|([1-9][0-9]*))$"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
<xs:simpleType name="psCode">
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:pattern value="^^(([0-9]|[1-4][0-9]|5[0-4])|998)$"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:schema>
|
|
@ -128,7 +128,7 @@ QMultiMap<QString, QString> VAbstractMConverter::OldNamesToNewNames_InV0_3_0()
|
||||||
names.insert(QStringLiteral("body_armfold_circ"), QStringLiteral("shoulder_girth"));
|
names.insert(QStringLiteral("body_armfold_circ"), QStringLiteral("shoulder_girth"));
|
||||||
names.insert(QStringLiteral("body_torso_circ"), QStringLiteral("trunk_length"));
|
names.insert(QStringLiteral("body_torso_circ"), QStringLiteral("trunk_length"));
|
||||||
names.insert(QStringLiteral("neck_front_to_waist_f"), QStringLiteral("front_waist_length"));
|
names.insert(QStringLiteral("neck_front_to_waist_f"), QStringLiteral("front_waist_length"));
|
||||||
names.insert(QStringLiteral("neck_front_to_waist_flat"), QStringLiteral("center_front_waist_length"));
|
names.insert(QStringLiteral("neck_front_to_waist_flat_f"), QStringLiteral("center_front_waist_length"));
|
||||||
names.insert(QStringLiteral("armpit_to_waist_side"), QStringLiteral("side_waist_length"));
|
names.insert(QStringLiteral("armpit_to_waist_side"), QStringLiteral("side_waist_length"));
|
||||||
names.insert(QStringLiteral("neck_side_to_waist_b"), QStringLiteral("waist_to_neck_side"));
|
names.insert(QStringLiteral("neck_side_to_waist_b"), QStringLiteral("waist_to_neck_side"));
|
||||||
|
|
||||||
|
@ -235,3 +235,14 @@ QMultiMap<QString, QString> VAbstractMConverter::OldNamesToNewNames_InV0_3_0()
|
||||||
|
|
||||||
return names;
|
return names;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
QMap<QString, QString> VAbstractMConverter::OldNamesToNewNames_InV0_3_3()
|
||||||
|
{
|
||||||
|
// new name, old name
|
||||||
|
QMap<QString, QString> names;
|
||||||
|
|
||||||
|
names.insert(QStringLiteral("rise_length_side_sitting"), QStringLiteral("rise_length_side"));
|
||||||
|
|
||||||
|
return names;
|
||||||
|
}
|
||||||
|
|
|
@ -40,6 +40,7 @@ public:
|
||||||
protected:
|
protected:
|
||||||
void AddRootComment();
|
void AddRootComment();
|
||||||
static QMultiMap<QString, QString> OldNamesToNewNames_InV0_3_0();
|
static QMultiMap<QString, QString> OldNamesToNewNames_InV0_3_0();
|
||||||
|
static QMap<QString, QString> OldNamesToNewNames_InV0_3_3();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Q_DISABLE_COPY(VAbstractMConverter)
|
Q_DISABLE_COPY(VAbstractMConverter)
|
||||||
|
|
|
@ -43,8 +43,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const QString VPatternConverter::PatternMinVerStr = QStringLiteral("0.1.0");
|
const QString VPatternConverter::PatternMinVerStr = QStringLiteral("0.1.0");
|
||||||
const QString VPatternConverter::PatternMaxVerStr = QStringLiteral("0.2.0");
|
const QString VPatternConverter::PatternMaxVerStr = QStringLiteral("0.2.1");
|
||||||
const QString VPatternConverter::CurrentSchema = QStringLiteral("://schema/pattern/v0.2.0.xsd");
|
const QString VPatternConverter::CurrentSchema = QStringLiteral("://schema/pattern/v0.2.1.xsd");
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
VPatternConverter::VPatternConverter(const QString &fileName)
|
VPatternConverter::VPatternConverter(const QString &fileName)
|
||||||
|
@ -100,6 +100,8 @@ QString VPatternConverter::XSDSchema(int ver) const
|
||||||
case (0x000104):
|
case (0x000104):
|
||||||
return QStringLiteral("://schema/pattern/v0.1.4.xsd");
|
return QStringLiteral("://schema/pattern/v0.1.4.xsd");
|
||||||
case (0x000200):
|
case (0x000200):
|
||||||
|
return QStringLiteral("://schema/pattern/v0.2.0.xsd");
|
||||||
|
case (0x000201):
|
||||||
return CurrentSchema;
|
return CurrentSchema;
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
|
@ -152,6 +154,13 @@ void VPatternConverter::ApplyPatches()
|
||||||
V_FALLTHROUGH
|
V_FALLTHROUGH
|
||||||
}
|
}
|
||||||
case (0x000200):
|
case (0x000200):
|
||||||
|
{
|
||||||
|
ToV0_2_1();
|
||||||
|
const QString schema = XSDSchema(0x000201);
|
||||||
|
ValidateXML(schema, fileName);
|
||||||
|
V_FALLTHROUGH
|
||||||
|
}
|
||||||
|
case (0x000201):
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -215,6 +224,14 @@ void VPatternConverter::ToV0_2_0()
|
||||||
Save();
|
Save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VPatternConverter::ToV0_2_1()
|
||||||
|
{
|
||||||
|
SetVersion(QStringLiteral("0.2.1"));
|
||||||
|
ConvertMeasurementsToV0_2_1();
|
||||||
|
Save();
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VPatternConverter::TagUnitToV0_2_0()
|
void VPatternConverter::TagUnitToV0_2_0()
|
||||||
{
|
{
|
||||||
|
@ -665,6 +682,17 @@ void VPatternConverter::TagMeasurementsToV0_2_0()
|
||||||
ms.appendChild(newNodeText);
|
ms.appendChild(newNodeText);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VPatternConverter::ConvertMeasurementsToV0_2_1()
|
||||||
|
{
|
||||||
|
const QMap<QString, QString> names = OldNamesToNewNames_InV0_2_1();
|
||||||
|
|
||||||
|
// Structure did not change. We can use the same code.
|
||||||
|
ConvertPointExpressionsToV0_2_0(names);
|
||||||
|
ConvertArcExpressionsToV0_2_0(names);
|
||||||
|
ConvertPathPointExpressionsToV0_2_0(names);
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
QString VPatternConverter::MUnitV0_1_4() const
|
QString VPatternConverter::MUnitV0_1_4() const
|
||||||
{
|
{
|
||||||
|
@ -826,7 +854,7 @@ QMap<QString, QString> VPatternConverter::OldNamesToNewNames_InV0_2_0()
|
||||||
names.insert(QStringLiteral("shoulder_girth"), QStringLiteral("body_armfold_circ"));
|
names.insert(QStringLiteral("shoulder_girth"), QStringLiteral("body_armfold_circ"));
|
||||||
names.insert(QStringLiteral("trunk_length"), QStringLiteral("body_torso_circ"));
|
names.insert(QStringLiteral("trunk_length"), QStringLiteral("body_torso_circ"));
|
||||||
names.insert(QStringLiteral("front_waist_length"), QStringLiteral("neck_front_to_waist_f"));
|
names.insert(QStringLiteral("front_waist_length"), QStringLiteral("neck_front_to_waist_f"));
|
||||||
names.insert(QStringLiteral("center_front_waist_length"), QStringLiteral("neck_front_to_waist_flat"));
|
names.insert(QStringLiteral("center_front_waist_length"), QStringLiteral("neck_front_to_waist_flat_f"));
|
||||||
names.insert(QStringLiteral("side_waist_length"), QStringLiteral("armpit_to_waist_side"));
|
names.insert(QStringLiteral("side_waist_length"), QStringLiteral("armpit_to_waist_side"));
|
||||||
names.insert(QStringLiteral("waist_to_neck_side"), QStringLiteral("neck_side_to_waist_b"));
|
names.insert(QStringLiteral("waist_to_neck_side"), QStringLiteral("neck_side_to_waist_b"));
|
||||||
|
|
||||||
|
@ -922,3 +950,14 @@ QMap<QString, QString> VPatternConverter::OldNamesToNewNames_InV0_2_0()
|
||||||
|
|
||||||
return names;
|
return names;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
QMap<QString, QString> VPatternConverter::OldNamesToNewNames_InV0_2_1()
|
||||||
|
{
|
||||||
|
// old name, new name
|
||||||
|
QMap<QString, QString> names;
|
||||||
|
|
||||||
|
names.insert(QStringLiteral("rise_length_side"), QStringLiteral("rise_length_side_sitting"));
|
||||||
|
|
||||||
|
return names;
|
||||||
|
}
|
||||||
|
|
|
@ -60,12 +60,15 @@ private:
|
||||||
void ToV0_1_3();
|
void ToV0_1_3();
|
||||||
void ToV0_1_4();
|
void ToV0_1_4();
|
||||||
void ToV0_2_0();
|
void ToV0_2_0();
|
||||||
|
void ToV0_2_1();
|
||||||
|
|
||||||
void TagUnitToV0_2_0();
|
void TagUnitToV0_2_0();
|
||||||
void TagIncrementToV0_2_0();
|
void TagIncrementToV0_2_0();
|
||||||
void ConvertMeasurementsToV0_2_0();
|
void ConvertMeasurementsToV0_2_0();
|
||||||
void TagMeasurementsToV0_2_0();
|
void TagMeasurementsToV0_2_0();
|
||||||
|
|
||||||
|
void ConvertMeasurementsToV0_2_1();
|
||||||
|
|
||||||
QSet<QString> FixIncrementsToV0_2_0();
|
QSet<QString> FixIncrementsToV0_2_0();
|
||||||
QString FixIncrementInFormulaToV0_2_0(const QString &formula, const QSet<QString> &names);
|
QString FixIncrementInFormulaToV0_2_0(const QString &formula, const QSet<QString> &names);
|
||||||
void FixPointExpressionsToV0_2_0(const QSet<QString> &names);
|
void FixPointExpressionsToV0_2_0(const QSet<QString> &names);
|
||||||
|
@ -83,6 +86,7 @@ private:
|
||||||
QStringList ListPathPointExpressionsV0_1_4() const;
|
QStringList ListPathPointExpressionsV0_1_4() const;
|
||||||
|
|
||||||
static QMap<QString, QString> OldNamesToNewNames_InV0_2_0();
|
static QMap<QString, QString> OldNamesToNewNames_InV0_2_0();
|
||||||
|
static QMap<QString, QString> OldNamesToNewNames_InV0_2_1();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // VPATTERNCONVERTER_H
|
#endif // VPATTERNCONVERTER_H
|
||||||
|
|
|
@ -40,8 +40,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const QString VVITConverter::MeasurementMinVerStr = QStringLiteral("0.2.0");
|
const QString VVITConverter::MeasurementMinVerStr = QStringLiteral("0.2.0");
|
||||||
const QString VVITConverter::MeasurementMaxVerStr = QStringLiteral("0.3.2");
|
const QString VVITConverter::MeasurementMaxVerStr = QStringLiteral("0.3.3");
|
||||||
const QString VVITConverter::CurrentSchema = QStringLiteral("://schema/individual_measurements/v0.3.2.xsd");
|
const QString VVITConverter::CurrentSchema = QStringLiteral("://schema/individual_measurements/v0.3.3.xsd");
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
VVITConverter::VVITConverter(const QString &fileName)
|
VVITConverter::VVITConverter(const QString &fileName)
|
||||||
|
@ -93,6 +93,8 @@ QString VVITConverter::XSDSchema(int ver) const
|
||||||
case (0x000301):
|
case (0x000301):
|
||||||
return QStringLiteral("://schema/individual_measurements/v0.3.1.xsd");
|
return QStringLiteral("://schema/individual_measurements/v0.3.1.xsd");
|
||||||
case (0x000302):
|
case (0x000302):
|
||||||
|
return QStringLiteral("://schema/individual_measurements/v0.3.2.xsd");
|
||||||
|
case (0x000303):
|
||||||
return CurrentSchema;
|
return CurrentSchema;
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
|
@ -131,6 +133,13 @@ void VVITConverter::ApplyPatches()
|
||||||
V_FALLTHROUGH
|
V_FALLTHROUGH
|
||||||
}
|
}
|
||||||
case (0x000302):
|
case (0x000302):
|
||||||
|
{
|
||||||
|
ToV0_3_3();
|
||||||
|
const QString schema = XSDSchema(0x000303);
|
||||||
|
ValidateXML(schema, fileName);
|
||||||
|
V_FALLTHROUGH
|
||||||
|
}
|
||||||
|
case (0x000303):
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -257,6 +266,34 @@ void VVITConverter::PM_SystemV0_3_2()
|
||||||
parent.insertBefore(pm_system, personal);
|
parent.insertBefore(pm_system, personal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VVITConverter::ConvertMeasurementsToV0_3_3()
|
||||||
|
{
|
||||||
|
const QMap<QString, QString> names = OldNamesToNewNames_InV0_3_3();
|
||||||
|
auto i = names.constBegin();
|
||||||
|
while (i != names.constEnd())
|
||||||
|
{
|
||||||
|
const QDomNodeList nodeList = this->elementsByTagName(QStringLiteral("m"));
|
||||||
|
if (nodeList.isEmpty())
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int ii = 0; ii < nodeList.size(); ++ii)
|
||||||
|
{
|
||||||
|
const QString attrName = QStringLiteral("name");
|
||||||
|
QDomElement element = nodeList.at(ii).toElement();
|
||||||
|
const QString name = GetParametrString(element, attrName);
|
||||||
|
if (name == i.value())
|
||||||
|
{
|
||||||
|
SetAttribute(element, attrName, i.key());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
++i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VVITConverter::ToV0_3_0()
|
void VVITConverter::ToV0_3_0()
|
||||||
{
|
{
|
||||||
|
@ -282,3 +319,11 @@ void VVITConverter::ToV0_3_2()
|
||||||
PM_SystemV0_3_2();
|
PM_SystemV0_3_2();
|
||||||
Save();
|
Save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VVITConverter::ToV0_3_3()
|
||||||
|
{
|
||||||
|
SetVersion(QStringLiteral("0.3.3"));
|
||||||
|
ConvertMeasurementsToV0_3_3();
|
||||||
|
Save();
|
||||||
|
}
|
||||||
|
|
|
@ -61,10 +61,12 @@ private:
|
||||||
QDomElement AddMV0_3_0(const QString &name, qreal value);
|
QDomElement AddMV0_3_0(const QString &name, qreal value);
|
||||||
void GenderV0_3_1();
|
void GenderV0_3_1();
|
||||||
void PM_SystemV0_3_2();
|
void PM_SystemV0_3_2();
|
||||||
|
void ConvertMeasurementsToV0_3_3();
|
||||||
|
|
||||||
void ToV0_3_0();
|
void ToV0_3_0();
|
||||||
void ToV0_3_1();
|
void ToV0_3_1();
|
||||||
void ToV0_3_2();
|
void ToV0_3_2();
|
||||||
|
void ToV0_3_3();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // VVITCONVERTER_H
|
#endif // VVITCONVERTER_H
|
||||||
|
|
|
@ -40,8 +40,8 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
const QString VVSTConverter::MeasurementMinVerStr = QStringLiteral("0.3.0");
|
const QString VVSTConverter::MeasurementMinVerStr = QStringLiteral("0.3.0");
|
||||||
const QString VVSTConverter::MeasurementMaxVerStr = QStringLiteral("0.4.1");
|
const QString VVSTConverter::MeasurementMaxVerStr = QStringLiteral("0.4.2");
|
||||||
const QString VVSTConverter::CurrentSchema = QStringLiteral("://schema/standard_measurements/v0.4.1.xsd");
|
const QString VVSTConverter::CurrentSchema = QStringLiteral("://schema/standard_measurements/v0.4.2.xsd");
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
VVSTConverter::VVSTConverter(const QString &fileName)
|
VVSTConverter::VVSTConverter(const QString &fileName)
|
||||||
|
@ -91,6 +91,8 @@ QString VVSTConverter::XSDSchema(int ver) const
|
||||||
case (0x000400):
|
case (0x000400):
|
||||||
return QStringLiteral("://schema/standard_measurements/v0.4.0.xsd");
|
return QStringLiteral("://schema/standard_measurements/v0.4.0.xsd");
|
||||||
case (0x000401):
|
case (0x000401):
|
||||||
|
return QStringLiteral("://schema/standard_measurements/v0.4.1.xsd");
|
||||||
|
case (0x000402):
|
||||||
return CurrentSchema;
|
return CurrentSchema;
|
||||||
default:
|
default:
|
||||||
{
|
{
|
||||||
|
@ -122,6 +124,13 @@ void VVSTConverter::ApplyPatches()
|
||||||
V_FALLTHROUGH
|
V_FALLTHROUGH
|
||||||
}
|
}
|
||||||
case (0x000401):
|
case (0x000401):
|
||||||
|
{
|
||||||
|
ToV0_4_2();
|
||||||
|
const QString schema = XSDSchema(0x000402);
|
||||||
|
ValidateXML(schema, fileName);
|
||||||
|
V_FALLTHROUGH
|
||||||
|
}
|
||||||
|
case (0x000402):
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
@ -263,6 +272,34 @@ void VVSTConverter::PM_SystemV0_4_1()
|
||||||
parent.insertBefore(pm_system, personal);
|
parent.insertBefore(pm_system, personal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VVSTConverter::ConvertMeasurementsToV0_4_2()
|
||||||
|
{
|
||||||
|
const QMap<QString, QString> names = OldNamesToNewNames_InV0_3_3();
|
||||||
|
auto i = names.constBegin();
|
||||||
|
while (i != names.constEnd())
|
||||||
|
{
|
||||||
|
const QDomNodeList nodeList = this->elementsByTagName(QStringLiteral("m"));
|
||||||
|
if (nodeList.isEmpty())
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int ii = 0; ii < nodeList.size(); ++ii)
|
||||||
|
{
|
||||||
|
const QString attrName = QStringLiteral("name");
|
||||||
|
QDomElement element = nodeList.at(ii).toElement();
|
||||||
|
const QString name = GetParametrString(element, attrName);
|
||||||
|
if (name == i.value())
|
||||||
|
{
|
||||||
|
SetAttribute(element, attrName, i.key());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
++i;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
void VVSTConverter::ToV0_4_0()
|
void VVSTConverter::ToV0_4_0()
|
||||||
{
|
{
|
||||||
|
@ -281,3 +318,11 @@ void VVSTConverter::ToV0_4_1()
|
||||||
PM_SystemV0_4_1();
|
PM_SystemV0_4_1();
|
||||||
Save();
|
Save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
void VVSTConverter::ToV0_4_2()
|
||||||
|
{
|
||||||
|
SetVersion(QStringLiteral("0.4.2"));
|
||||||
|
ConvertMeasurementsToV0_4_2();
|
||||||
|
Save();
|
||||||
|
}
|
||||||
|
|
|
@ -60,9 +60,11 @@ private:
|
||||||
void ConvertMeasurementsToV0_4_0();
|
void ConvertMeasurementsToV0_4_0();
|
||||||
QDomElement AddMV0_4_0(const QString &name, qreal value, qreal sizeIncrease, qreal heightIncrease);
|
QDomElement AddMV0_4_0(const QString &name, qreal value, qreal sizeIncrease, qreal heightIncrease);
|
||||||
void PM_SystemV0_4_1();
|
void PM_SystemV0_4_1();
|
||||||
|
void ConvertMeasurementsToV0_4_2();
|
||||||
|
|
||||||
void ToV0_4_0();
|
void ToV0_4_0();
|
||||||
void ToV0_4_1();
|
void ToV0_4_1();
|
||||||
|
void ToV0_4_2();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // VMEASUREMENTCONVERTER_H
|
#endif // VMEASUREMENTCONVERTER_H
|
||||||
|
|
|
@ -264,6 +264,7 @@ const QString riseLengthSideSitting_M = QStringLiteral("rise_length_side_sitting
|
||||||
const QString riseLengthDiag_M = QStringLiteral("rise_length_diag"); // N05
|
const QString riseLengthDiag_M = QStringLiteral("rise_length_diag"); // N05
|
||||||
const QString riseLengthB_M = QStringLiteral("rise_length_b"); // N06
|
const QString riseLengthB_M = QStringLiteral("rise_length_b"); // N06
|
||||||
const QString riseLengthF_M = QStringLiteral("rise_length_f"); // N07
|
const QString riseLengthF_M = QStringLiteral("rise_length_f"); // N07
|
||||||
|
const QString riseLengthSide_M = QStringLiteral("rise_length_side"); // N08
|
||||||
// O
|
// O
|
||||||
const QString neckBackToWaistFront_M = QStringLiteral("neck_back_to_waist_front"); // O01
|
const QString neckBackToWaistFront_M = QStringLiteral("neck_back_to_waist_front"); // O01
|
||||||
const QString waistToWaistHalter_M = QStringLiteral("waist_to_waist_halter"); // O02
|
const QString waistToWaistHalter_M = QStringLiteral("waist_to_waist_halter"); // O02
|
||||||
|
@ -881,7 +882,8 @@ QStringList ListGroupN()
|
||||||
<< riseLengthSideSitting_M // N04
|
<< riseLengthSideSitting_M // N04
|
||||||
<< riseLengthDiag_M // N05
|
<< riseLengthDiag_M // N05
|
||||||
<< riseLengthB_M // N06
|
<< riseLengthB_M // N06
|
||||||
<< riseLengthF_M; // N07
|
<< riseLengthF_M // N07
|
||||||
|
<< riseLengthSide_M; // N08
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
@ -1603,6 +1605,8 @@ QString MapDiagrams(const QString &number)
|
||||||
V_FALLTHROUGH
|
V_FALLTHROUGH
|
||||||
case 6: // N07
|
case 6: // N07
|
||||||
return QStringLiteral("Np4");
|
return QStringLiteral("Np4");
|
||||||
|
case 7: // N08
|
||||||
|
return QStringLiteral("Np5");
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -420,6 +420,7 @@ extern const QString riseLengthSideSitting_M; // N04
|
||||||
extern const QString riseLengthDiag_M; // N05
|
extern const QString riseLengthDiag_M; // N05
|
||||||
extern const QString riseLengthB_M; // N06
|
extern const QString riseLengthB_M; // N06
|
||||||
extern const QString riseLengthF_M; // N07
|
extern const QString riseLengthF_M; // N07
|
||||||
|
extern const QString riseLengthSide_M; // N08
|
||||||
// O
|
// O
|
||||||
extern const QString neckBackToWaistFront_M; // O01
|
extern const QString neckBackToWaistFront_M; // O01
|
||||||
extern const QString waistToWaistHalter_M; // O02
|
extern const QString waistToWaistHalter_M; // O02
|
||||||
|
|
|
@ -1852,6 +1852,13 @@ void VTranslateMeasurements::InitGroupN()
|
||||||
"Full measurement description.");
|
"Full measurement description.");
|
||||||
InitMeasurement(riseLengthF_M, m, g, d, "N07");
|
InitMeasurement(riseLengthF_M, m, g, d, "N07");
|
||||||
//=================================================================================================================
|
//=================================================================================================================
|
||||||
|
m = translate("VTranslateMeasurements", "rise_length_side",
|
||||||
|
"Name in a formula. Don't use math symbols and space in name!!!!");
|
||||||
|
g = translate("VTranslateMeasurements", "Rise length, side", "Full measurement name.");
|
||||||
|
d = translate("VTranslateMeasurements", "Vertical distance from Waist side down to Crotch level. Use formula "
|
||||||
|
"(Height: Waist side - Leg: Crotch to floor).", "Full measurement description.");
|
||||||
|
InitMeasurement(riseLengthSide_M, m, g, d, "N08");
|
||||||
|
//=================================================================================================================
|
||||||
}
|
}
|
||||||
|
|
||||||
//---------------------------------------------------------------------------------------------------------------------
|
//---------------------------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -334,6 +334,7 @@ void TST_MeasurementRegExp::TestCorrectOrderMeasurement_data()
|
||||||
QTest::newRow("N05") << riseLengthDiag_M << "rise_length_diag";
|
QTest::newRow("N05") << riseLengthDiag_M << "rise_length_diag";
|
||||||
QTest::newRow("N06") << riseLengthB_M << "rise_length_b";
|
QTest::newRow("N06") << riseLengthB_M << "rise_length_b";
|
||||||
QTest::newRow("N07") << riseLengthF_M << "rise_length_f";
|
QTest::newRow("N07") << riseLengthF_M << "rise_length_f";
|
||||||
|
QTest::newRow("N08") << riseLengthSide_M << "rise_length_side";
|
||||||
QTest::newRow("O01") << neckBackToWaistFront_M << "neck_back_to_waist_front";
|
QTest::newRow("O01") << neckBackToWaistFront_M << "neck_back_to_waist_front";
|
||||||
QTest::newRow("O02") << waistToWaistHalter_M << "waist_to_waist_halter";
|
QTest::newRow("O02") << waistToWaistHalter_M << "waist_to_waist_halter";
|
||||||
QTest::newRow("O03") << waistNaturalCirc_M << "waist_natural_circ";
|
QTest::newRow("O03") << waistNaturalCirc_M << "waist_natural_circ";
|
||||||
|
|
Loading…
Reference in New Issue
Block a user