|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectartisynth.core.modelbase.ModelComponentBase
artisynth.core.modelbase.ModelAgentBase
artisynth.core.probes.Probe
artisynth.core.probes.NumericProbeBase
artisynth.core.probes.NumericInputProbe
public class NumericInputProbe
Nested Class Summary |
---|
Nested classes/interfaces inherited from interface artisynth.core.modelbase.ModelComponent |
---|
ModelComponent.NavpanelVisibility |
Field Summary | |
---|---|
static double |
EXPLICIT_TIME
|
static PropertyList |
myProps
|
Fields inherited from class artisynth.core.probes.Probe |
---|
useOldSaveMethod, writeStartStopTimeInSeconds |
Fields inherited from class artisynth.core.modelbase.ModelComponentBase |
---|
enforceUniqueCompositeNames, enforceUniqueNames, myNumber, NULL_OBJ, useCompactPathNames |
Fields inherited from interface artisynth.core.modelbase.CopyableComponent |
---|
COPY_REFERENCES |
Constructor Summary | |
---|---|
NumericInputProbe()
|
|
NumericInputProbe(ModelComponent e)
|
|
NumericInputProbe(ModelComponent e,
java.lang.String[] propNames,
double startTime,
double stopTime)
|
|
NumericInputProbe(ModelComponent e,
java.lang.String propName,
double startTime,
double stopTime)
|
|
NumericInputProbe(ModelComponent e,
java.lang.String propName,
java.lang.String fileName)
|
|
NumericInputProbe(Property[] props,
ModelComponent e)
|
|
NumericInputProbe(Property[] props,
ModelComponent e,
double ymin,
double ymax)
|
|
NumericInputProbe(Property prop,
ModelComponent e)
|
|
NumericInputProbe(Property prop,
ModelComponent e,
double ymin,
double ymax)
|
Method Summary | |
---|---|
void |
addData(double[] data,
double timeStep)
Adds one or more data samples to internal data list. Samples can be evenly distributed with given time step or time of each sample can be explicitly set. |
void |
addData(double t,
double[] v)
|
void |
addData(double t,
Vector v)
Adds data to internal data list. |
void |
addData(double t,
VectorNd v)
Adds data to internal data list. |
void |
addData(java.io.File file,
double timeStep)
|
void |
addData(ReaderTokenizer rtok,
double timeStep)
|
void |
apply(double t)
Interpolate data to specified time and set related properties values. |
java.lang.Object |
clone()
|
ModelComponent |
copy(int flags,
java.util.Map<ModelComponent,ModelComponent> copyMap)
Create a copy of this component. |
void |
createNumericList(int vsize)
|
ComponentState |
createState(ComponentState prevState)
Factory routine to create a state object for this component, which can then be used as an argument for HasState.setState(artisynth.core.modelbase.ComponentState) and HasState.getState(artisynth.core.modelbase.ComponentState) . |
PropertyList |
getAllPropertyInfo()
Returns a list giving static information about all properties exported by this object. |
boolean |
getCopyReferences(java.util.List<ModelComponent> refs,
ModelComponent ancestor)
Collects external references which must also be copied in order to duplicate this component. |
boolean |
getExtendData()
Returns true if data is to be extended past the last knot point |
NumericList |
getInput()
|
void |
getState(ComponentState state)
Get the current state of this component. |
boolean |
hasState()
Returns true if this component has state. |
boolean |
isDuplicatable()
Returns true if this component can be duplicated. |
boolean |
isInput()
Returns true if this probe is an input probe, and false otherwise. |
boolean |
isSettable()
|
void |
load()
When called (perhaps by the Artsynth timeline), causes information about this probe to be loaded from the attached file. |
void |
loadEmpty()
|
void |
postscan(java.util.Deque<ScanToken> tokens,
CompositeComponent ancestor)
Performs any required post-scanning for this component. |
void |
read(java.io.File file)
Reads the start and stop times, scale value, and data for this probe from an ascii file. |
void |
save()
When called (perhaps by the Artsynth timeline), causes information about this probe to be written to the attached file. |
void |
scan(ReaderTokenizer rtok,
java.lang.Object ref)
Scans this element from a ReaderTokenizer. |
boolean |
scanItem(ReaderTokenizer rtok,
java.util.Deque<ScanToken> tokens)
|
void |
set(Property[] props,
java.lang.String[] driverExpressions,
java.lang.String[] variableNames,
int[] variableDimensions)
|
void |
set(Property[] props,
java.lang.String[] driverExpressions,
java.lang.String[] variableNames,
int[] variableDimensions,
PlotTraceInfo[] traceInfos)
|
void |
setAttachedFileName(java.lang.String fileName)
|
void |
setAttachedFileName(java.lang.String fileName,
java.lang.String fmtStr)
|
void |
setData(double sec)
|
void |
setExtendData(boolean extend)
Enables extension of data past the last knot point. |
void |
setInputProperties(Property[] props)
|
void |
setState(ComponentState state)
Set the state of this component. |
void |
write(java.io.PrintWriter pw,
java.lang.String fmtStr)
Writes the start and stop times, scale value, and data for this probe to a PrintWriter, using the format described for read(File) . |
void |
writeItems(java.io.PrintWriter pw,
NumberFormat fmt,
CompositeComponent ancestor)
write components to a file |
Methods inherited from class artisynth.core.probes.Probe |
---|
getAttachedFile, getAttachedFileName, getChildren, getDefaultScale, getDefaultStartTime, getDefaultStopTime, getDefaultUpdateInterval, getInitialState, getProperty, getScale, getStartTime, getStopTime, getTimelineTime, getTrack, getUpdateInterval, getVirtualTime, hasAttachedFile, hasChildren, isActive, isAttachedFileRelative, isEventTime, isScalable, nextEventTime, setActive, setName, setScalable, setStartStopTimes, setStartTime, setStopTime, setTrack, setUpdateInterval |
Methods inherited from class artisynth.core.modelbase.ModelAgentBase |
---|
finalize, getModel, initialize, setModel, setModelFromComponent, write |
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface artisynth.core.modelbase.ModelComponent |
---|
connectToHierarchy, disconnectFromHierarchy, getHardReferences, getName, getNavpanelVisibility, getNumber, getParent, getSoftReferences, isFixed, isMarked, isSelected, notifyParentOfChange, setFixed, setMarked, setName, setNumber, setParent, setSelected, updateReferences |
Methods inherited from interface maspack.properties.HasProperties |
---|
getProperty |
Methods inherited from interface maspack.properties.HierarchyNode |
---|
getChildren, hasChildren |
Methods inherited from interface maspack.util.Scannable |
---|
isWritable, write |
Field Detail |
---|
public static final double EXPLICIT_TIME
public static PropertyList myProps
Constructor Detail |
---|
public NumericInputProbe()
public NumericInputProbe(ModelComponent e)
public NumericInputProbe(ModelComponent e, java.lang.String propName, java.lang.String fileName) throws java.io.IOException
java.io.IOException
public NumericInputProbe(ModelComponent e, java.lang.String propName, double startTime, double stopTime)
public NumericInputProbe(ModelComponent e, java.lang.String[] propNames, double startTime, double stopTime)
public NumericInputProbe(Property prop, ModelComponent e)
public NumericInputProbe(Property prop, ModelComponent e, double ymin, double ymax)
public NumericInputProbe(Property[] props, ModelComponent e)
public NumericInputProbe(Property[] props, ModelComponent e, double ymin, double ymax)
Method Detail |
---|
public PropertyList getAllPropertyInfo()
HasProperties
getAllPropertyInfo
in interface HasProperties
getAllPropertyInfo
in class NumericProbeBase
public void setInputProperties(Property[] props)
public void setExtendData(boolean extend)
extend
- true if data is to be extended past the last knot pointpublic boolean getExtendData()
public void read(java.io.File file) throws java.io.IOException
2.0 10.0 1.2 linear 2 explicit 0.0 2.0 2.0 1.1 4.0 3.0 3.0 0.0 1.0specifies a probe with a start and stop time of 2 and 10 seconds, respectively, a scale value of 1.2, linear interpolation, 2 values at each knot point, and three knot points at times 0.0, 1.1, and 3.0. If knot time is given implicitly by a time setp, then time is assumed to start at 0. The following input
2000000000 3000000000 2.5 step 2 2.0 2.0 2.0 4.0 3.0 0.0 1.0specifies a probe with a start and stop time of 2 and 3 seconds, respectively, a scale value of 2.5, step interpolation, 2 values at each knot point, and three knot points with times of 0, 2.0, and 4.0 (given implicity by a step size of 2.0).
The character '#' is a comment character, causing all subsequent input up to the next new line to be ignored.
file
- File from which to read the probe information
java.io.IOException
- if an I/O or format error occurred.public void write(java.io.PrintWriter pw, java.lang.String fmtStr) throws java.io.IOException
read(File)
. The format used for producing floating point numbers can be
controlled using a printf-style format string, details of which are
described in NumberFormat
.
pw
- writer which accepts the outputfmtStr
- printf-style format string (if set to null then "%g" will be assumed,
which will produce full precision output).
java.io.IOException
- if an I/O error occurs.public void setAttachedFileName(java.lang.String fileName)
setAttachedFileName
in class Probe
public void setAttachedFileName(java.lang.String fileName, java.lang.String fmtStr)
public void save() throws java.io.IOException
save
in class Probe
java.io.IOException
write(java.io.PrintWriter, java.lang.String)
public void loadEmpty()
public void load() throws java.io.IOException
load
in class Probe
java.io.IOException
public void addData(java.io.File file, double timeStep) throws java.io.IOException
java.io.IOException
public void addData(double[] data, double timeStep)
EXPLICIT_TIME
and before every data sample must be its temporal
information.NumericProbeBase.getVsize()
method.
data
- data array, which can contain multiple data samplestimeStep
- time step in seconds or EXPLICIT_TIME
if data contains explicitly
set timestampspublic void addData(double t, VectorNd v)
t
- time in secondsv
- vector of values
java.lang.IllegalArgumentException
- if size of vector is not equal to NumericProbeBase.getVsize()
public void addData(double t, double[] v)
public void addData(double t, Vector v)
t
- time in secondsv
- vector of values
java.lang.IllegalArgumentException
- if size of vector is not equal to NumericProbeBase.getVsize()
public void addData(ReaderTokenizer rtok, double timeStep) throws java.io.IOException
java.io.IOException
public void apply(double t)
apply
in class NumericProbeBase
t
- current timepublic boolean hasState()
ModelComponent
hasState
in interface ModelComponent
hasState
in class Probe
public ComponentState createState(ComponentState prevState)
HasState
HasState.setState(artisynth.core.modelbase.ComponentState)
and HasState.getState(artisynth.core.modelbase.ComponentState)
. The state object does not have to be set to the component's
current state. If the component does not have any state information,
this method should return an instance of
EmptyState
.
createState
in interface HasState
createState
in class Probe
prevState
- If non-null, supplies a previous state that
was created by this component and which can be used to provide
pre-sizing hints.
public void getState(ComponentState state)
HasState
getState
in interface HasState
getState
in class Probe
state
- receives the state informationpublic void setState(ComponentState state)
HasState
setState
in interface HasState
setState
in class Probe
state
- state to be copiedpublic boolean isSettable()
isSettable
in class Probe
public void setData(double sec)
setData
in class Probe
public java.lang.Object clone() throws java.lang.CloneNotSupportedException
clone
in class NumericProbeBase
java.lang.CloneNotSupportedException
public NumericList getInput()
public boolean scanItem(ReaderTokenizer rtok, java.util.Deque<ScanToken> tokens) throws java.io.IOException
java.io.IOException
public void scan(ReaderTokenizer rtok, java.lang.Object ref) throws java.io.IOException
ModelComponentBase
write
.
scan
in interface ModelComponent
scan
in interface Scannable
scan
in class Probe
rtok
- Tokenizer from which to scan the elementref
- optional reference object which can be used for resolving references to
other objects
java.io.IOException
- if an I/O or formatting error occuredpublic void postscan(java.util.Deque<ScanToken> tokens, CompositeComponent ancestor) throws java.io.IOException
ModelComponent
scan()
method and stored in the token queue.
The most common use of this method is to resolve the paths
of component references, which may not have been created
at the time of the initial scan()
call.
postscan
in interface ModelComponent
postscan
in class ModelComponentBase
tokens
- token information that was stored during
scan()
.ancestor
- ancestor component with respect to which
reference component paths are defined.
java.io.IOException
public void writeItems(java.io.PrintWriter pw, NumberFormat fmt, CompositeComponent ancestor) throws java.io.IOException
Probe
java.io.IOException
public boolean isInput()
Probe
isInput
in class Probe
public void set(Property[] props, java.lang.String[] driverExpressions, java.lang.String[] variableNames, int[] variableDimensions)
public void set(Property[] props, java.lang.String[] driverExpressions, java.lang.String[] variableNames, int[] variableDimensions, PlotTraceInfo[] traceInfos)
public void createNumericList(int vsize)
createNumericList
in class NumericProbeBase
public boolean isDuplicatable()
true
if and only if CopyableComponent.getCopyReferences(java.util.List, artisynth.core.modelbase.ModelComponent)
returns true.
This method is not currently used. It is intended to provide a faster
way of determining if a component can be duplicated, without having to
use CopyableComponent.getCopyReferences(java.util.List
to build the list of copy references.
isDuplicatable
in interface CopyableComponent
true
if this component can be duplicated.public boolean getCopyReferences(java.util.List<ModelComponent> refs, ModelComponent ancestor)
true
if and only if CopyableComponent.isDuplicatable()
returns
true.
getCopyReferences
in interface CopyableComponent
refs
- list to which references are appendedancestor
- root node of the hierarchy from which references are to be excluded
public ModelComponent copy(int flags, java.util.Map<ModelComponent,ModelComponent> copyMap)
CopyableComponent
COPY_REFERENCES
is set in flags
, then any component referenced
by this component should itself be set to a copy. This
should be done first checking copyMap
for an
existing copy of the referenced component. If there is no existing
copy, then a copy should be created by calling copy
recursively and adding the new copy to copyMap
.
copy
in interface CopyableComponent
copy
in class ModelComponentBase
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |