summaryrefslogtreecommitdiff
path: root/CSXCAD/matlab/private/Add2Property.m
diff options
context:
space:
mode:
Diffstat (limited to 'CSXCAD/matlab/private/Add2Property.m')
-rw-r--r--CSXCAD/matlab/private/Add2Property.m26
1 files changed, 26 insertions, 0 deletions
diff --git a/CSXCAD/matlab/private/Add2Property.m b/CSXCAD/matlab/private/Add2Property.m
new file mode 100644
index 0000000..e38ddc9
--- /dev/null
+++ b/CSXCAD/matlab/private/Add2Property.m
@@ -0,0 +1,26 @@
+function CSX = Add2Property(CSX, propName, newPrim, primName)
+% function CSX = Add2Property(CSX, propName, newPrim, primName)
+%
+% meant for internal use!!
+%
+% CSXCAD matlab interface
+% -----------------------
+% author: Thorsten Liebig
+
+type = GetPropertyType(CSX, propName);
+if isempty(type)
+ error('CSXCAD:Add2Property',['the type for the property "' propName '" cannot be found']);
+end
+
+pos = GetPropertyPosition(CSX, type, propName);
+if (pos==0)
+ error('CSXCAD:Add2Property',['property "' propName '" of type "' type '" not found!']);
+end
+
+if ~isfield(CSX.Properties.(type){pos}, 'Primitives')
+ CSX.Properties.(type){pos}.Primitives.(primName){1}=newPrim;
+elseif ~isfield(CSX.Properties.(type){pos}.Primitives, primName)
+ CSX.Properties.(type){pos}.Primitives.(primName){1}=newPrim;
+else
+ CSX.Properties.(type){pos}.Primitives.(primName){end+1}=newPrim;
+end