# Copyright 2005, @Last Software, Inc. # This software is provided as an example of using the Ruby interface # to SketchUp. # Permission to use, copy, modify, and distribute this software for # any purpose and without fee is hereby granted, provided that the above # copyright notice appear in all copies. # THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #----------------------------------------------------------------------------- require 'sketchup.rb' #----------------------------------------------------------------------------- def newCameraTest camera = Sketchup::Camera.new if (camera) UI.messagebox camera else UI.messagebox "Failure" end end def aspectRatioCameraTest camera = Sketchup::Camera.new ar = camera.aspect_ratio if (ar) UI.messagebox ar else UI.messagebox "Failure" end end def aspectRatioEqualsCameraTest camera = Sketchup::Camera.new ar = camera.aspect_ratio if (ar) UI.messagebox ar else UI.messagebox "Failure" end ar = camera.aspect_ratio = 1.85 if (ar) UI.messagebox ar else UI.messagebox "Failure" end end def descriptionCameraTest camera = Sketchup::Camera.new description = camera.description = "35 mm Camera" if (description) UI.messagebox description else UI.messagebox "Failure" end description = camera.description if (description) UI.messagebox description else UI.messagebox "Failure" end end def descriptionEqualsCameraTest camera = Sketchup::Camera.new description = camera.description = "35 mm Camera" if (description) UI.messagebox description else UI.messagebox "Failure" end description = camera.description if (description) UI.messagebox description else UI.messagebox "Failure" end end def directionCameraTest camera = Sketchup::Camera.new # Returns 0,0,-1 which indicates it is pointed down the Z axis direction = camera.direction if (direction) UI.messagebox direction else UI.messagebox "Failure" end end def eyeCameraTest camera = Sketchup::Camera.new # Returns 0,0,1 which indicates it is right in line with the Z axis. eye = camera.eye if (eye) UI.messagebox eye else UI.messagebox "Failure" end end def focalLengthCameraTest camera = Sketchup::Camera.new l = camera.focal_length if (l) UI.messagebox l else UI.messagebox "Failure" end end def focalLengthEqualsCameraTest camera = Sketchup::Camera.new l = camera.focal_length if (l) UI.messagebox l else UI.messagebox "Failure" end l = camera.focal_length=120 if (l) UI.messagebox l else UI.messagebox "Failure" end end def fovCameraTest camera = Sketchup::Camera.new fov = camera.fov if (fov) UI.messagebox fov else UI.messagebox "Failure" end end def fovEqualsCameraTest camera = Sketchup::Camera.new fov = camera.fov if (fov) UI.messagebox fov else UI.messagebox "Failure" end fov = camera.fov=56.78 if (fov) UI.messagebox fov else UI.messagebox "Failure" end end def heightCameraTest camera = Sketchup::Camera.new h = camera.height if (h) UI.messagebox h else UI.messagebox "Failure" end end def heightEqualsCameraTest camera = Sketchup::Camera.new h = camera.height if (h) UI.messagebox h else UI.messagebox "Failure" end h = camera.height=20 if (h) UI.messagebox h else UI.messagebox "Failure" end end def imageWidthCameraTest camera = Sketchup::Camera.new w = camera.image_width if (w) UI.messagebox w else UI.messagebox "Failure" end end def imageWidthEqualsCameraTest camera = Sketchup::Camera.new w = camera.image_width if (w) UI.messagebox w else UI.messagebox "Failure" end w = camera.image_width=1.0 if (w) UI.messagebox w else UI.messagebox "Failure" end end def perspectiveEqualsCameraTest camera = Sketchup::Camera.new status = camera.perspective? if (status) UI.messagebox "Perspective" else UI.messagebox "Orthographic" end status = camera.perspective=false if (status) UI.messagebox "Perspective" else UI.messagebox "Orthographic" end end def perspectiveCameraTest camera = Sketchup::Camera.new status = camera.perspective? if (status) UI.messagebox "Perspective" else UI.messagebox "Orthographic" end end def setCameraTest camera = Sketchup::Camera.new eye = camera.eye target = camera.target up = camera.up # We just set it to exactly what it was pointing at in the first place camera = camera.set eye, target, up if (camera) UI.messagebox camera else UI.messagebox "Failure" end end def targetCameraTest camera = Sketchup::Camera.new # Target point is 0,0,0 t = camera.target if (t) UI.messagebox t else UI.messagebox "Failure" end end def upCameraTest camera = Sketchup::Camera.new # 0.0, 1.0, 0.0 up = camera.up if (up) UI.messagebox up else UI.messagebox "Failure" end end def xaxisCameraTest camera = Sketchup::Camera.new # 1.0, 0.0, 0.0 v = camera.xaxis if (v) UI.messagebox v else UI.messagebox "Failure" end end def yaxisCameraTest camera = Sketchup::Camera.new # 0.0, 1.0, 0.0 v = camera.yaxis if (v) UI.messagebox v else UI.messagebox "Failure" end end def zaxisCameraTest camera = Sketchup::Camera.new # 0.0, 0.0, -1.0 v = camera.zaxis if (v) UI.messagebox v else UI.messagebox "Failure" end end if( not file_loaded?("cameratests.rb") ) # This will add a separator to the menu, but only once add_separator_to_menu("Plugins") plugins_menu = UI.menu("Plugins") Camera_menu = plugins_menu.add_submenu("Camera Tests") Camera_menu.add_item("Sketchup::Camera.new") { newCameraTest } Camera_menu.add_item("Camera.aspect_ratio") { aspectRatioCameraTest } Camera_menu.add_item("Camera.aspect_ratio=") { aspectRatioEqualsCameraTest } Camera_menu.add_item("Camera.description") { descriptionCameraTest } Camera_menu.add_item("Camera.description=") { descriptionEqualsCameraTest } Camera_menu.add_item("Camera.direction") { directionCameraTest } Camera_menu.add_item("Camera.eye") { eyeCameraTest } Camera_menu.add_item("Camera.focal_length") { focalLengthCameraTest } Camera_menu.add_item("Camera.focal_length=") { focalLengthEqualsCameraTest } Camera_menu.add_item("Camera.fov") { fovCameraTest } Camera_menu.add_item("Camera.fov=") { fovEqualsCameraTest } Camera_menu.add_item("Camera.height") { heightCameraTest } Camera_menu.add_item("Camera.height=") { heightEqualsCameraTest } Camera_menu.add_item("Camera.image_width") { imageWidthCameraTest } Camera_menu.add_item("Camera.image_width=") { imageWidthEqualsCameraTest } Camera_menu.add_item("Camera.perspective=") { perspectiveEqualsCameraTest } Camera_menu.add_item("Camera.perspective") { perspectiveCameraTest } Camera_menu.add_item("Camera.set") { setCameraTest } Camera_menu.add_item("Camera.target") { targetCameraTest } Camera_menu.add_item("Camera.up") { upCameraTest } Camera_menu.add_item("Camera.xaxis") { xaxisCameraTest } Camera_menu.add_item("Camera.yaxis") { yaxisCameraTest } Camera_menu.add_item("Camera.zaxis") { zaxisCameraTest } end #----------------------------------------------------------------------------- file_loaded("cameratests.rb")