Initial Commit
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
/*=========================================================================
|
||||
|
||||
Library: iMSTK-Unity
|
||||
|
||||
Copyright (c) Kitware, Inc.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0.txt
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
See the License for the specific language governing permissions and
|
||||
limitations under the License.
|
||||
|
||||
=========================================================================*/
|
||||
|
||||
using UnityEngine;
|
||||
|
||||
namespace ImstkUnity
|
||||
{
|
||||
[RequireComponent(typeof(Transform))]
|
||||
public abstract class DynamicalModel : ImstkBehaviour
|
||||
{
|
||||
// HS 20221220 Need to figure out what we need at this level
|
||||
// - What is common setup, what can just move into Deformable/Rigid
|
||||
// - What distinguishes an object that can collied to one that doesn't (this is
|
||||
// needed for setting up the collision handling object)
|
||||
|
||||
// Components
|
||||
protected MeshFilter meshFilter = null;
|
||||
|
||||
protected Imstk.CollidingObject imstkObject;
|
||||
|
||||
// Indicates that geometry changes may happen as opposed to just
|
||||
// position changes
|
||||
// If true update needs to refresh vertex and triangle indices rather
|
||||
// than just copying positions
|
||||
public bool dynamicGeometry = false;
|
||||
|
||||
// Tells the object to ignore the global gravity parameter
|
||||
public bool ignoreGravity = false;
|
||||
|
||||
/// <summary>
|
||||
/// Get the pointer to the object in c (not available until after initialize)
|
||||
/// </summary>
|
||||
/// <returns></returns>
|
||||
public Imstk.CollidingObject GetDynamicObject() { return imstkObject; }
|
||||
|
||||
// NOTE HS 20221220 Refactor readonly properties, initialize in each object
|
||||
public abstract Imstk.Geometry GetVisualGeometry();
|
||||
public abstract Imstk.Geometry GetPhysicsGeometry();
|
||||
public abstract Imstk.Geometry GetCollidingGeometry();
|
||||
|
||||
protected abstract Imstk.CollidingObject InitObject();
|
||||
|
||||
protected abstract void Configure();
|
||||
|
||||
/// <summary>
|
||||
/// Each subclassed model may *apply* boundary conditions differently
|
||||
/// </summary>
|
||||
/// <param name="conditions">All the conditions to be processed</param>
|
||||
protected virtual void ProcessBoundaryConditions(BoundaryCondition[] conditions) { }
|
||||
|
||||
protected abstract void InitGeometry();
|
||||
};
|
||||
}
|
||||
Reference in New Issue
Block a user