use of artisynth.core.probes.Probe in project artisynth_core by artisynth.
the class SimpleCollide method removeObject.
private void removeObject(ModelComponent comp, ObjectType type) {
MechModel mechMod = (MechModel) models().get(0);
ComponentList<Probe> myProbes = getInputProbes();
for (Probe p : myProbes) {
System.out.println("type's name: " + type.name());
System.out.println("probe's name: " + p.getName());
if (type.name().equals(p.getName())) {
removeInputProbe(p);
}
}
switch(type) {
case FemEllipsoid:
case FemSphere:
case FemCube:
{
mechMod.removeModel((FemModel3d) comp);
break;
}
case Box:
case Molar:
case Bin:
case Paw:
case House:
{
mechMod.removeRigidBody((RigidBody) comp);
break;
}
default:
{
throw new InternalErrorException("Unimplemented type " + type);
}
}
}
use of artisynth.core.probes.Probe in project artisynth_core by artisynth.
the class MenuBarHandler method createViewMenu.
private void createViewMenu(JMenu menu) {
JMenuItem item;
RootModel root = myMain.getRootModel();
boolean hasTraceables = root.getNumTraceables() > 0;
boolean hasTraces = false;
boolean hasVisibleTrace = false;
boolean hasInvisibleTrace = false;
for (Probe p : root.getOutputProbes()) {
if (p instanceof TracingProbe) {
hasTraces = true;
if (RenderableUtils.isVisible((TracingProbe) p)) {
hasVisibleTrace = true;
} else {
hasInvisibleTrace = true;
}
}
}
if (isTimelineVisible) {
addMenuItem(menu, "Hide timeline");
} else {
addMenuItem(menu, "Show timeline");
}
if (JythonInit.jythonIsAvailable()) {
if (myMain.myJythonFrame != null && myMain.myJythonFrame.isVisible()) {
addMenuItem(menu, "Hide Jython console");
} else {
addMenuItem(menu, "Show Jython console");
}
}
if (InverseManager.inverseControllerExists()) {
if (InverseManager.isInversePanelVisible()) {
addMenuItem(menu, "Hide Inverse panel");
} else {
addMenuItem(menu, "Show Inverse panel");
}
}
if (isToolbarVisible) {
addMenuItem(menu, "Hide viewer toolbar");
} else {
addMenuItem(menu, "Show viewer toolbar");
}
addMenuItem(menu, "Show movie panel");
menu.add(new JSeparator());
addMenuItem(menu, "New viewer");
SelectionManager sm = myMain.getSelectionManager();
if (sm.getNumSelected() > 0) {
addMenuItem(menu, "Center view on selection");
}
if (getMainViewer().isOrthogonal()) {
addMenuItem(menu, "Perspective view");
} else {
addMenuItem(menu, "Orthographic view");
}
menu.add(new JSeparator());
addMenuItem(menu, "Merge control panels");
addMenuItem(menu, "Separate control panels");
addMenuItem(menu, "Show progress");
if (myFrame.getNavPanel().getHideEmptyComponents()) {
addMenuItem(menu, "Show empty components in navpanel");
} else {
addMenuItem(menu, "Hide empty components in navpanel");
}
menu.add(new JSeparator());
item = addMenuItem(menu, "Clear traces");
item.setEnabled(hasTraceables);
item = addMenuItem(menu, "Disable all tracing");
item.setEnabled(hasTraceables);
item = addMenuItem(menu, "Remove traces");
item.setEnabled(hasTraces);
item = addMenuItem(menu, "Set traces visible");
item.setEnabled(hasInvisibleTrace);
item = addMenuItem(menu, "Set traces invisible");
item.setEnabled(hasVisibleTrace);
}
use of artisynth.core.probes.Probe in project artisynth_core by artisynth.
the class ProbeInfo method duplicateProbe.
/**
* duplicate the probe
*/
private void duplicateProbe() {
// don't need to supply a copyMap to copy because it won't be used
Probe oldProbe = getProbe();
if (!(oldProbe.getParent() instanceof MutableCompositeComponent)) {
throw new InternalErrorException("Probe's parent is not editable");
}
Probe newProbe = null;
try {
newProbe = (Probe) getProbe().clone();
} catch (Exception e) {
e.printStackTrace();
throw new InternalErrorException("Cannot clone probe of type " + getProbe().getClass());
}
// set start time so that probe follows right after this one ...
double startTime = getProbe().getStartTime();
double stopTime = getProbe().getStopTime();
newProbe.setStartTime(stopTime);
newProbe.setStopTime(stopTime + (stopTime - startTime));
AddComponentsCommand cmd = new AddComponentsCommand("duplicate probe", newProbe, (MutableCompositeComponent) oldProbe.getParent());
getMain().getUndoManager().saveStateAndExecute(cmd);
SelectionManager selman = getMain().getSelectionManager();
selman.removeSelected(oldProbe);
selman.addSelected(newProbe);
// myController.deselectAllProbes(); XXX need to fix?
}
use of artisynth.core.probes.Probe in project artisynth_core by artisynth.
the class TimelineController method resetAll.
// /**
// * Called internally when the step time is set by the GUI
// */
// void setStepTime (double newStep) {
// myScheduler.setStepTime (newStep);
// }
/**
* Resets the timeline. Called when it is first created and when new
* models are loaded.
*/
public void resetAll() {
// Assume that caller has ensured the scheduler is not running
// myScheduler.stopRequest();
// myScheduler.waitForPlayingToStop();
RootModel rootModel = myMain.getRootModel();
int count = myInTracks.size();
for (int i = 0; i < count; i++) {
deleteTrack(Track.TYPE_INPUT, 0, false);
}
count = myOutTracks.size();
for (int j = 0; j < count; j++) {
deleteTrack(Track.TYPE_OUTPUT, 0, false);
}
myProbeMap.clear();
// Add the root model on timeline
Track suitableTrack;
// Process all the input probes into proper places
for (Probe p : rootModel.getInputProbes()) {
addProbe(p);
}
// Process all the output probes into proper places
for (Probe p : rootModel.getOutputProbes()) {
if (!(p instanceof WayPointProbe)) {
addProbe(p);
}
}
// Process the waypoints
refreshWayPoints(rootModel);
// for (WayPoint wayPoint : getWayPoints().getPoints ()) {
// addWayPointFromRoot (wayPoint);
// }
// setAppropriateVirtualWaypoint (false);
// timescale.updateTimeCursor (0);
myToolBar.updateToolbarState(rootModel);
closeProbeEditors();
myProbeEditors = new ArrayList<NumericProbeEditor>();
selectedProbes = new ArrayList<ProbeInfo>();
expandToggle.setSelected(false);
muteToggle.setSelected(false);
updateWidgets(rootModel, /*refreshCursor=*/
true);
updateDisplay();
// requestUpdate (UPDATE_WIDGETS | REFRESH_CURSOR);
}
use of artisynth.core.probes.Probe in project artisynth_core by artisynth.
the class TracingProbePanel method getPrototypeProbe.
protected TracingProbe getPrototypeProbe(String traceableName) {
TracingProbe tmpProbe = TracingProbe.create(myTraceable, traceableName);
Class<?> type = tmpProbe.getClass();
TracingProbe comp = myPrototypeMap.get(type);
if (comp == null) {
// look for prototype as the last instance in the
// container
RootModel root = myMain.getRootModel();
for (Probe probe : root.getOutputProbes()) {
if (type.isAssignableFrom(probe.getClass())) {
comp = (TracingProbe) probe;
}
}
if (comp == null || !(comp instanceof CopyableComponent)) {
comp = tmpProbe;
// try {
// comp = (TracingProbe)type.newInstance();
// }
// catch (Exception e) {
// throw new InternalErrorException (
// "cannot create no-args instance of " + type);
// }
initializePrototype(comp);
} else {
comp = (TracingProbe) ((CopyableComponent) comp).copy(0, null);
}
myPrototypeMap.put(type, comp);
}
return comp;
}
Aggregations