use of maspack.render.GL.GLViewer in project artisynth_core by artisynth.
the class NURBSViewer method main.
public static void main(String[] args) {
StringHolder fileName = new StringHolder();
IntHolder width = new IntHolder(400);
IntHolder height = new IntHolder(400);
ArgParser parser = new ArgParser("java maspack.geometry.NURBSViewer");
parser.addOption("-width %d #width (pixels)", width);
parser.addOption("-height %d #height (pixels)", height);
parser.addOption("-drawAxes %v #draw coordinate axes", drawAxes);
parser.addOption("-file %s #wavefront file name", fileName);
parser.addOption("-sphere %v #create a NURBS sphere", addSphere);
parser.addOption("-circle %v #create a NURBS circle", addCircle);
parser.addOption("-mesh %v #create a mesh for surfaces", addMesh);
parser.addOption("-collider %v #create a colliding object for meshes", collider);
parser.addOption("-axisLength %f #coordinate axis length", axisLength);
parser.addOption("-GLVersion %d{2,3} " + "#version of openGL for graphics", glVersion);
parser.matchAllArgs(args);
NURBSViewer viewFrame = null;
try {
GLVersion glv = (glVersion.value == 3 ? GLVersion.GL3 : GLVersion.GL2);
viewFrame = new NURBSViewer(width.value, height.value, glv);
GLViewer viewer = viewFrame.getViewer();
if (fileName.value != null) {
viewFrame.addNURBS(new File(fileName.value));
}
if (addSphere.value) {
NURBSSurface sphere = new NURBSSurface();
sphere.setSphere(0, 0, 0, 10);
if (addMesh.value) {
viewFrame.addNURBSWithMesh(sphere);
} else {
viewFrame.addNURBS(sphere);
}
}
if (addCircle.value) {
NURBSCurve3d circle = new NURBSCurve3d();
circle.setCircle(0, 0, 10);
viewFrame.addNURBS(circle);
}
viewer.autoFitPerspective();
if (drawAxes.value) {
if (axisLength.value > 0) {
viewer.setAxisLength(axisLength.value);
} else {
viewer.setAxisLength(GLViewer.AUTO_FIT);
}
}
if (collider.value) {
viewFrame.addCollidable();
}
} catch (Exception e) {
e.printStackTrace();
}
viewFrame.setVisible(true);
}
Aggregations