Search in sources :

Example 6 with Probe

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);
            }
    }
}
Also used : MechModel(artisynth.core.mechmodels.MechModel) FemModel3d(artisynth.core.femmodels.FemModel3d) RigidBody(artisynth.core.mechmodels.RigidBody) InternalErrorException(maspack.util.InternalErrorException) Probe(artisynth.core.probes.Probe) NumericInputProbe(artisynth.core.probes.NumericInputProbe)

Example 7 with Probe

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);
}
Also used : SelectionManager(artisynth.core.gui.selectionManager.SelectionManager) RootModel(artisynth.core.workspace.RootModel) TracingProbe(artisynth.core.probes.TracingProbe) JMenuItem(javax.swing.JMenuItem) Probe(artisynth.core.probes.Probe) TracingProbe(artisynth.core.probes.TracingProbe) JSeparator(javax.swing.JSeparator)

Example 8 with Probe

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?
}
Also used : SelectionManager(artisynth.core.gui.selectionManager.SelectionManager) MutableCompositeComponent(artisynth.core.modelbase.MutableCompositeComponent) AddComponentsCommand(artisynth.core.gui.editorManager.AddComponentsCommand) InternalErrorException(maspack.util.InternalErrorException) NumericOutputProbe(artisynth.core.probes.NumericOutputProbe) WayPointProbe(artisynth.core.probes.WayPointProbe) Probe(artisynth.core.probes.Probe) NumericInputProbe(artisynth.core.probes.NumericInputProbe) InternalErrorException(maspack.util.InternalErrorException) IOException(java.io.IOException)

Example 9 with Probe

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);
}
Also used : RootModel(artisynth.core.workspace.RootModel) NumericProbeEditor(artisynth.core.gui.probeEditor.NumericProbeEditor) WayPointProbe(artisynth.core.probes.WayPointProbe) Probe(artisynth.core.probes.Probe) WayPointProbe(artisynth.core.probes.WayPointProbe) WayPoint(artisynth.core.probes.WayPoint)

Example 10 with Probe

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;
}
Also used : RootModel(artisynth.core.workspace.RootModel) CopyableComponent(artisynth.core.modelbase.CopyableComponent) TracingProbe(artisynth.core.probes.TracingProbe) TracingProbe(artisynth.core.probes.TracingProbe) Probe(artisynth.core.probes.Probe)

Aggregations

Probe (artisynth.core.probes.Probe)16 WayPointProbe (artisynth.core.probes.WayPointProbe)11 NumericInputProbe (artisynth.core.probes.NumericInputProbe)5 TracingProbe (artisynth.core.probes.TracingProbe)5 NumericOutputProbe (artisynth.core.probes.NumericOutputProbe)4 WayPoint (artisynth.core.probes.WayPoint)4 RootModel (artisynth.core.workspace.RootModel)3 SelectionManager (artisynth.core.gui.selectionManager.SelectionManager)2 Controller (artisynth.core.modelbase.Controller)2 Model (artisynth.core.modelbase.Model)2 Monitor (artisynth.core.modelbase.Monitor)2 Point (java.awt.Point)2 InternalErrorException (maspack.util.InternalErrorException)2 FemModel3d (artisynth.core.femmodels.FemModel3d)1 NumericProbeDisplayLarge (artisynth.core.gui.NumericProbeDisplayLarge)1 AddComponentsCommand (artisynth.core.gui.editorManager.AddComponentsCommand)1 NumericProbeEditor (artisynth.core.gui.probeEditor.NumericProbeEditor)1 MechModel (artisynth.core.mechmodels.MechModel)1 RigidBody (artisynth.core.mechmodels.RigidBody)1 CopyableComponent (artisynth.core.modelbase.CopyableComponent)1