本文整理汇总了C#中Canguro.GetPoint方法的典型用法代码示例。如果您正苦于以下问题:C# Canguro.GetPoint方法的具体用法?C# Canguro.GetPoint怎么用?C# Canguro.GetPoint使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Canguro
的用法示例。
在下文中一共展示了Canguro.GetPoint方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Run
/// <summary>
/// Executes the command.
/// Moves the joint according to a given scale factor and pivot point.
/// </summary>
/// <param name="services">CommandServices object to interact with the system</param>
public override void Run(Canguro.Controller.CommandServices services)
{
List<Canguro.Model.Joint> selection = new List<Canguro.Model.Joint>();
List<Item> selectedItems = services.GetSelection();
if (selectedItems.Count == 0)
return;
foreach (Item item in selectedItems)
{
if (item is Joint)
selection.Add((Joint)item);
else if (item is LineElement)
{
LineElement l = (LineElement)item;
if (!selection.Contains(l.I))
selection.Add(l.I);
if (!selection.Contains(l.J))
selection.Add(l.J);
}
}
Microsoft.DirectX.Vector3 piv;
float scale = services.GetSingle(Culture.Get("getScale"));
Controller.Snap.Magnet m = services.GetPoint(Culture.Get("pivotScalePoint"));
if (m == null) return;
piv = m.SnapPosition;
foreach (Canguro.Model.Joint j in selection)
{
j.X = (j.X - piv.X) * scale + piv.X;
j.Y = (j.Y - piv.Y) * scale + piv.Y;
j.Z = (j.Z - piv.Z) * scale + piv.Z;
}
}
示例2: Run
/// <summary>
/// Executes the command.
/// Adds a set of Line Elements. Opens a properties window and asks the user for two points or Joints for each one.
/// </summary>
/// <param name="services">CommandServices object to interact with the system</param>
public override void Run(Canguro.Controller.CommandServices services)
{
try
{
Magnet p1 = services.GetPoint();
services.TrackingService = VectorTrackingService.Instance;
services.TrackingService.SetPoint(p1.SnapPositionInt);
Magnet p2 = services.GetPoint();
services.TrackingService = null;
float distance = (p2.SnapPosition - p1.SnapPosition).Length();
string message = string.Format("{0}: {1:G6} {2}", Culture.Get("Distance"), distance, services.Model.UnitSystem.UnitName(Canguro.Model.UnitSystem.Units.Distance));
System.Windows.Forms.MessageBox.Show(message, Title);
}
catch (Canguro.Controller.CancelCommandException) { }
}
示例3: Run
//public override void Run(Canguro.Controller.CommandServices services)
//{
// List<Item> selection = GetSelection(services);
// if (selection.Count == 0)
// return;
// Stream stream = new MemoryStream();
// try
// {
// BinaryFormatter bformatter = new BinaryFormatter();
// Magnet magnet = services.GetPoint("selectPivot");
// bformatter.Serialize(stream, magnet.SnapPosition);
// bformatter.Serialize(stream, selection.Count);
// foreach (Item item in selection)
// {
// bformatter.Serialize(stream, item);
// item.IsSelected = true;
// }
// Clipboard.SetData("Canguro", stream);
// }
// finally
// {
// stream.Close();
// }
//}
/// <summary>
/// Executes the command.
/// Gets the selection and a pivot point, and adds them to the Clipboard with the key "Canguro"
/// </summary>
/// <param name="services">CommandServices object to interact with the system</param>
public override void Run(Canguro.Controller.CommandServices services)
{
Dictionary<uint, Joint> joints = new Dictionary<uint, Joint>();
List<LineElement> lines = new List<LineElement>();
List<AreaElement> areas = new List<AreaElement>();
bool haveSelection = false;
haveSelection = services.GetSelection(joints, lines, areas);
if (!haveSelection)
{
services.GetMany(Culture.Get("selectItems"));
haveSelection = services.GetSelection(joints, lines, areas);
}
if (haveSelection)
{
Magnet magnet = services.GetPoint(Culture.Get("selectPivot"));
if (magnet != null)
{
Microsoft.DirectX.Vector3 pivot = magnet.SnapPosition;
Clipboard.Clear();
object[] objs = new object[] { joints, lines, areas, pivot };
//// Test Serialization
//System.IO.MemoryStream s = new MemoryStream();
//new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter().Serialize(s, objs);
Clipboard.SetData("Canguro", objs);
}
}
foreach (Item item in joints.Values)
if (item != null)
item.IsSelected = true;
foreach (Item item in lines)
if (item != null)
item.IsSelected = true;
foreach (Item item in areas)
if (item != null)
item.IsSelected = true;
}
示例4: Run
/// <summary>
/// Executes the command.
/// Gets the parameters and calls createCylinder to add a Cylinder to the model
/// </summary>
/// <param name="services">CommandServices object to interact with the system</param>
public override void Run(Canguro.Controller.CommandServices services)
{
if (section == null)
section = Canguro.Model.Section.SectionManager.Instance.DefaultFrameSection as Canguro.Model.Section.FrameSection;
services.GetProperties(Culture.Get("cylinderCmdTitle"), this);
Controller.Snap.Magnet m = services.GetPoint(Culture.Get("selectCylinderCenter"));
if (m == null) return;
Microsoft.DirectX.Vector3 o = m.SnapPosition;
StraightFrameProps props = new StraightFrameProps();
props.Section = section;
createCylinder(services.Model, o, r, c, h, s + 1, props);
}
示例5: Run
/// <summary>
/// Executes the command.
/// Moves the selected Item's Joints around a given point and with a given angle.
/// </summary>
/// <param name="services">CommandServices object to interact with the system</param>
public override void Run(Canguro.Controller.CommandServices services)
{
Dictionary<Joint, Joint> joints = new Dictionary<Joint, Joint>();
ItemList<Joint> jList = services.Model.JointList;
ItemList<LineElement> lList = services.Model.LineList;
List<Item> selection = services.GetSelection();
if (selection.Count == 0)
return;
foreach (Item item in selection)
{
if (item is Joint)
joints.Add((Joint)item, null);
else if (item is LineElement)
{
LineElement l = (LineElement)item;
if (!joints.ContainsKey(l.I))
joints.Add(l.I, null);
if (!joints.ContainsKey(l.J))
joints.Add(l.J, null);
}
}
Microsoft.DirectX.Vector3 v, v2;
float angle = float.Parse(services.GetString(Culture.Get("getRotationAngle")));
angle *= (float)Math.PI / 180.0F;
Controller.Snap.Magnet m = services.GetPoint(Culture.Get("getRotationCenter"));
if (m == null) return;
v = m.SnapPosition;
services.TrackingService = LineTrackingService.Instance;
services.TrackingService.SetPoint(m.SnapPositionInt);
m = services.GetPoint(Culture.Get("getPolarRotationCenter"));
if (m == null) return;
v2 = m.SnapPosition;
if (v2.Equals(v))
{
Canguro.View.GraphicView view = Canguro.View.GraphicViewManager.Instance.ActiveView;
Vector3 v1Tmp = new Vector3(0, 0, 0);
Vector3 v2Tmp = new Vector3(0, 0, 1);
view.Unproject(ref v1Tmp);
view.Unproject(ref v2Tmp);
v2 = v2 + v1Tmp - v2Tmp;
}
services.TrackingService = null;
Matrix trans1 = new Matrix();
trans1.Translate(-v);
Matrix rot = new Matrix();
rot.RotateAxis(v2 - v, angle);
Matrix trans2 = new Matrix();
trans2.Translate(v);
rot = trans1 * rot * trans2;
foreach (Joint j in joints.Keys)
{
Vector3 pos = new Vector3(j.X, j.Y, j.Z);
pos.TransformCoordinate(rot);
j.X = pos.X;
j.Y = pos.Y;
j.Z = pos.Z;
}
}
示例6: Run
/// <summary>
/// Executes the command.
/// Gets the parameters and calls beamGrid3D() to make the grid.
/// </summary>
/// <param name="services">CommandServices object to interact with the system</param>
public override void Run(Canguro.Controller.CommandServices services)
{
if (section == null)
section = Canguro.Model.Section.SectionManager.Instance.DefaultFrameSection as Canguro.Model.Section.FrameSection;
services.GetProperties(Culture.Get("gridCmdTitle"), this);
Controller.Snap.Magnet m = services.GetPoint(Culture.Get("selectGridOrigin"));
if (m == null) return;
Microsoft.DirectX.Vector3 o = m.SnapPosition;
StraightFrameProps props = new StraightFrameProps();
props.Section = section;
beamGrid3D(services.Model, o.X, o.Y, o.Z, dx, 0, 0, 0, dy, 0, 0, 0, dz, nx + 1, ny + 1, nz + 1, true, props);
}
示例7: Run
//public override void Run(Canguro.Controller.CommandServices services)
//{
// objectCount = 0;
// if (Clipboard.ContainsData("Canguro"))
// {
// Stream stream = (Stream)Clipboard.GetData("Canguro");
// Magnet magnet = services.GetPoint(Culture.Get("pasteCmdTitle"));
// BinaryFormatter bformatter = new BinaryFormatter();
// Microsoft.DirectX.Vector3 pivot = (Microsoft.DirectX.Vector3)bformatter.Deserialize(stream);
// Microsoft.DirectX.Vector3 v = magnet.SnapPosition - pivot;
// List<Joint> newJoints = new List<Joint>();
// List<LineElement> newLines = new List<LineElement>();
// ItemList<Joint> jList = services.Model.JointList;
// ItemList<LineElement> lList = services.Model.LineList;
// Dictionary<uint, Joint> jSelection = new Dictionary<uint, Joint>();
// Joint nJoint;
// LineElement nLine;
// objectCount = (int) bformatter.Deserialize(stream);
// for (int i = 0; i < objectCount; i++)
// {
// Element elem = (Element)bformatter.Deserialize(stream);
// if (elem is Joint)
// {
// Joint j = (Joint)elem;
// jList.Add(nJoint = new Joint(j.X + v.X, j.Y + v.Y, j.Z + v.Z));
// nJoint.Masses = j.Masses;
// nJoint.DoF = j.DoF;
// jSelection.Add(j.Id, nJoint);
// newJoints.Add(nJoint);
// CopyLoads(services.Model, j, nJoint);
// }
// if (elem is LineElement)
// {
// LineElement l = (LineElement)elem;
// lList.Add(nLine = new LineElement(l.Properties));
// nLine.I = jSelection[l.I.Id];
// nLine.J = jSelection[l.J.Id];
// nLine.Angle = l.Angle;
// newLines.Add(nLine);
// CopyLoads(services.Model, l, nLine);
// }
// JoinCmd.Join(services.Model, newJoints, newLines);
// }
// }
//}
/// <summary>
/// Executes the command.
/// Pastes the Items in the Clpboard under the key Canguro, in the current Model.
/// </summary>
/// <param name="services">CommandServices object to interact with the system</param>
public override void Run(Canguro.Controller.CommandServices services)
{
objectCount = 0;
if (Clipboard.ContainsData("Canguro"))
{
object[] data = (object[])Clipboard.GetData("Canguro");
Dictionary<uint, Joint> joints = (Dictionary<uint, Joint>)data[0];
Dictionary<uint, Joint> jSelection = new Dictionary<uint, Joint>();
IList<LineElement> lines = (IList<LineElement>)data[1];
IList<AreaElement> areas = (IList<AreaElement>)data[2];
Microsoft.DirectX.Vector3 pivot = (Microsoft.DirectX.Vector3)data[3];
ItemList<Joint> jList = services.Model.JointList;
ItemList<LineElement> lList = services.Model.LineList;
ItemList<AreaElement> aList = services.Model.AreaList;
Joint nJoint;
LineElement nLine;
AreaElement nArea;
Magnet magnet = services.GetPoint(Culture.Get("pasteCmdTitle"));
if (magnet == null)
objectCount = 0;
else
{
objectCount = joints.Count + lines.Count;
Microsoft.DirectX.Vector3 v = magnet.SnapPosition - pivot;
List<Joint> newJoints = new List<Joint>();
List<LineElement> newLines = new List<LineElement>();
List<AreaElement> newAreas = new List<AreaElement>();
Dictionary<string, Layer> layers = new Dictionary<string, Layer>();
foreach (Layer l in services.Model.Layers)
if (l != null)
layers.Add(l.Name, l);
foreach (uint jid in joints.Keys)
{
Joint j = (joints[jid] == null) ? jList[jid] : joints[jid];
jList.Add(nJoint = new Joint(j.X + v.X, j.Y + v.Y, j.Z + v.Z));
nJoint.Masses = j.Masses;
if (!layers.ContainsKey(j.Layer.Name))
{
Layer lay = new Layer(j.Layer.Name);
services.Model.Layers.Add(lay);
layers.Add(lay.Name, lay);
}
nJoint.Layer = layers[j.Layer.Name];
nJoint.DoF = j.DoF;
jSelection.Add(jid, nJoint);
newJoints.Add(nJoint);
//.........这里部分代码省略.........
示例8: Run
/// <summary>
/// Executes the command.
/// Copies the selected Items in a series around a given rotation axis.
/// </summary>
/// <param name="services">CommandServices object to interact with the system</param>
public override void Run(Canguro.Controller.CommandServices services)
{
Dictionary<Joint, Joint> joints = new Dictionary<Joint, Joint>();
Dictionary<Joint, Joint> jSelection = new Dictionary<Joint, Joint>();
List<LineElement> lines = new List<LineElement>();
List<LineElement> lSelection = new List<LineElement>();
List<AreaElement> areas = new List<AreaElement>();
List<AreaElement> aSelection = new List<AreaElement>();
ItemList<Joint> jList = services.Model.JointList;
ItemList<LineElement> lList = services.Model.LineList;
ItemList<AreaElement> aList = services.Model.AreaList;
Joint nJoint;
LineElement nLine;
AreaElement nArea;
List<Item> selection = services.GetSelection();
if (selection.Count == 0)
return;
foreach (Item item in selection)
{
if (item is Joint)
{
jSelection.Add((Joint)item, null);
joints.Add((Joint)item, null);
}
else if (item is LineElement)
{
LineElement l = (LineElement)item;
lSelection.Add(l);
lines.Add(l);
if (!jSelection.ContainsKey(l.I))
{
jSelection.Add(l.I, null);
joints.Add(l.I, null);
}
if (!jSelection.ContainsKey(l.J))
{
jSelection.Add(l.J, null);
joints.Add(l.J, null);
}
}
else if (item is AreaElement)
{
AreaElement a = (AreaElement)item;
aSelection.Add(a);
areas.Add(a);
if (!jSelection.ContainsKey(a.J1))
{
jSelection.Add(a.J1, null);
joints.Add(a.J1, null);
}
if (!jSelection.ContainsKey(a.J2))
{
jSelection.Add(a.J2, null);
joints.Add(a.J2, null);
}
if (!jSelection.ContainsKey(a.J3))
{
jSelection.Add(a.J3, null);
joints.Add(a.J3, null);
}
if (a.J4 != null && !jSelection.ContainsKey(a.J4))
{
jSelection.Add(a.J4, null);
joints.Add(a.J4, null);
}
}
}
Microsoft.DirectX.Vector3 v, v2;
uint n = (uint)services.GetSingle(Culture.Get("getArrayRepetition"));
float dAngle = float.Parse(services.GetString(Culture.Get("getPolarArrayAngle")));
dAngle *= (float)Math.PI / 180.0F;
float angle = 0.0F;
Controller.Snap.Magnet m = services.GetPoint(Culture.Get("getPolarRotationCenter"));
if (m == null) return;
v = m.SnapPosition;
services.TrackingService = LineTrackingService.Instance;
services.TrackingService.SetPoint(m.SnapPositionInt);
m = services.GetPoint(Culture.Get("getPolarRotationCenter"));
if (m == null) return;
v2 = m.SnapPosition;
if (v2.Equals(v))
{
Canguro.View.GraphicView view = Canguro.View.GraphicViewManager.Instance.ActiveView;
Vector3 v1Tmp = new Vector3(0, 0, 0);
Vector3 v2Tmp = new Vector3(0, 0, 1);
view.Unproject(ref v1Tmp);
view.Unproject(ref v2Tmp);
v2 = v2 + v1Tmp - v2Tmp;
//.........这里部分代码省略.........