lib/util.rb in gmath3D-0.2.4 vs lib/util.rb in gmath3D-0.2.5
- old
+ new
@@ -1,23 +1,36 @@
-module Util3D
- def self.check_arg_type(type, instance)
- unless(instance.kind_of?(type))
- raise(ArgumentError::new("type mismatch: #{instance.class} for #{type}"))
- end
- end
-
- def self.raise_argurment_error(instance)
- raise(ArgumentError::new("type mismatch: #{instance.class}"))
- end
-end
-
-module GMath3D
- # Including 'vertices' methodshould be implimented that gets geometry vertices as Array of Vector3.
- module BoxAvailable
- # [Output]
- # return axially aligned bounding box as Box.
- def box
- return Box.from_points( vertices )
- end
- end
-end
-
+module Util3D
+ def self.check_arg_type(type, instance, nullable = false, array_check = false)
+ return if(nullable && instance.nil?)
+ if(array_check && instance.kind_of?(Array))
+ instance.each do |item|
+ check_arg_type(type, item, nullable, array_check)
+ end
+ else
+ unless(instance.kind_of?(type))
+ raise(ArgumentError::new("type mismatch: #{instance.class} for #{type}"))
+ end
+ end
+ end
+
+ def self.raise_argurment_error(instance)
+ raise(ArgumentError::new("type mismatch: #{instance.class}"))
+ end
+
+ def self.check_key_arg(arg, key)
+ if(!arg.include?(key))
+ raise(ArgumentError::new("args should be contains: #{key}"))
+ end
+ end
+end
+
+module GMath3D
+ # Including 'vertices' methodshould be implimented that gets geometry vertices as Array of Vector3.
+ module BoxAvailable
+ # [Output]
+ # return axially aligned bounding box as Box.
+ def box
+ return Box.from_points( vertices )
+ end
+ end
+end
+