internal override void parseJObject(JObject obj)
{
base.parseJObject(obj);
JObject jobj = obj.GetValue("Points", StringComparison.InvariantCultureIgnoreCase) as JObject;
if (jobj != null)
Points = mDatabase.parseJObject<IfcCartesianPointList>(jobj);
JArray array = obj.GetValue("Segments", StringComparison.InvariantCultureIgnoreCase) as JArray;
if (array != null)
{
foreach (JToken tok in array)
{
JObject ob = tok as JObject;
if (ob != null)
{
JToken jtoken = ob.GetValue("IfcLineIndex", StringComparison.InvariantCultureIgnoreCase);
if (jtoken != null)
mSegments.Add(new IfcLineIndex(jtoken.Value<string>().Split(" ".ToCharArray()).ToList().ConvertAll(x => int.Parse(x))));
else
{
jtoken = ob.GetValue("IfcArcIndex", StringComparison.InvariantCultureIgnoreCase);
if (jtoken != null)
{
List<int> tokens = jtoken.Value<string>().Split(" ".ToCharArray()).ToList().ConvertAll(x => int.Parse(x));
mSegments.Add(new IfcArcIndex(tokens[0], tokens[1], tokens[2]));
}
}
}
}
}
JToken token = obj.GetValue("SelfIntersect", StringComparison.InvariantCultureIgnoreCase);
if (token != null)
Enum.TryParse<IfcLogicalEnum>(token.Value<string>(), true, out mSelfIntersect);
}